Waveform generators (also called function generators) are useful for testing and debugging circuits. They can be used to test the frequency response of electronic components like op amps and sensors or to characterize and troubleshoot audio effects boxes and pedals. This waveform generator shield is powered by an Arduino. It outputs four waveforms: sine, triangle, pulse, and saw, each waveform ranges in frequency from 1Hz-50 kHz. The frequency, pulse width, and overall amplitude (gain) of the waveforms is controlled by three potentiometers. Four indicator LEDs let you know which type of wave is currently being sent to the output. This Instructable describes how to put together the Arduino Waveform Generator Shield Kit I designed, if you're interested you can also check out my original post about the Arduino Waveform Generator.

Parts List:

(x4) momentary push buttons Jameco 119011
(x3) linear taper 10kOhm potentiometer Jameco 286273
(x3) 0.25" knobs Jameco 136241
(x4) white LED Jameco 334502
(x4) 220Ohm 1/4Watt resistors Jameco 2157183
(x1) female header sockets Jameco 70755
(x4) male header pins Jameco 103393
(x1) LM386 op amp Jameco 24133
(x1) 8 pin socket Jameco 51626
(x11) 10kOhm 1/4Watt resistor Jameco 2157167
(x10) 20kOhm 1/4Watt resistor Jameco 691171
(x2) 220uF capcitor Jameco 606820
(x1) 2.2kOhm 1/4Watt resistor Jameco 2160981
(1x) Arduino Uno (Duemilanove is fine, but make sure it is ATMEL328P) Jameco 2151486
(1x) Shield PCB (Buy the shield and all the components here)

Additional Materials:
battery snap Jameco 109154
9V battery Jameco 198731
9V battery and battery snap or other power supply

This Instructable will show you how to put the Waveform Generator Shield together, if you want a more detailed description of the circuit check out my Arduino Waveform Generator Instructable.

Step 1: Header Pins

Solder two groups of 8 and two groups of 6 header pins to the PCB.  Make sure to solder the header pins to the bottom of the board (the side that does not have any words).  Here are some tips to keep the pins straight while soldering them down.  The shield should fit nicely on an Arduino.
<p>Am I mistaken or is there no schematic file included in the Eagle files zipped above? I see a picture of the schematic in the introduction though.</p><p>If anyone knows where I can find the schematic and would let me know I'd be appreciative. I wanted to look into making some modifications to the amplifier, and it would same me some time to not backtrack through eagle to re-create it.</p>
hey amanda. :) can i change the maximum frequency to 20Mz? is it possible? im making a project about waveform generator that generates from 20Hz-20Mhz can u help me? thanks good day.
<p>arduino only runs at 16Mz, you will need something faster.</p>
Hi amanda. So, the arduino can only generate about maximum of 16Mhz of frequency? What is the maximum amplitude that the arduino can produce? <br>Can it have a 24Vpp of amplitude? <br>Hoping for you response. Thanks a lot amanda.
<p>this version does 5V, you could add an additional amp for more voltage</p>
Does shield work on arduino mega? <br>Thank you for answering.
not with the current code.
Is it ok if the buttons stay closed all the time because i want to make it with one of thoose rotary type switches i forgot their names?
yeah, you'll have to change the code where you digitalRead() from the pins, change it to if (digitalRead(pin)==0) for a selected state
Quick question: Could you use the potentiometers in this build in place of the ones for the protoboard-based one? I'm following along the protoboard build (didn't realize that this build existed until now), and the 50k linear-taper and 10K audio-taper that are linked (in the parts list) are too large to fit inside your enclosure. Could I use the potentiometers listed on this parts list? Also, would I change out the 2 that doesn't fit, or should I change out all 3 potentiometers? Thanks!
Any potentiometers are fine as long as they are the correct taper(linear/log) and the value is somewhere in the same range
Is there an image of the top and bottom traces? I want to print and etch this on my own.
I've included the eagle files in the first step
does anyone know if I can get this assembled?
no it's just a kit
Aw... I was wanting this shield but I don't want to do the work lol
since my last comment was deleted which should be totally against the whole open source concept given the nature of my post -&nbsp; which was offering a DIY waveform generator that anyone can make on stripboard and not have to spend loads + figure out how to use all the programming stuff I am going to post it again. bad show Instructables, bad show.<br> here is the <a href="http://www.paulinthelab.com/2012/07/audio-function-generator-stripboard.html" rel="nofollow">stripboard waveform generator</a>
Excellent ideal for teaching <br>Excelente ideal para ense&ntilde;ar
Great job! <br>
Great job!
This is awesome! What company did you have fabricate your pcb?
jameco made it for me
wow very cool
Yes, Amanda's contributions are very good. And, in other news, her laser-cut record made it on wired.com. <br> <br>http://www.wired.com/design/2013/05/laser-cut-record/ <br>
Sales pitch? Commercial ad? I disagree with both of those comments. It's well written and thorough, complete with links for materials. What's commercial about it? Is it the high quality photos? is it the precision and attention to detail? Where's the sales pitch? Are you referring to the link for purchasing materials? Sure you could go out and buy a simple function generator for the same price as the bill of materials but that wouldn't be DIY, now would it... yeesh. If there is ANYTHING to complain about... somebody will find it. <br>Marvelous instructable, Amanda.
i should probably make one of these at some point.
what are you doing here?
I always like a ready-to-build kit and your detailed instructable upon which this is based is quite excellent. However, this post feels like a sales pitch which is somewhat frowned upon at instructables. <br> <br>$65 for the kit plus the cost of an Arduino and an enclosure. While this may have a nice DIY vibe, I could simply buy a capable function generator outright for that. If I'm feeling the need for a DIY build, I could construct my own 1Mhz generator from an Elenco kit for $45 total (although, admittedly, it would not look nearly as cool as your laser-cut wood case.) <br> <br>One can find a dozen choices half the price of this solution with a simple &quot;function generator&quot; search on Amazon. Perhaps, you might tone down the &quot;Buy this kit!&quot; message and explain the build with the same attention to detail you did the original. <br> <br>Kind regards, <br> <br>Michael
I don't have any problem that Instructables is selling this in a kit. Many people like a project, but are not in the situation to get the parts together. I am glad to use my (unused) Arduino for this project. Thank you!
This is pushing the edge of being a commercial ad. Instructables is not about this no matter how good the project.

About This Instructable




Bio: I'm a grad student at the Center for Bits and Atoms at MIT Media Lab. Before that I worked at Instructables, writing code for ... More »
More by amandaghassaei:OTCA Metapixel - Conway's Game of Life "9 Degrees of Freedom" IMU Twitter Controlled Pet Feeder 
Add instructable to: