July 20th, 2010

Arduino Signal Generator Build On Protoshield

Application Note, by ITead.

There is a simple signal generator kit in our store, it selling well ,but it’s source is not released so we can’t modify it for more DIY.

The principle of this signal generator is like a 8bit DAC, so just need some resistor we can build it on Arduino . We make a prototype on the Arduino prototype shield :

arduinosignalgenerator1

arduinosignalgenerator2

The schematic is very sample .Note that one thing,  the higher precision resistors you used , the better effect.

arduinosignalgenerator_sch

How to write the code ? On the contrary of using a ADC , the same 8bit for a voltage express, 0xFF means 5V(Depend on your I/0 voltage level) and 0×00 means 0V, VCC divided into 256 , each represents a voltage value.

arduinosignalgenerator

For the sine wave , we could build a voltage table for the waveform , divided a cycle into 256 :

unsigned char sin_tab [256] = {

127,130,133,136,139,142,145,148,151,154,157,160,164,166,169,172,175,178,181,184,187,189,192,195,
197,200,202,205,207,210,212,214,217,219,221,223,225,227,229,231,232,234,236,237,239,240,242,243,
244,245,246,247,248,249, 250,251,251,252,252,253,253,253,253,253,254,253,253,253,253,252,252,251,
251,250,249,249,248,247,246,245,243,242,241,239,238,236,235,233,231,230, 228,226,224,222,220,218,
215,213,211,209,206,204,201,199,196,193,191,188,185,182,180,177,174,171,168,165,162,159,156,153,
150,147,144,141,137,134,131,128,125,122,119,116,112,109,106,103,100,97,94,91,88,85,82,79,76,
73,71,68,65,62,60,57,54,52,49,47,44,42,40,38,35,33,31,29,27,25,23,22,20,18,17,15,14,
12,11,10,8,7,6,5,4,4,3,2,2,1,1,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,4,5,6,7,8,9,10,11,13,14,16,17,19,21,22,24,
26,28,30,32,34,36,39,41,43,46,48,51,53,56,58,61,64,66,69,72,75,78,81,84,87,89,93,96,
99,102,105,108,111,114,117,120,123,127};

Of cause , it can be divided it into 512,1024, the more subdivision the better effect.

Try just put the value of this table into the I/O register, you can see a nice sine waveform in your DSO:

arduinosignalgenerator3

It’s easier to generate a triangle wave than sine wave. Just make the I/O output since the increase in proportion, you can see the waveform like below:

arduinosignalgenerator4

It’s the easiest way to generate the square wave ; )  Just pull all pins high and low alternating.

arduinosignalgenerator5

We can generate many special waveform if we want:

arduinosignalgenerator6

It just a simple signal generator , so you do not expect the waveform of good quality. It’s also hard to make the wave in fixed frequency, but it don’t means you can’t . In this shield we add a button for changing the different waveform , and maybe you can add one more for frequency modulation – just modify the interval of extend the output , you can change the frequency.

Get more latest information about this KIT and the code , you can login our iforum.

You may also be interested in these posts:

  1. Play Bluetooth With Arduino
  2. Arduino Ultrasonic Ranging With HC-SR04
  3. ITDB02-2.4 display with Arduino
  4. nRF24L01 Wireless Module with Arduino
  5. Sniffer Nano Source Code v1.0

Back Top

Responses to “Arduino Signal Generator Build On Protoshield”

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Back Top


SEO Powered by Platinum SEO from Techblissonline