Skip to content
Circuits Gallery
  • Home
  • BasicsExpand
    • Wiring
    • Op-Amp
    • Circuitry
    • Oscilloscope
    • Conductivity
    • Components
  • MicroControllerExpand
    • Arduino
    • PIC
    • Simulation
  • ProjectExpand
    • Using 555 Timer
  • DigitalExpand
    • Communication
  • Submit Project
Circuits Gallery
Home / Basics / Op-Amp / PWM and Triangular Wave Generators | Create Precise Waveforms with PWM and Triangular Techniques

PWM and Triangular Wave Generators | Create Precise Waveforms with PWM and Triangular Techniques

You may be already aware of the PWM and triangular wave generator.

There are different kinds of waves such as sine waves, square waves, and triangle waves. Triangle waves are commonly found and used in audio production, and they are a common waveform source on synthesizers.

On the other hand, pulse width modulation (PWM) is a method of changing the duration of a pulse with respect to any analog input. The duty cycle of a square wave is modulated to encode a specific analog signal level.

PWM and Triangular Wave Generators

Both PWM and triangular waves have significant applications in different electronic projects. In this article, we are going to demonstrate 4 different wave generator circuits using some simple components. Here are the projects that you’ll get to learn from below –

  1. PWM generator circuit using 741 op-amp comparator with output waveform.
  2. The PWM in MATLAB using simple MATLAB functions.
  3. Triangular wave generator using op amp 741 including working schemes and simulated output waveform.
  4. Simple generating pulse width modulation using pic microcontroller Mikro C & amp, and Proteus simulation.

So, without wasting any time, let’s learn in detail and make your own wave generator circuit for your final year electronic project.

1. PWM Generator Circuit Using 741 Op-Amp Comparator With Output Wave Form

Pulse width modulation (PWM) DC motor control is one of the popular circuits in Robotics. This pulse-width modulation tutorial gives you the basic principle of the generation of PWM signal. These signals are used to approximate time-varying analog signals. PWM is employed in a wide variety of applications, ranging from measurement and communications to power control and conversion. Also, this controller is commonly used for speed-controlling motors, fans, lights in varying intensities, etc. Let’s learn more about this below.

PWM Generator Circuit Diagram

Here is the pulse width modulation generator circuit diagram (pulse width modulator) using op-amp.

pulse width modulator

PWM Generator Circuit Requirements Using 741 Op-Amp

  1. Dual power supply (+Vcc and -Vcc)
  2. 741 op amp IC
  3. Signal generator

Working of Pulse Width Modulator

  • In this pulse width modulation circuit op amp acts as a comparator.
  • It compares both the input voltages- the sawtooth waveform and the message signal (sine wave).
  • The duration in which the instantaneous value of sine wave is above that of sawtooth, the op amp switches to +Vcc. It’s because the sine wave input is connected to the non inverting input of the op amp.
  • On the contrary, when the value of sine wave is less than the instantaneous value of sawtooth, op amp switches to -Vcc.
  • Thus we get a pulse waveform swinging between +Vcc and –Vcc.
  • That is the pulse width changes according to the message signal (Width of the pulse is modulated)

Output Wave Form

output wave form

Important Terms Associated With Pwm

Period (T)
How long each complete pulse cycle takes
Frequency (F)
How often the pulses are generated. This value is typically specified in Hz (cycles per second).

Duty Cycle (D)
Refers to the ratio of time in the period that the pulse is active or high (T on) to the total time of a cycle (T). The duty cycle is typically specified as a percentage of the full period.

Simulation/Oscilloscope Waveshapes

Simulation/Oscilloscope Waveshapes

741 pin out

741 pin out

The use of 741 IC in Pulse Width Modulation (PWM) Generator Circuit is so vital and versatile that you may do the modulation according to any sort of message signal you intend to. Besides, by the use of relays of required ratings, you can incorporate unprecedented controls and automation in your projects.

2. Code for PWM (Pulse Width Modulation) Generation in Matlab

We have already discussed the PWM generator circuit using 741 Op-amp in the previous section. Now, let’s check how you can program the PWM in Matlab. In addition to communication systems, PWM is also used in voltage regulators such as Switched Mode Power Supplies (SMPS) to control the power delivered to the load. PWM can be generated using a comparator to which the modulating signal and a reference ramp (sawtooth) waveform are fed. 

The code for PWM simulation in MATLAB is shown below. 

Note: 

  1. The use of a particular line of MATLAB code is also given as comments (%Comment field).
  2. The given MATLAB program accepts two input frequencies from the user.

Pwm Matlab Codes

clc;

clear all;

close all;

F2=input(‘Message frequency=’);

F1=input(‘Carrier Sawtooth frequency=’);

A=5;

t=0:0.001:1;

c=A.*sawtooth(2*pi*F1*t);%Carrier sawtooth

subplot(3,1,1);

plot(t,c);

xlabel(‘time’);

ylabel(‘Amplitude’);

title(‘Carrier sawtooth wave’);

grid on;

