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

東映攜手奧拓刷新日本影視制作數(shù)字化標(biāo)桿
豐富的觸發(fā)功能-4457系列數(shù)字示波器

示波器測(cè)量電壓的步驟 數(shù)字示波器的基本操作方法
示波器的觸發(fā)功能(上)

評(píng)論