Make a digital oscilloscope via Arduino

Make a digital oscilloscope via Arduino

thingiverse

Here is my attempt to create a digital oscilloscope using Arduino. I've tried two different methods to achieve this goal. The first method uses a special ADC chip and a single-chip microcontroller, but it's more complex and difficult for beginners. The second method uses a single-chip ADC and a converter, which is simpler but has a significant drawback - the bandwidth of the oscilloscope is only 7.7KHz. Recently, I saw an online friend who built an Arduino oscilloscope, but their results were not ideal due to a narrow bandwidth. So I# I wanted to try and see if there was no good way to solve this problem. Produced by experiment, and constantly modified the code and improved d/a conversion sample rate, very good results have been achieved. The main parameters of the final product are: * Frequency response: 10Hz-50KHz * Power supply: 5V * LCD screen: 128x64 (ST7920) * Measurement display area: 96x64 * Information display: 32x64, displays frequency of test signal, Vpp, and more * Sync: rising edge triggers * Scan speed: 0.02ms/div~10ms/div, carrying nine 1-2-5 * Hold function: freeze the displayed waveform and parameters Using the Arduino project's biggest advantage is its rich resources, and do not need much knowledge of SCM. I made using a repository u8glib LCD, making it easier to program or LCD drive will cost you a lot of time. Here is my first test circuit for Arduino UNO building, 12864 LCD using ST7920 control as long as the input method in the following code, compiled after download you can achieve the basic functions of digital oscilloscope, wouldn't it be simpler? #include // statement U8GLIB_ST7920_128X64_4X u8g(13, 12, 11); Statement LCD SPI Com: SCK = 13, MOSI = 12, CS = 11 int x,y; Painted point coordinates int Buffer[128]; Cache storage array void setup( ) {} Sample void sample( ) For(x=0;x<128;x++) Buffer[x]=analogRead(A0); Signal sampling For(x=0;x<128;x++) Buffer[x]=63-(Buffer[x]>>4); Calculate y values Display void draw( ) For(x=0;x<127;x++) U8GLIB_ST7920_128X64_4X u8g.drawLine(x,Buffer[x],x,Buffer[x+1]); U8GLIB_ST7920_128X64_4X u8g.drawLine(64,0,64,63); For(x=0;x<128;x++) U8GLIB_ST7920_128X64_4X u8g.drawLine(0,32,128,32);

Download Model from thingiverse

With this file you will be able to print Make a digital oscilloscope via Arduino with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on Make a digital oscilloscope via Arduino.