m=0.75*A.*sin(2*pi*F2*t);%Message amplitude must be less than Sawtooth

subplot(3,1,2);

plot(t,m);

xlabel(‘Time’);

ylabel(‘Amplitude’);

title(‘Message Signal’);

grid on;

n=length(c);%Length of carrier sawtooth is stored to ‘n’

for i=1:n%Comparing Message and Sawtooth amplitudes

if (m(i)>=c(i))

    pwm(i)=1;

else

    pwm(i)=0;

end

end

subplot(3,1,3);

plot(t,pwm);

xlabel(‘Time’);

ylabel(‘Amplitude’);

title(‘plot of PWM’);

axis([0 1 0 2]);%X-Axis varies from 0 to 1 & Y-Axis from 0 to 2

grid on;

Generated Pwm Signal

Inputs and Observation: 
Message frequency=1
Carrier Saw tooth frequency=10

You can use these Matlab codes for simulating any kind of project on Simulink.

3. Triangular Wave Generator Using Op Amp 741 | Working and Simulated Output Waveform

An operational amplifier-based triangular wave generator using op-amp 741 is a simple circuit that is widely used in function generators. To make this circuit you need to understand how a triangular wave transforms. A triangular wave is the output of an integrator if the input to it is a square wave. It means that a triangular wave generator can be formed by simply cascading an integrator and a square wave generator, as illustrated in the figure. We will use two operational amplifiers in this circuit. The first is the op-amp functions as a comparator and the second is the op-amp as an integrator.

Circuit Diagram of Triangular Wave Generator

Circuit diagram of Triangular wave generator using op-amp 741
Circuit diagram of Triangular wave generator using op-amp 741

Components Required for Triangular Wave Generator

  1. Resistors (1kΩ, 12kΩ, 180Ω)
  2. Op Amp 741×2
  3. Capacitor (0.1µF)

Working of Triangular Wave Generator Using Op Amp 741

  • At first, the comparator compares the voltage at a point ‘P’ continuously with respect to the voltage at the inverting input. This point is at ground potential.
  • As soon as, the voltage at P goes slightly below zero, the output of the comparator will switch to negative saturation.
  • Consider the output of the comparator is +Vsat. Since this voltage is the input of the integrator, then its output will be a negative going ramp.
  • As a result, one end of the potential divider R1 R2 is at +Vsat and another end is at a negative going ramp. When the negative going ramp attains a value say –Vramp the effective voltage at P becomes slightly less than 0V. This switches the output of the comparator to –Vsat.

  • By this time, integrator output will be a positive going ramp. When the value of the positive going ramp attains +Vramp, the voltage at ‘P’ becomes slightly greater than 0V. There by switching the comparator output to +Vsat.

  • This cycle repeats and generates a triangular waveform
  • A triangular waveform can also be generated by integrating a square wave from an astable multivibrator.

Output Waveform

output waveform of op amp 741
The output waveform of the triangular wave generator using op amp 741

Design of Triangular Wave Generator

The frequency of the triangular waveform is given by either the following expressions

frequency of the triangular waveform formula

Peak to peak amplitude of ramp voltage is

Peak to peak amplitude formula

Components Pin Out of Op Amp 741

op amp 741 pin diagram
Op-amp 741 pin diagram

Simulated Output Waveform

The output waveform of the triangular wave generator using simulated using Multisim

Simulated Output Waveform
The simulated output waveform of the triangular wave generator using Multisim

The simulated output almost matches the theoretical output. Thus, You can easily generate a triangular wave using an operational amplifier following the above tutorial.

4. Simple Generating Pulse Width Modulation Using PIC Microcontroller | Mikro C &Amp | Proteus Simulation

PWM has wide applications in automation such as DC motor speed control circuits, generating analog signals from digital signals, and LED brightness control. In this section, we’ve provided a detailed explanation and simulation of PWM generation using a PIC16F877A microcontroller. We have used Mikro C pro for pic microcontroller programming because it has inbuilt library functions to do many operations, especially in PWM, which will simplify your difficulties in coding. We also have provided the simulation using the Proteus design suite. Now, let’s see how we can make this circuit below.

Proteus Design Suite

PWM and PIC

Two CCP module is available with a PIC16F877A MCU. It is capable of generating PWM signals.

MikroC PRO for PIC provides a library that simplifies PWM operations. The generated PWM output comes via pins No: 16 and 17 of the PIC16F877A microcontroller.

As the name indicates, CCP (Capture Compare PWM) has 3 modes of operation.

  1. Capture mode
  2. Compare mode
  3. PWM mode

In PWM mode PIC can generate signals of varying frequency and duty cycle.

Other modes are beyond the scope of this article. We will discuss those modes later.

Now let’s begin PIC PWM generation!

Add PWM Library to Mikro C

Before writing the program we should add PWM library functions to our code. Otherwise, you may be getting compilation errors such as ‘Undeclared identifier PWM1_Init in the expression’.

So open the ‘Library Manager’ tab and put a checkmark on the ‘PWM’ library. Then proceed to the program.

select PWM in Library Manager

