|
1 | 1 | # Arduino Function Generator
|
2 | 2 |
|
3 |
| -A function / signal generator based on the AD9833 function generator chip. It uses an LCD screen to display a waveform menu and output frequency, and has 5 input buttons (up, down, left, right, select) which are |
| 3 | +A function / signal generator based on the AD9833 function generator chip. It uses an OLED screen to display a waveform menu and output frequency, and has 5 input buttons (up, down, left, right, select) which are |
4 | 4 | used to change frequency and waveform.<br>
|
5 |
| -There are two Arduino .INO files included; one for an LCD display, and one for an OLED display. Although both have the same result, are written differently to account for different screen behavioiur.<br> |
6 |
| -* function_generator_lcd.ino uses an LCD display and updates only parts of the display that have changed because of a slow, old, LCD driver. |
7 |
| -* function_generator_oled.ino is slightly more simple logic flow and updates the whole display with each user input. I would recommend starting with this version and modifying to suit your needs. |
| 5 | +**Added in Version 1.1** - Can do "sweep mode" by pressing and holding the select button. This will repeatedly sweep through frequencies starting at the selected frequency up to +1 MHz, or +10 MHz. |
8 | 6 | <br>
|
9 | 7 |
|
10 | 8 | ## Installation
|
11 | 9 | * Download the ZIP file and extract it to your Arduino folder.
|
12 | 10 | * Download and install the AD9833 library here: https://github.com/BasicCode/AD9833-arduino
|
13 |
| -###Choose a display library: |
14 |
| -* Download and install the LCD library here: https://github.com/BasicCode/4DSystems_uLCD-144-G1-arduino |
15 | 11 | * The OLED display uses two libraries from Adafruit (Thanks!). The SSD1306 driver: https://github.com/adafruit/Adafruit_SSD1306 and the graphics routines: https://github.com/adafruit/Adafruit-GFX-Library
|
16 | 12 |
|
17 | 13 | ## Build
|
18 | 14 | ### Prototyping
|
19 |
| -Prototyping on a breadboard the LCD and OLED displays should look like this: |
20 |
| -<br> |
21 |
| -128 x 128 px LCD display example<br><br> |
| 15 | +Prototyping on a breadboard looked like this: |
22 | 16 | <br>
|
23 | 17 | 128 x 32 px OLED display example.<br>
|
| 18 | +This works fine and the extra wire lengths do not seem to disturb the output signal.<br> |
| 19 | + |
24 | 20 | ### Fabrication
|
25 | 21 | I used a program called pcbWeb (http://www.pcbweb.com/) to design the circuit and PCB, then send the files off to one of the distributors included in the program. The whole process was very easy and the
|
26 | 22 | printed boards arrived after about 10 days. To my surprise I hadn't made any major mistakes on the board design and the fabrication was flawless. I found that it was cheaper to buy knock-off Arduino Nano
|
|
0 commit comments