Arduino Pulse Generator Frequency Sweep

by RonFrtek in Circuits > Arduino

741 Views, 3 Favorites, 0 Comments

Arduino Pulse Generator Frequency Sweep

Arduino Pulse Generator Frequency Sweep

In this tutorial we will learn how to make a Pulse Generator with a Frequency Sweep.

Pulse generator will start with 1Hz and increase its frequency for 0.5Hz every second. Once it reaches 10Hz it wil stop increasing the frequency.

You can set your own Starting frequency, End frequency, Frequency increment, and the increment interval.

What You Will Need

oled.jpg
FNLOD2CKEY93G5N.jpg
VisuinoAdvrtisementPortentaH7.jpg
FMMM5N5KEY93G5M.jpg
FMT2X9VKEY93G5P.jpg
  • Arduino UNO (or any other Arduino or ESP)
  • OLED Display
  • Jumper wires
  • Breadboard
  • Visuino program: Download Visuino
  • Oscilloscope (Optional)


Brought by PCBWay

2022-08-26_13-41-18.jpg

I often use printed designed circuit boards in my projects, however there is a down side to making your boards from a scratch and it takes quite a lot of time and good nerves.

So I started to use a PCBWay service. They were also very kind to support this tutorial to help users learn more about electronics.

They offer you to turn your DIY breadboard circuits into professional PCBs. You can get 10 boards for approximately $5 which is really cheap for professional made boards, not to mention how much time you save.

Go check them out here. They also offer a lot of other stuff in case you might need it like assembly if you are like me who is always in a hurry and don't have a time to get the parts and solder everything then that is a way to go..

On ther website click on the "Get Instant Quote" and you will instantly know how much your PCB will cost. So far I am very satisfied with their service. Where I live I would have to pay at least 4 times more per board to a Local maker and the minimum order would be 200pcs. With PCB I was able to draw the circuit and get prototype boards for a fraction of the cost.

The Circuit Using OLED & Oscilloscope

2022-08-22_16-24-20.jpg
  • Connect OLED Display pin [SCL] to Arduino pin [SCL]
  • Connect OLED Display pin [SDA] to Arduino pin [SDA]
  • Connect OLED Display pin [VCC] to Arduino pin [5v]
  • Connect OLED Display pin [GND] to Arduino pin [GND]


  • Connect Oscilloscope probe to the Arduino Digital pin [2]
  • Connect Oscilloscope Ground probe to the Arduino pin [GND]

The Circuit Using LED

2022-08-22_16-26-44.jpg
  • Connect Resistor 1Kohm to the Arduino Digital pin [2]
  • Connect Resistor 1Kohm to (other side) to the LED [Positive pin +]
  • Connect LED [Negative pin -] to the Arduino pin [GND]


Start Visuino, and Select the Arduino UNO Board Type

2022-07-27_11-15-03.jpg
Visuino-Select-Board-UNO.jpg

Start Visuino as shown in the first picture Click on the "Tools" button on the Arduino component (Picture 1) in Visuino When the dialog appears, select "Arduino UNO" as shown on Picture 2

In Visuino Add Components

2022-08-22_16-38-47.jpg
2022-08-22_16-39-49.jpg
2022-08-22_16-40-33.jpg
2022-08-22_16-41-13.jpg
2022-08-22_16-42-16.jpg
2022-08-22_16-43-13.jpg
2022-08-22_16-44-26.jpg
2022-08-22_16-45-06.jpg
2022-08-22_16-45-49.jpg
2022-08-22_16-47-02.jpg
  • Add "Clock Generator" component
  • Add "Counter" component
  • Add "Analog Value" component
  • Add "Integer To Analog" component
  • Add "Add Analog" component
  • Add "Analog Multi Source" component
  • Add "Compare Analog Value" component
  • Add "Analog On/Off Switch" component
  • Add "OLED I2C" component
  • Add "Pulse Generator" component

In Visuino Set Components

2022-08-22_16-49-21.jpg
2022-08-22_16-51-50.jpg
2022-08-22_16-53-15.jpg
2022-08-22_16-55-44.jpg
2022-08-22_17-00-16.jpg
2022-08-22_16-59-59.jpg
2022-08-22_17-02-53.jpg
2022-08-22_17-03-07.jpg
2022-08-22_17-03-23.jpg
  • Set the Interval: Select "ClockGenerator1" and in the properties window set frequency, in our case it is 1Hz, this means that the frequency will increase every second
  • Set Start Frequency: Select "AnalogValue1" and in the properties window set "Value", in our case it is 1, this means that we will start with the frequency 1Hz
  • Set Frequency Increment: Select "IntegerToAnalog1" and in the properties window set "Scale", in our case it is 0.5, this means that the frequency will increase for 0.5Hz every time
  • Set End Frequency: Select "CompareValue1" and in the properties window set "Compare Type" to ctSmaller and "Value", in our case it is 10, this means that the frequency will stop increasing at 10Hz
  • Select "PulseGenerator1" and in the properties window select "Frequency" and click on the Pin Icon and select "Float SinkPin"


  • Double click on the "DisplayOLED1" and in the "Elements" window drag "Draw Text" to the left side and in the Properties window set "Text" to "Frequency" and "Size" to 2
  • In the "Elements" window drag "Text Field" to the left side and in the Properties window set "Size" to 2 and "Y" to 30
  • Close the "Elements" window

In Visuino Connect Components

2022-08-22_17-10-39.jpg
  • Connect "ClockGenerator1" pin [Out] to "Counter1" pin[In]
  • Connect "Counter1" pin [Out] to "IntegerToAnalog1" pin[In]
  • Connect "AnalogValue1" pin [Out] to "Add1" pin[0]
  • Connect "IntegerToAnalog1" pin [Out] to "Add1" pin[1]
  • Connect "Add1" pin [Out] to "AnalogMultiSource1" pin[In]
  • Connect "AnalogMultiSource1" pin [0] to "AnalogSwitch1" pin[In]
  • Connect "AnalogMultiSource1" pin [1] to "CompareValue1" pin[In]
  • Connect "CompareValue1" pin [Out] to "AnalogSwitch1" pin[Enable]
  • Connect "AnalogSwitch1" pin [Out] to "PulseGenerator1" pin[Frequency]
  • Connect "AnalogSwitch1" pin [Out] to "DisplayOLED1" > "Text Field1" pin[In]
  • Connect "PulseGenerator1" pin [Out] to Arduino Digital pin[2]
  • Connect "DisplayOLED1" pin [I2C] to Arduino pin[I2C]

Generate, Compile, and Upload the Arduino Code

2020-10-30_13-20-50.jpg

In Visuino, at the bottom click on the "Build" Tab, make sure the correct port is selected, then click on the "Compile/Build and Upload" button.

Play

If you power the Arduino module, The OLED Display will show the increasing Frequency. If you have an Oscilloscope you can connect it to the Arduino Digital pin 2 (see wiring schematic) or connect a 1KOhm resistor and an LED (see wiring schematic) to see how pulses are increasing.

Congratulations! You have completed your project with Visuino. Also attached is the Visuino project, that I created for this tutorial, you can download it and open it in Visuino: https://www.visuino.eu