PWM Mikro C Program

In the program, two input switches are used to control the Duty cycle of the PWM signal. S1 for increasing the duty cycle and S2 for decreasing the same. The frequency of the PWM signal is set to 5KHz

Interpretation of important codes

PWM1_Init(5000)

There are two CCP modules inside PIC16F877A. Our program is manipulating the 1st module, thus ‘PWM1′ is used here. ‘_Init’ means initializing the PWM1  for 5KHz.

PWM1_Start()

Start PWM1 signal.

PWM1_Set_Duty(duty1)

Set the current duty cycle for PWM1, using this code we are varying the pulse width.

PWM Simulation in Proteus

Now it’s time to start the simulation, the Virtual Lab!

Step 1
Write the codes in Mikro C and build the. Hex file. If you don’t know how to build a hex file please read my article below.

Step 2

Run Proteus 8 and draw the schematic diagram as shown.

Launch Run Proteus 8

Step 3
Load .The hex file for PIC simulation.

Proteus 8 interface

Step 4
Run the simulation.

tap on Run option

Step 5
Enable Digital oscilloscope output by going to Debug >> Digital Oscilloscope and make necessary adjustments for a clear view.

Digital oscilloscope interface

Step 6
Now vary the duty cycle by hitting the keys provided S1 and S2. The below image shows the simulated window of CRO.

Digital Oscilloscope

So, that’s how you can generate a simple PWM (Pulse Width Modulation) signal. This signal is very handy and useful to modulate any input.

Conclusion

The output of PWM modulation is a duty-cycle varied square wave. In this article, we have demonstrated how the PWM Generator Circuit can generate waves using the 741 Op-Amp and provided the full MatLab code to generate a PWM signal. We also have described the generation of triangular waves the have significant applications in different electronic projects. You can easily generate this wave using the op-amp and the very simple circuit construction that is shown above. Finally, you’ve learned how to generate a simple PWM (Pulse Width Modulation) signal using microcontrollers. After all these, we hope, now you can make your own wave generator circuit without any problems. Best wishes for your upcoming PWM and triangular wave generator electronic projects.

Table Of Contents
  1. 1. PWM Generator Circuit Using 741 Op-Amp Comparator With Output Wave Form
  2. 2. Code for PWM (Pulse Width Modulation) Generation in Matlab
  3. 3. Triangular Wave Generator Using Op Amp 741 | Working and Simulated Output Waveform
  4. 4. Simple Generating Pulse Width Modulation Using PIC Microcontroller | Mikro C &Amp | Proteus Simulation
  5. Conclusion

Subscribe to our newsletter

& plug into

the world of circuits

    A seasoned electronics enthusiast, Charles Clark is a key contributor to Circuits Gallery. From basic components to advanced microcontroller projects, Charles simplifies complex concepts with ease. His writings are a blend of expertise and passion, making electronics accessible to all. Whether it's circuitry or digital communication, Charles is the voice you can trust.

    Facebook Twitter Instagram

    Recent Blogs

    • How to Make A 75 To 300 Ohm Matching Transformer
      How to Make A 75 To 300 Ohm Matching Transformer? | A Step by Step Guide for You
    • How to Download Circuit Wizard? | Procedure for Downloading the Latest Version
    • What Gauge Wire from Battery to Starter
      What Gauge Wire from Battery to Starter? | Choosing the Right Wire Gauge
    • What Does 50 Milliamps Look Like on a Multimeter
      What Does 50 Milliamps Look Like on a Multimeter? | Let’s Find Out
    • How Many Watts Does a 32 Inch TV Use
      How Many Watts Does a 32 Inch TV Use? | Find Out the Required Wattage for Different Brands
    • What Size Conduit for 122 Wire
      What Size Conduit for 12/2 Wire? | Choosing the Right Conduit for Your 12/2 Wire

    Browse Categories

    • Arduino
    • Basics
    • Circuitry
    • Communication
    • Components
    • Conductivity
    • Digital
    • How To
    • MicroController
    • Op-Amp
    • Oscilloscope
    • PIC
    • Project
    • Simulation
    • Using 555 Timer
    • Wiring
    Circuits Gallery
    Join Our Community:

    Quick Links

    • About Us
    • Privacy Policy
    • Terms and Conditions
    • Submit Your Project
    • Contact Us

    Our Story

    Our journey designing innovative devices had immersed us in convoluted electronics. We realized mastery doesn't require elite degrees or industry secrets—just knowledge presented coherently. We became devoted to unraveling even quantum-complex circuits, diagram by diagram, so anyone eager to learn can unlock these secrets. By simplifying electronics fundamentals, we hope to ignite innovation in generations to come.

    © Copyright 2025 Circuits Gallery | All Rights Reserved.

    • Home
    • Basics
      • Wiring
      • Op-Amp
      • Circuitry
      • Oscilloscope
      • Conductivity
      • Components
    • MicroController
      • Arduino
      • PIC
      • Simulation
    • Project
      • Using 555 Timer
    • Digital
      • Communication
    • Submit Project
    Search