在線制作數字示波器的經常見到的人,DSO必須具有數模轉換單元,根據d/a轉換電路可分為兩種模式:1.特殊ADC芯片+單片機,2.在轉換器內部使用單片機ADC計數。對于第一個模型,我嘗試了兩個,該電路稍微復雜一點,組件更難以完成,對于初學者來說很難。第二種結構相對簡單,易于制造,但是具有很大的缺點,即帶寬較窄, 示波器的帶寬僅為7.7KHz。國內用戶和STC單芯片AVR生產,但實際帶寬小于10KHz。您也可以選擇使用Fusion PCB制作PCB板,而無需自己焊接。
步驟1:代碼
最近用Arduino示波器看到了一個網友,它可能比上面的第二種方法更容易使用,但結果并不理想,帶寬很窄。因此,我想嘗試一下,沒有解決此問題的好方法。通過實驗制作,不斷修改代碼,提高了d/a轉換采樣率,取得了很好的效果。
最終產品的主要參數:頻率響應:10Hz-50KHz電源: 5V LCD LCD屏幕:128x64(ST7920)測量顯示區域:96x64信息顯示:32x64,顯示測試信號的頻率,Vpp等;同步:上升沿觸發掃描速度:0.02ms/div?10ms/div,載有9個1-2-5保持功能:凍結顯示的波形和參數二,基本測試使用Arduino項目的最大優勢是其豐富的資源,并且不需要太多的SCM知識。我使用的是u8glib LCD儲存庫,從而使編程更容易,否則LCD驅動器將花費您很多時間。 U8glib下載:u8glib_arduino_v1.13.zip(989.55 KB,下載:2577)這是我使用Arduino UNO構建的第一個測試電路,使用ST7920控制的12864 LCD LCD。只要將以下代碼中的輸入法下載后編譯,就可以實現數字示波器的基本功能,會不會更簡單? #包括//聲明U8GLIB_ST7920_128X64_4X u8g(13,12,11);語句LCD SPI Com:SCK = 13,MOSI = 12,CS = 11 int x,y;繪制點坐標int Buffer [128];緩存存儲陣列void setup(){}樣本void sample(){for(x = 0; x 《128; x ++)Buffer [x] = AnalogRead(A0); (x = 0; x 《128; x ++)Buffer [x] = 63-(Buffer [x] 》》 4)的信號采樣;計算y值}顯示void draw(){for(x = 0; x 《127; x ++)u8g.drawLine(x,Buffer [x],x,Buffer [x + 1]);畫兩條線u8g.drawLine(64,0,64,63);繪制軸u8g.drawLine(0,32,128,32);對于(x = 0; x 《128; x + = 8)//繪制軸刻度u8g.drawLine(x,31,x,33); for(x = 0; x 《64; x + = 8)u8g.drawLine(63,x,65,x); u8g.drawFrame(0,0,128,64);繪制邊框} void loop(){sample();示例u8g.firstPage();清除屏幕做draw();顯示while(u8g.nextPage());
}
步驟2:電路
使用測試電路,直接使用AnalogRead()函數測量Arduino,以完成ad/a轉換,轉換速度約為111μs速度很慢,因此其帶寬大部分為1KHz,下一個優先事項是在增加其他功能的同時提高數模轉換的速度。
第三,最新的程序這是使用最新的源代碼,請保留我的開機LOGO,哈哈。 Arduino_oscilloscope.zip(2.72 KB,下載:2710)
程序芯片1.1V ADC使用上述電壓基準,如果要使用外部5V基準電壓,則應程序ADMUX = 0xe0;至:ADMUX = 0x60; Vpp =(V_max-V_min)* 1.1/255;讀取:Vpp =(V_max-V_min)* 5/255;
使用Fusion PCB可以制造出更好的電路板。
使用上面的Arduino UNO進行四次機器制造的實驗,
電路圖:
主要組件列表:編號名稱Arduino PRO mini 1 LCD12864 LCD(ST7920)1電解電容器(100μ25V)1電位器(50k)1孔板3電源開關1電池盒2按鈕開關(帶可充電電池,第7個)1盒1
1,焊接Arduino PRO mini PIN。/p》
2,焊接電路板組件
3,制作LCD孔板
4,組裝電路板
5,制作外殼I
6,組裝
將帶有塑料外殼的寶盒的充電結構調整到孔中的適當位置。
6,組裝
將電路板裝入帶有厚白色面板的外殼中
第3步:上傳并測試
都e到Arduino PRO mini不會打開USB串行端口電路,因此在下載程序之前要通過USB串行端口下載進行傳輸。
示波器的調試非常簡單,只需將電位器調至50k中心即可。水平掃描線。我使用信號發生器的信號源。
啟動LOGO
測試:
一些解釋
1,這是最常見的一種。簡單的數字示波器,您可以在此基礎上進一步改進;
2,您可能已經注意到我沒有使用I/O端口0-7,而I/O端口恰好是8位AVR芯片的微型計算機,這是我為后續升級準備的,使用特殊的ADC芯片,可以用作數據輸入,如果您對示波器感興趣,那么我會考慮升級;
3 ,工作很匆忙,存在任何缺陷和不足,請提出建議,您還有任何問題可以在這里進行。
-
數字示波器
+關注
關注
6文章
522瀏覽量
33565 -
Arduino
+關注
關注
188文章
6469瀏覽量
186969
發布評論請先 登錄
相關推薦
評論