基于Arduino的數(shù)字示波器
一、概述 經(jīng)常在網(wǎng)上 看到有人制作數(shù)字示波器,數(shù)字示波器必須有數(shù)模轉(zhuǎn)換單元,根據(jù)數(shù)模轉(zhuǎn)換方式可以將電路分為兩種模式:1.專用ADC芯片+單片機(jī),2.利用單片機(jī)內(nèi)部的ADC作數(shù)模轉(zhuǎn)換。對于第一種模式我也做過兩種(見我的博客: http://blog.sina.com.cn/ntwhq ),這種模式電路要復(fù)雜一點(diǎn),元器件也較難配齊,對初學(xué)者來說比較困難。第二種結(jié)構(gòu)比較簡單,容易制作,但有一個明顯的缺點(diǎn),就是帶寬比較窄,其中一個比較典型的作品是國外網(wǎng)友制作的:http://www./circuits/AVR_oscilloscope/avr_oscilloscope.htm ,這個示波器的帶寬只有7.7KHz。國內(nèi)也有網(wǎng)友用AVR和STC單片機(jī)制作的,但實(shí)際帶寬均不超過10KHz。 最近看到有網(wǎng)友用Arduino做示波器,這可以說比上面的第二種方式還要簡單,但觀察其制作的效果卻不理想,帶寬很窄。因此我也想試一下,看看又沒有好的方法來解決這一問題。通過實(shí)驗(yàn)制作,不斷修改代碼,提高數(shù)模轉(zhuǎn)換的取樣率,取得了很好的效果。 最終作品的主要參數(shù): 頻率響應(yīng): 10Hz-50KHz 電 源: 5V LCD液晶屏: 128x64(ST7920) 測量顯示區(qū):96x64 信息顯示區(qū):32x64,顯示測試信號的頻率、Vpp等內(nèi)容 同步方式:上升沿觸發(fā) 掃描速度:0.02ms/div~10ms/div,按1-2-5進(jìn)位分九檔 Hold功能:凍結(jié)顯示波形和參數(shù) 二、基礎(chǔ)試驗(yàn) 使用Arduino 做項(xiàng)目的最大優(yōu)勢就是其豐富的資源,同時也不需要了解太多單片機(jī)的知識。我下面的制作就利用了一個LCD的資源庫u8glib,使得編程變得簡單多了,不然LCD的驅(qū)動會花費(fèi)你好多時間。 u8glib 下載:
u8glib_arduino_v1.13.zip
(989.55 KB, 下載次數(shù): 858)
下面是我先用Arduino UNO搭建的試驗(yàn)電路,LCD使用ST7920控制的12864液晶屏。
只要輸入法下列代碼,編譯下載后就能實(shí)現(xiàn)數(shù)字示波器的基本功能了,是不是很簡單? [C] 純文本查看 復(fù)制代碼
顯示效果:
利用這個試驗(yàn)電路,我測量了Arduino 直接使用analogRead() 函數(shù)完成一次數(shù)模轉(zhuǎn)換的時間約為111微秒,轉(zhuǎn)換速度很慢,因此其帶寬只有1KHz多點(diǎn), 接下來的首要任務(wù)就是提高數(shù)模轉(zhuǎn)換速度,同時增加其它功能。 三、最新程序 下面是最新的源代碼,使用時請保留我的開機(jī)LOGO,呵呵。
Arduino_oscilloscope.rar
(2.44 KB, 下載次數(shù): 813)
四、整機(jī)制作 上面做試驗(yàn)用的是Arduino UNO,實(shí)際制作時使用Arduino PRO mini,這樣才能有小體積。 電路圖:
主要元器件清單: 名稱 數(shù)量 Arduino PRO mini 1 LCD12864液晶屏(ST7920) 1 電解電容器(100μ 25V) 1 電位器(50k) 1 洞洞板 2 按鈕開關(guān) 3 電源開關(guān) 1 電池盒(配7號充電電池) 1 機(jī)殼 1 1、焊接Arduino PRO mini 插針。
2、 焊接電路板元件
3、制作LCD洞洞板
4、組裝電路板
5、制作機(jī)殼 我用了一個充電寶的塑料包裝盒改制機(jī)殼,在相應(yīng)的地方打上孔。
6、總裝 將電路板裝入機(jī)殼,用厚點(diǎn)的白紙做一個面板,貼在前面板內(nèi)側(cè)。
五、程序下載與測試 由于 Arduino PRO mini 不自帶USB轉(zhuǎn)串口的電路,所以要通過一根USB轉(zhuǎn)串口的下載線才能下載程序。 示波器的調(diào)試很簡單,只要調(diào)節(jié)50k電位器使水平掃描線居中即可。 我用一臺信號發(fā)生器作信號源。
開機(jī)LOGO
測試圖:
六、測試視頻 測試過程中在調(diào)節(jié)信號源的頻率輸出方法,調(diào)節(jié)示波器的掃描速度按鍵和Hold按鍵。 |
|
|