Picture of iOS-Controlled Arduino waveform generator

This waveform generator is based on the work by Amanda Ghassaei. Waveform generators (or function generators) are used for testing and debugging circuits. e.g. frequency response of op amp or sensors. This waveform generator is powered by Arduino with Annikken Andee shield - a device that lets users create iOS/Android interfaces without iOS or Android programming at all. It outputs sine, triangle, saw and square waves. Frequency is controlled by means of a slider (on iOS/Android device) and wave type is selected using on screen iOS/Android button. With a iOS/Android interface, you can add certain features not possible with hardware buttons. E.g. displaying different ranges of frequencies for each wave type, displaying meaningful controls for certain wave types. For example, the pulse width modulation slider is only visible for square wave types, its not visible for sine, triangle or saw wave forms.

Parts List:

(1x) Arduino Uno or compatible board element14 #2075382

(1x) Annikken Andee for iOS or Android

(1x) Prototyping Perfboad element14 #1536938

(25x) 10Kohm resistors element14 #9339060

(1x) 10-way female connector element14 #1815119

Wire/breadboard jumper wires. Soldering equipment. 20 KB
Remove these adsRemove these ads by Signing Up

Step 1: Build a simple R2R DAC

Picture of Build a simple R2R DAC

Build a R2R DAC using the schematic provided. Note that all the resistors used are 10Kohm.

Step 2: Solder 10-way connector

Picture of Solder 10-way connector

Solder on a 10-way connector for jumper wires to attached to the R2R ladder. Make the correct connections from 10-way connector to the corresponding resistors. Leave pin 10 of the connector unconnected. Solder wires for OUTPUT and GND to make connections to an oscilloscope for viewing.

My setup here does not include the following:

  1. Low-pass RC filter.
  2. Voltage follower to buffer the output, you have to add this before using the output on any of your testing circuit.
  3. Gain control using LM386 - to adjust the peak-to-peak amplitude of the output waveform.OUTPUT and GND to make connections to an oscilloscope for viewing.

However, its enough to show a waveform on the oscilloscope.

Step 3: Connect Annikken Andee and Arduino

Picture of Connect Annikken Andee and Arduino

Connect Annikken Andee to Arduino by simply plugging it on top as a shield.

Step 4: Connect Arduino and R2R ladder

Picture of Connect Arduino and R2R ladder

Connect pins 0 to 7 of Arduino to pins 0 to 7 of the R2R ladder we soldered earlier. Connect Arduino GND to R2R's GND.

MonaE6 months ago

what is the maximum frequency it could make?

Very nice! Great documentation too :D