0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

火柴盒示波器的制作

454398 ? 來源:工程師吳畏 ? 2019-08-20 11:13 ? 次閱讀

步驟1:以每秒1M個(gè)樣本進(jìn)行采樣

火柴盒示波器的制作

我們稱這個(gè)示波器為“ArdOsc”(因?yàn)檫@是INO文件的名稱)。

六年前,Cristiano Lino Fontana為他的Girino設(shè)計(jì)發(fā)布了一個(gè)Instructable。

它有點(diǎn)工作但有問題。特別是,它的最大可靠采樣率約為37ksps(75ksps偶爾會(huì)凍結(jié))并且觸發(fā)器似乎無法正常工作。它也沒有顯示。

Girino很慢,因?yàn)樗褂弥袛?。由于保存和恢?fù)寄存器所需的代碼,中斷很慢。中斷是危險(xiǎn)的,因?yàn)樗鼈兛赡軐?dǎo)致軟件出現(xiàn)錯(cuò)誤,而且很少發(fā)生錯(cuò)誤。我已經(jīng)編寫了40年的嵌入式代碼,我盡可能避免中斷。輪詢好,中斷不好。注意我的話。

因此,ArdOsc禁用所有中斷,進(jìn)入緊密循環(huán)并在需要時(shí)從ADC中獲取數(shù)據(jù)。如果ADC沒有完成:太糟糕了 - 只要給我你所擁有的。它抓取1000個(gè)樣本(每個(gè)一個(gè)字節(jié)),然后重新啟用中斷并通過串行端口以115200波特率將字節(jié)發(fā)送到PC - 或者它抓取128個(gè)樣本并將其顯示在屏幕上。

Girino Instructable詳細(xì)描述了Arduino ADC。如果您有興趣,請(qǐng)閱讀并閱讀Atmega328p數(shù)據(jù)表。我只想告訴你大綱。

Arduino ADC使用“逐次逼近”。它測(cè)量最重要的位 - 是0還是1?得到它之后,它將其“到目前為止的答案”與輸入電壓進(jìn)行比較并測(cè)量下一個(gè)最重要的位。接下來。等等10位。這些位存儲(chǔ)在ADCH寄存器(前8位)和ADCL(后兩位。我只想要8位,所以我忽略了ADCL。

ADC測(cè)量全部10位時(shí)設(shè)置一個(gè)標(biāo)志。但我只想要8位,所以我忽略了標(biāo)志并讀取ADCH是否ADC完成。我原本以為這意味著我會(huì)得到“答案到目前為止”但我沒有。到目前為止的“答案”存儲(chǔ)在其他地方,我們得到的是上傳到ADCH的最后一個(gè)答案。這意味著在1Msps模式下,每個(gè)連續(xù)的4個(gè)樣本集都是相同的。 Arduino草圖使它們平滑,因此它們看起來很好但不會(huì)被愚弄:你看到250ksps。 (感謝AndrewJ177指出這一點(diǎn) - 請(qǐng)參閱下面的討論。)

測(cè)量每個(gè)位需要時(shí)間。該定時(shí)脈沖來自于將Atmega的時(shí)鐘(16MHz)除以“預(yù)分頻器”值:2,4,8,16,32,64或128.如果將預(yù)分頻器設(shè)置為2,則為0.125uS,這對(duì)于ADC正確地進(jìn)行比較 - 質(zhì)量很差。預(yù)分頻器= 4,表示0.25uS哪種工作 - 結(jié)果有噪聲。預(yù)分頻器= 8,表示0.5uS,對(duì)于8位非常合理。一般來說,每位給ADC的時(shí)間越長,工作效果就越好。

但如果你允許ADC,比如每位1uS那么它每個(gè)字節(jié)需要8uS,即125ksps - 相當(dāng)慢。如果將預(yù)分頻器設(shè)置得太低,則只能正確轉(zhuǎn)換前幾位,并且得到的圖形具有大的鋸齒狀步長。如果將預(yù)分頻器設(shè)置得過高,則需要等待很長時(shí)間才能進(jìn)行轉(zhuǎn)換。

因此,這是每比特時(shí)間和每秒采樣之間的權(quán)衡。

我們還必須考慮輸入信號(hào)需要多長時(shí)間才能改變ADC采樣保持電容的電壓。我們不會(huì)在每次轉(zhuǎn)換之前更改通道,因此充電時(shí)間不必與Atmel文檔建議的時(shí)間一樣長,但仍有效果。示波器可以達(dá)到20kHz,但響應(yīng)會(huì)下降。您可以看到一個(gè)50kHz的正弦波,但它的大小應(yīng)該是它的四分之一。

ArdOsc代碼只有一個(gè)完全正確的長度,以1Msps的速度采樣 - 即它需要16個(gè)時(shí)鐘周期環(huán)。另一個(gè)更復(fù)雜的循環(huán)會(huì)占用更長的采樣時(shí)間。

第2步:最簡單的示波器

最簡單的ArdOsc由Arduino Nano(328p 16MHz)4個(gè)電阻和3個(gè)電容組成。

示波器由USB連接供電并傳輸幀通過USB將數(shù)據(jù)傳送到PC。

輸入信號(hào)被送入ADC A0引腳。在極端電壓情況下,10k電阻可為Atmega提供一些保護(hù)。 Atmega引腳具有二極管,可防止其輸入超過Vcc(5V)或低于0V。二極管可以傳導(dǎo)高達(dá)1mA的電流,因此示波器的輸入信號(hào)可以安全地在-10V和+ 15V之間變化。 ADC引腳的輸入阻抗約為100M和14pF,因此額外的10k對(duì)ADC的精度影響不大。

ADC使用Vcc作為參考電壓讀取A0引腳電壓 - 因此測(cè)量范圍為0V至5V。 (實(shí)際上它是0到Vcc * 254/255。)不幸的是,Vcc很少是5V,所以程序讀取Vcc的實(shí)際值并適當(dāng)?shù)乩L制“示波器顯示”的格線。

輸入是也通過一個(gè)100nF電容饋入ADC A1引腳。 A1通過1M電阻連接到0.55V。因此,A1引腳看到輸入信號(hào)的交流分量以0.55V為中心。

ADC使用內(nèi)部1.1V參考電壓讀取A1引腳電壓 - 因此測(cè)量值為-0.55V至+ 0.55V。

0.55V是由Nano的3V3引腳的分壓器產(chǎn)生的。 3V3引腳電壓比USB連接的“5V”穩(wěn)定得多。 3V3引腳的輸出不完全是3.3V,因此您必須修整分壓器以提供0.55V的電壓。將示波器輸入連接到地,然后查看AC范圍顯示的“電壓”。調(diào)整R1直到線位于屏幕中心 - 我需要R1 = 33k。

我已經(jīng)展示了電路的條形板布局。條形板與Arduino Nano的尺寸相同,形成三明治。 Nano的底面位于條形板的銅側(cè)(因此在圖中,Nano從下方顯示)。將一些引腳焊接到條板上,然后將Nano安裝在引腳上并將它們焊接到Nano上。在我的圖表中,條形板的銅以青色顯示。紅線是條形板上的導(dǎo)線或柔性導(dǎo)線從電路板上傳出信號(hào)和電源

步驟3:放大信號(hào)

“最簡單”示波器有兩個(gè)輸入范圍:

0V至5V

-0.55 V至+ 0.55V

但我們感興趣的許多信號(hào)都小于此值。因此我們可以添加兩個(gè)放大級(jí)。

LM358雙運(yùn)算放大器放大A1的AC信號(hào)。運(yùn)算放大器采用交流耦合,兩個(gè)輸入均以0.55V為中心。兩個(gè)運(yùn)算放大器級(jí)的增益都不到5倍。它們的輸出轉(zhuǎn)到A2和A3,因此Atmega可以選擇要采樣的信號(hào)。

示波器現(xiàn)在有四個(gè)輸入范圍:

0V到5V

-0.55V至+ 0.55V

-117mV至+ 117mV

-25mV至+ 25mV

它使用相同的INO文件并且作為“最簡單”的執(zhí)行。

將交流信號(hào)對(duì)中在0.55V附近的優(yōu)點(diǎn)是運(yùn)算放大器信號(hào)保持低電平。 LM258輸出不能在Vcc的1.5V范圍內(nèi);所以它的范圍是0V到3.5V - 可怕。

我已經(jīng)展示了電路的條形板布局。有兩個(gè)條板 - 一個(gè)用于Nano,另一個(gè)用于LM358。他們應(yīng)該形成三明治。電路板從元件側(cè)顯示。精細(xì)的柔性電線連接兩塊板。將電路板與粘墊,焊接支架或其他任何東西連在一起。在我的圖表中,條形板的銅以青色顯示。紅線是條形板上的線鏈或?qū)暹B接在一起的柔性線。我沒有顯示“測(cè)試引線”。

再一次,你可能需要修整分壓器給0.55V。將示波器輸入連接到地并調(diào)整R9直到線位于屏幕中央 - 我需要R9 = 33k。

LM358可能存在問題。如果信號(hào)大于LM358可以處理LM358的輸出失真。您應(yīng)該使用較高增益設(shè)置來查看小信號(hào)。如果你在大信號(hào)上使用它們,它們就會(huì)變形。你可以嘗試更好的芯片 - 如果你有一個(gè) - LM358是一個(gè)相當(dāng)差的芯片。

第4步:邏輯顯示

通常你在處理邏輯電平 - 示波器是否可以顯示幾個(gè)“邏輯”通道。是的 - 這比搞亂ADC更容易。

值得嗎?可能不是,但很容易這樣做為什么不呢?

示波器現(xiàn)在有五個(gè)輸入范圍:

0V到5V

-0.55V到+ 0.55V

-117mV至+ 117mV

-25mV至+ 25mV

邏輯

在“邏輯”中“模式,四個(gè)邏輯通道可以連接到Arduino引腳D8,D9,D10和D11。它們?cè)陲@示屏上顯示為四行。

D8至D11對(duì)應(yīng)于Atmega328p芯片的端口B引腳0至3.芯片將整個(gè)端口B讀入其采樣緩沖器而不是ADC輸出在ADCH寄存器中。

在1Msps模式下,你能看到的理論最大頻率是500kHz - 但你得到的只是一個(gè)“狀態(tài)變化”的實(shí)心條。實(shí)際上,250kHz信號(hào)更容易看到。

如果您不想要“邏輯”輸入,則不要將連接器包括在D8到D11中。在INO文件中,將bool常量bHasLogic設(shè)置為false。 (我嘗試重新編寫代碼以使用#define而不是bool const但是它很亂。)

步驟5:觸發(fā)器

假設(shè)您正在查看重復(fù)波形,例如正弦波。如果示波器在每次掃描時(shí)在屏幕上的相同位置顯示它,那就太好了。因此,示波器掃描應(yīng)該被啟動(dòng),就像波從負(fù)變?yōu)檎?/p>

首先我嘗試使用比較器來觸發(fā)掃描(即開始收集數(shù)據(jù))吉里諾做到了。它似乎很理想,但結(jié)果卻有缺點(diǎn)。我決定使用0.55V的固定觸發(fā)電壓 - 交流信號(hào)的中間位置。 Atmel允許您將比較器連接到當(dāng)前ADC通道。聽起來不錯(cuò)。但您必須關(guān)閉ADC,并在觸發(fā)發(fā)生時(shí)再次將其重新打開。 ADC需要一段時(shí)間才能啟動(dòng)。不太好。

所以我采取簡單的方法 - 運(yùn)行ADC并觀察它產(chǎn)生的值。當(dāng)它們從中途下降到中途時(shí),開始掃描。

在“邏輯”模式下,D8用作觸發(fā)器。

如果沒有信號(hào)則示波器應(yīng)該是自由運(yùn)行的。在等待一段時(shí)間后開始掃描。我選擇了最長等待250毫秒。程序初始化Timer1(一個(gè)16位定時(shí)器),然后等待,直到它計(jì)算了足夠數(shù)量的滴答。我只是看著Timer1的計(jì)數(shù)器 - 應(yīng)該有一個(gè)更好的方法來使用標(biāo)志,但它非常復(fù)雜,我無法讓它100%可靠地工作。

步驟6:測(cè)試信號(hào)輸出

您偶爾需要一個(gè)信號(hào)來測(cè)試您正在構(gòu)建的任何電路。很多人已經(jīng)有了信號(hào)發(fā)生器。

ArdOsc電路可以提供以下頻率的方波:

31250/1 = 31250Hz

31250/8 = 3906Hz

31250/32 = 977Hz

31250/64 = 488Hz

31250/128 = 244Hz

31250/256 = 122Hz

31250/1024 = 31Hz

測(cè)試信號(hào)在引腳D3上生成。

如果您不想要“測(cè)試信號(hào)”輸出,則不要包含連接器D3。在INO文件中,將bool常量bHasTestSignal設(shè)置為false。

步驟7:串行協(xié)議

示波器通過USB電纜將數(shù)據(jù)幀傳輸?shù)絇C,就好像它是115200波特,8位,無奇偶校驗(yàn)的串行數(shù)據(jù)流一樣。

PC可以將兩種命令發(fā)送到示波器。小寫命令是單個(gè)字節(jié):

‘a(chǎn)’將x軸設(shè)置為“1mS”= 1Msps

‘b’將x軸設(shè)置為“2mS”

‘c’將x軸設(shè)置為“5mS”

‘d’將x軸設(shè)置為“10mS”

‘e’將x軸設(shè)置為“ 20mS“

‘f’將x軸設(shè)置為”50mS“

‘g’將x軸設(shè)置為”100mS“

‘j’set y -axis to 5V

‘k’設(shè)置y軸為0.5V

‘l’設(shè)置y軸為0.1V‘m’設(shè)置y軸為200mV

‘n’將模式設(shè)置為“邏輯”

‘p’將觸發(fā)設(shè)置為下降

‘q’將觸發(fā)設(shè)置為上升

‘r ’設(shè)置測(cè)試信號(hào)關(guān)閉

‘s’設(shè)置測(cè)試信號(hào)31250Hz

‘t’設(shè)置測(cè)試信號(hào)3906Hz

‘u’設(shè)置測(cè)試信號(hào)976Hz

‘v’設(shè)置測(cè)試信號(hào)488Hz

‘w’設(shè)置測(cè)試信號(hào)244Hz

‘x’設(shè)置測(cè)試信號(hào)122Hz

‘y’設(shè)置測(cè)試信號(hào)30Hz

‘z’掃描并發(fā)送數(shù)據(jù)

掃描數(shù)據(jù)發(fā)送如下:

0xAA

0xBB

0xCC

1000字節(jié)數(shù)據(jù)

程序通過發(fā)送響應(yīng)每個(gè)命令一個(gè)Ack字節(jié) - “@”。

Arduino串行庫使用中斷來讀取串行輸入。掃描期間輸入關(guān)閉,因此輸入字節(jié)保留在Atmega的串行輸入寄存器中。掃描結(jié)束時(shí),串行庫收集字節(jié),程序可以讀取它。但是如果在掃描期間到達(dá)第二個(gè)字節(jié),它將被丟棄。

大寫命令可以包含幾個(gè)字節(jié),因此如果在掃描期間發(fā)送,則會(huì)損壞。在發(fā)送大寫命令之前,停止發(fā)送‘z’并等待結(jié)果。大寫命令僅用于調(diào)試和測(cè)試。有幾個(gè)可以包含整數(shù)十進(jìn)制值‘n’:

‘A’n將ADC通道設(shè)置為n

‘B’報(bào)告“電池”電壓= Vcc

‘D’報(bào)告狀態(tài)

‘F’n設(shè)置頻率pwm

‘R’n設(shè)置Vref為ADC

‘T’n觸發(fā)上升或下降

‘U’n設(shè)置預(yù)分頻器并發(fā)送掃描數(shù)據(jù)

‘V’n設(shè)置ADC的采樣周期

步驟8:添加顯示

示波器可以有自己的內(nèi)置顯示器--1.3“OLED。雖然1.3”聽起來很小,但這些顯示器非常清晰。

顯示器有1.3“OLE運(yùn)行在3.3V時(shí),由SH1106芯片通過I2C總線控制。(SPI版本可用,但我使用Arduino SPI引腳作為“邏輯”。)

我需要一個(gè)非??焖俚腁rduino庫和它最好是小的.U8glib庫很慢而且很大,所以我自己編寫。它只有很少的命令所以它叫做“SimpleSH1106”。

SH1106有一個(gè)內(nèi)置緩沖區(qū),每像素一位。它被安排為128列7個(gè)條帶(其他尺寸可用)。每個(gè)樣本高8像素,頂部有l(wèi)sb。在SH1106文檔中,swathes稱為“pages”,但“swathe”是計(jì)算機(jī)圖形學(xué)中的標(biāo)準(zhǔn)術(shù)語。您可以寫入的最小單位是一個(gè)字節(jié) - 從8像素邊界開始的8像素列。

我的庫在Arduino上沒有屏幕緩沖區(qū)所以所有命令都基于將整個(gè)字節(jié)寫入頁面。它不太方便,但你獲得1k的RAM。

Atmel328p內(nèi)置I2C驅(qū)動(dòng)程序連接到A4(SDA)和A5(SCL)引腳。 SDA和SCL需要上拉電阻;內(nèi)置的I2C驅(qū)動(dòng)程序使用Atmel328p弱上拉電阻約50kohm。 50k上拉電阻在低速下工作,但上升沿的速度不夠快,因此我在Nano的3V3引腳上增加了1k的上拉電阻。

Arduino IDE有一個(gè)名為Wire.h的I2C驅(qū)動(dòng)程序庫。這是一個(gè)不錯(cuò)的小型快速庫,但正如您對(duì)Arduino所期望的那樣,文檔記錄很少。該庫初始化I2C硬件以100kHz運(yùn)行,但我想要更快。因此在調(diào)用Wire.begin()之后,我將Atmel328p TWBR寄存器設(shè)置為較小的值。

生成的庫很快 - 示波器的掃描顯示在40mS內(nèi)繪制??梢允褂靡韵旅睿?/p>

void clearSH1106()用0字節(jié)(黑色)填充屏幕。

void DrawByteSH1106 繪制一個(gè)字節(jié)(一個(gè)8像素的列)。

int DrawImageSH1106 繪制圖像。

int DrawCharSH1106 繪制一個(gè)角色。

int DrawStringSH1106 繪制一個(gè)字符串。

int DrawIntSH1106 繪制一個(gè)整數(shù)。

圖像在程序存儲(chǔ)器(PROGMEM)中聲明。提供了一個(gè)Windows程序,用于將BMP文件轉(zhuǎn)換為SimpleSH1106的游程編碼圖像。

庫中給出了完整的描述。

我展示了一個(gè)條形板電路布局。有三個(gè)條形板 - 一個(gè)用于Nano,一個(gè)用于顯示器,一個(gè)用于LM358。他們應(yīng)該形成三明治。電路板從元件側(cè)顯示。精細(xì)的柔性電線連接兩塊板。將電路板與焊接的支架連接在一起。在我的圖表中,條形板的銅以青色顯示。紅線是條形板上的線鏈或?qū)暹B接在一起的柔性線。我沒有展示“測(cè)試線索”。

有些顯示器的引腳似乎有不同的順序。檢查它們。

我購買的0.9“顯示器的像素的x坐標(biāo)從x = 0到127運(yùn)行。使用1.3”顯示器它們是從x = 2到129.該庫包含一個(gè)常量“colOffset”,允許您調(diào)整顯示器的偏移量。

我已經(jīng)為SM PCB附加了Gerber文件和EasyPC源文件。這些尚未經(jīng)過測(cè)試,因此使用它們需要您自擔(dān)風(fēng)險(xiǎn)。

步驟9:不同的屏幕

模擬顯示屏顯示帶有刻度的波形。橫軸表示時(shí)間im mS??v軸表示伏特,虛線為4V,0.5V,0.1V和20mV;在DC模式下,0V位于底部;在AC模式下,0V在中間顯示為虛線。

邏輯顯示屏顯示四個(gè)通道位。 D8是頂部通道,D11是底部通道。橫軸表示以mS為單位的時(shí)間。

有兩個(gè)按鈕:一個(gè)用于調(diào)整時(shí)基軸的“水平”按鈕和一個(gè)用于調(diào)整增益軸的“垂直”按鈕。如果您按住任一按鈕1秒鐘,則會(huì)出現(xiàn)一個(gè)菜單屏幕。

當(dāng)菜單顯示時(shí),“垂直”按鈕會(huì)滾動(dòng)瀏覽不同的設(shè)置,“水平”按鈕會(huì)設(shè)置每個(gè)設(shè)置的值。 。如果您沒有按任何一個(gè)按鈕2秒鐘,程序?qū)⒎祷仫@示波形。

步驟10:頻率計(jì)數(shù)器

通過使用Timer1和Timer2,ArdOsc也可以充當(dāng)頻率計(jì)數(shù)器。頻率計(jì)有兩種工作方式:在一秒鐘內(nèi)計(jì)算上升沿的數(shù)量,或者測(cè)量從一個(gè)上升沿到下一個(gè)上升沿的時(shí)間。

再一次,值得嗎?也許。我不記得我需要一個(gè)頻率計(jì)數(shù)器的時(shí)間。為什么不這樣做很容易?

為了計(jì)算D8“邏輯”信號(hào)的邊沿,程序選擇D5作為Timer1的時(shí)鐘輸入(16位計(jì)數(shù)器/定時(shí)器)。 D5外部連接到D8 - “邏輯”輸入之一。 Timer0(一個(gè)8位定時(shí)器)設(shè)置為每毫秒溢出一次。每次Timer0溢出時(shí),都會(huì)產(chǎn)生中斷。 1000次中斷后,Timer1中的計(jì)數(shù)顯示為“頻率”。如果Timer1計(jì)數(shù)超過65536,則會(huì)產(chǎn)生中斷并記錄此類中斷的數(shù)量。

要測(cè)量從一個(gè)邊沿到下一個(gè)AC信號(hào)的時(shí)間,定時(shí)器1被設(shè)置為空閑 - 運(yùn)行16MHz計(jì)時(shí)器。 ICR1寄存器設(shè)置為在比較器變?yōu)楦唠娖綍r(shí)捕獲Timer1中的當(dāng)前值。比較器的負(fù)輸入連接到A3,正輸入連接到D6。每次比較器變?yōu)楦唠娖綍r(shí),都會(huì)產(chǎn)生中斷。一個(gè)中斷和下一個(gè)中斷之間的時(shí)間是周期(1/頻率)。程序顯示一秒鐘內(nèi)測(cè)量的平均頻率。比較器意味著在上升沿觸發(fā),但沒有雜音,因此如果有噪聲,下降沿將被視為上升沿。這在低頻時(shí)尤其重要,因此,例如,10Hz信號(hào)將被報(bào)告為20Hz。

同時(shí),Timer2可能產(chǎn)生“測(cè)試信號(hào)”。因此沒有定時(shí)器可用,我們不能使用正常的Arduino函數(shù)delay(),millis()等。

頻率計(jì)數(shù)器的代碼基于Nick Gammon的優(yōu)秀網(wǎng)頁。

如果您不想輸入“頻率計(jì)數(shù)器”,則不需要從D5到D8的連接。在INO文件中,將bool常量bHasFreq設(shè)置為false。

步驟11:電壓表

示波器還可以作為電壓表,可以測(cè)量大約-20V和+ 20V之間的電壓。它使用Atmega328p的內(nèi)置帶隙電壓參考,因此相當(dāng)準(zhǔn)確。

值得嗎?功能的數(shù)量越來越荒謬。好的,為什么不呢?

在A6測(cè)量電壓,ADC使用Vcc(即大約5V)作為參考。因?yàn)椤?V”是近似值,我們還通過將其與1.1V帶隙進(jìn)行比較來測(cè)量Vcc的實(shí)際值。根據(jù)數(shù)據(jù)表,帶隙僅為10%準(zhǔn)確,但我嘗試的幾個(gè)接近1.1V。

要測(cè)量的輸入電壓通過電阻網(wǎng)絡(luò)。我選擇了上面顯示的值

Ra = 120k

Rb = 150k

Rc = 470k

你會(huì)在MeasureVoltage()函數(shù)的開頭附近找到這些常數(shù)。

Rc告訴你電壓表的輸入阻抗。與便宜的數(shù)字萬用表相比,470k是低的,但是足夠高,可以使用。

電壓表可以測(cè)量的最低電壓是

-5 * Rc/Ra = -19.6V

它可以測(cè)量的最高值是

5 * Rc/Rb + 5 = 20.7V

如果需要,可以選擇不同的電阻。

如果超過這些電壓怎么辦?沒事的。如果Arduino輸入引腳上的電壓高于Vcc或低于0V,保護(hù)二極管可以承受1mA電流。使用470k意味著理論上可以測(cè)試470V的電壓。但是我不相信在470V的條形板絕緣,你不應(yīng)該玩這樣的電壓和這種原油電路。

如果想要精確的測(cè)量,你需要校準(zhǔn)電壓表。將電壓表輸入“探頭”連接到0V,看看電壓表報(bào)告的內(nèi)容。調(diào)整calibrateZero常數(shù),直到電壓表讀數(shù)為“0.00V”?,F(xiàn)在將電壓表輸入連接到已知電壓源 - 如果你有一個(gè)不錯(cuò)的萬用表,那么測(cè)量一個(gè)9V電池的電壓。調(diào)整calibrateVolts常數(shù)直到電壓表給出正確的答案。

如果您不想要“電壓表”輸入,那么您不需要連接到D6的電阻。在INO文件中,將bool常量bHasVoltmeter設(shè)置為false。

步驟12:測(cè)試引線

示波器通常具有花哨的測(cè)試引線。我通常使用無焊接面包板,所以我只是附加了一種用于面包板的插入式電線。由于示波器由5V供電,我將其連接到我在面包板上使用的任何5V和0V電源以及更多的插入式電線。

步驟13:添加信號(hào)發(fā)生器

信號(hào)發(fā)生器是一個(gè)非常有用的部分測(cè)試裝備這個(gè)使用AD9833模塊。我在這里描述了一個(gè)獨(dú)立的版本;此步驟描述如何將一個(gè)添加到ArdOsc。 (此步驟是對(duì)此原始Instructable的編輯。)

AD9833可以生成0.1 MHz至12.5 MHz的正弦波,三角波和方波 - 本項(xiàng)目中的軟件限制為1Hz至100kHz。它可以用作掃描發(fā)生器。掃頻發(fā)生器有助于測(cè)試濾波器,放大器等的頻率響應(yīng)。

我選擇的AD9833模塊與此類似。我不是說這是最好或最便宜的供應(yīng)商,但你應(yīng)該買一張看起來像那張照片。

模塊之間的連接是:

地面連接在一起

5V = AD9833的Vcc

D2 = FSync

D13 = Clk

D12 =數(shù)據(jù)

上面的示意圖是步驟8中的原理圖的補(bǔ)充。您可以使用另一塊stripboard將另一層添加到步驟8中描述的三明治中。

我已在步驟中更新了INO文件8包括控制AD9833的代碼。如果添加AD9833,則應(yīng)將bHasSigGen變量設(shè)置為true(我將其保留為false,因?yàn)榇蠖鄶?shù)人沒有AD9833)。

新菜單控制AD9833。它允許您選擇頻率和波形以及是否掃描頻率。

掃描發(fā)生器在1,5或20秒內(nèi)反復(fù)輸出逐漸增加的頻率。它以“min”頻率開始,1,5或20秒后處于“最大”頻率。頻率變化是對(duì)數(shù)的,并且每毫秒改變一次。在掃描頻率時(shí),示波器無法顯示頻率。

在不同模式下,掃描發(fā)生器輸出頻率,顯示示波器輸入,更改頻率,顯示示波器輸入等。頻率從“min”變?yōu)椤癿ax”超過這些步驟的20,100或500(或稱為“幀”)。頻率變化比“掃描”模式更加粗糙,但您可以觀察正在發(fā)生的事情。

步驟14:未來發(fā)展

可能是電池供電?是的,只需添加連接到Nano的RAW引腳的9V PP3。它通常使用25mA。

它可以由單個(gè)鋰電池供電嗎?這不是那么簡單,因?yàn)?.7V可能還不夠。在DC模式下顯示電壓的代碼已經(jīng)讀取Vcc電壓,因此它將調(diào)整刻度位置。 Nano可以在3.7V(進(jìn)入“5V”引腳)上運(yùn)行。但是,3V3輸出可能不會(huì)達(dá)到3.3V;監(jiān)管機(jī)構(gòu)的輟學(xué)率太大了。你可以直接從鋰電池的3.7V開始運(yùn)行顯示器,但是你從哪里獲得0.55V的參考電壓?它需要穩(wěn)定。也許您可以使用LM317(如果將其Adjust引腳連接到0V,則可提供穩(wěn)定的1.25V電壓 - 該電流下降應(yīng)該足夠低)?;蛘吣梢允褂?a target="_blank">LED作為齊納?;蛘?,只要您汲取微小電流,就可以使用Vref引腳上的電壓 - 將其連接到發(fā)射極跟隨器。您可能需要將LM358替換為工作電壓較低的運(yùn)算放大器。

觸發(fā)器可以更好嗎?數(shù)字示波器在觸發(fā)之前將數(shù)據(jù)收集到循環(huán)緩沖區(qū)中。觸發(fā)水平可以變化嗎?你能一次掃一掃嗎?是的,你可以做所有這些,但你可能更好只需購買“適當(dāng)?shù)摹笔静ㄆ鳌?/p>

你能使用Pro Mini嗎?是的,但這不值得。您需要為顯示器和0.55V參考電壓制作自己的3V3信號(hào)。如果您要將數(shù)據(jù)發(fā)送到PC,那么您將需要一個(gè)串口轉(zhuǎn)USB。只需使用Nano。

它可以是無線的嗎?是。添加自己的藍(lán)牙與HC-05(Instructables可用)并連接到PC或Android手機(jī)。 ESP 8266對(duì)于這個(gè)項(xiàng)目來說會(huì)更麻煩。

你能用更大的顯示器嗎?是的,但為什么這么麻煩,質(zhì)量不是那么好。只需買一臺(tái)示波器。

你能做得比LM358好嗎?是。如果您的組件抽屜中有各種運(yùn)算放大器,請(qǐng)嘗試使用它們。讓我知道哪一個(gè)效果最好。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 示波器
    +關(guān)注

    關(guān)注

    113

    文章

    6161

    瀏覽量

    184278
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    火柴盒大小的開發(fā)板duos做輕NAS體驗(yàn)

    火柴盒大小的國產(chǎn)開發(fā)板,做輕NAS是什么樣的體驗(yàn)!哈嘍,大家好;前段時(shí)間有一家公司叫算能,他送給我們一個(gè)火柴盒大小的一個(gè)開發(fā)板,他說這個(gè)開發(fā)板也可以做輕NAS,今天就帶大家一起看看。DuoS體積很小
    的頭像 發(fā)表于 10-10 08:08 ?843次閱讀
    <b class='flag-5'>火柴盒</b>大小的開發(fā)板duos做輕NAS體驗(yàn)

    示波器探頭和示波器需要匹配嗎

    示波器探頭和示波器匹配問題是一個(gè)非常重要的話題,因?yàn)樗鼈冎g的匹配程度直接影響到測(cè)量結(jié)果的準(zhǔn)確性和可靠性。 示波器探頭的工作原理 示波器探頭是一種用于將被測(cè)信號(hào)傳輸?shù)?/div>
    的頭像 發(fā)表于 08-09 14:33 ?336次閱讀

    虛擬示波器還是數(shù)字示波器好用

    虛擬示波器和數(shù)字示波器各有優(yōu)缺點(diǎn),具體選擇哪一種取決于您的具體需求和預(yù)算。 虛擬示波器 定義 虛擬示波器是一種基于計(jì)算機(jī)軟件的示波器,它通過
    的頭像 發(fā)表于 07-17 17:16 ?509次閱讀

    電子示波器和數(shù)字示波器的比較

    引言 示波器是一種廣泛應(yīng)用于電子測(cè)量領(lǐng)域的儀器,它能夠?qū)㈦娦盘?hào)的波形以圖形的方式顯示出來,便于工程師對(duì)信號(hào)進(jìn)行分析和測(cè)量。示波器主要分為兩大類:電子示波器和數(shù)字示波器。電子
    的頭像 發(fā)表于 07-17 17:10 ?447次閱讀

    單蹤示波器和雙蹤示波器的區(qū)別

    示波器,作為電子測(cè)試領(lǐng)域的重要工具,用于觀測(cè)和分析電信號(hào)的波形。在示波器的種類中,單蹤示波器和雙蹤示波器是兩種常見的類型。它們各有特點(diǎn),適用于不同的測(cè)試場(chǎng)景。本文將深入探討單蹤
    的頭像 發(fā)表于 05-23 17:30 ?1162次閱讀

    示波器的帶寬是什么 示波器帶寬選擇的技巧

    示波器的帶寬是示波器性能的一個(gè)重要指標(biāo),它指的是示波器可以準(zhǔn)確地測(cè)量和顯示信號(hào)的最高頻率。
    的頭像 發(fā)表于 05-20 15:37 ?1096次閱讀

    模擬示波器和數(shù)字示波器的區(qū)別

    示波器作為電子測(cè)量領(lǐng)域的重要工具,經(jīng)歷了從模擬到數(shù)字的技術(shù)變革。模擬示波器和數(shù)字示波器各有其特點(diǎn)和應(yīng)用場(chǎng)景,兩者在工作原理、性能參數(shù)、功能特性以及使用體驗(yàn)等方面都存在顯著的差異。本文將對(duì)模擬
    的頭像 發(fā)表于 05-11 16:13 ?2316次閱讀

    混合示波器與數(shù)字示波器的區(qū)別

    在電子測(cè)試與測(cè)量領(lǐng)域,示波器作為一種重要的工具,其性能和應(yīng)用對(duì)于工程師和技術(shù)人員來說至關(guān)重要。隨著科技的發(fā)展,示波器的種類和功能也在不斷演進(jìn),其中混合示波器和數(shù)字示波器作為兩種常見的
    的頭像 發(fā)表于 05-10 15:50 ?745次閱讀

    數(shù)字示波器和模擬示波器的區(qū)別

    數(shù)字示波器和模擬示波器在電子測(cè)量領(lǐng)域都有各自的應(yīng)用,它們之間存在一些顯著的區(qū)別。
    的頭像 發(fā)表于 05-09 18:25 ?1959次閱讀

    iptv機(jī)頂怎么連接 iptv機(jī)頂和網(wǎng)絡(luò)機(jī)頂有什么區(qū)別

    IPTV機(jī)頂是一種用于接收和播放IPTV(Internet Protocol Television)服務(wù)的設(shè)備。它通過互聯(lián)網(wǎng)連接電視和電視節(jié)目提供商的服務(wù)器,使用戶能夠觀看各種廣播頻道、視頻點(diǎn)播
    的頭像 發(fā)表于 02-05 13:40 ?2140次閱讀

    什么是示波器觸發(fā)?示波器的區(qū)域觸發(fā)功能!

    什么是示波器觸發(fā)?示波器的區(qū)域觸發(fā)功能! 示波器觸發(fā)是示波器中一項(xiàng)重要的功能,它用于在輸入信號(hào)中選擇一個(gè)特定的起始點(diǎn),以便于穩(wěn)定地顯示波形。 在使用
    的頭像 發(fā)表于 01-22 13:40 ?1513次閱讀

    示波器示波器探頭如何實(shí)現(xiàn)遠(yuǎn)程控制及區(qū)分?

    示波器示波器探頭如何實(shí)現(xiàn)遠(yuǎn)程控制及區(qū)分? 示波器是電子測(cè)試儀器中的一種,它主要用于顯示和測(cè)量電信號(hào)的波形和電壓。示波器探頭則是示波器和要測(cè)
    的頭像 發(fā)表于 01-19 16:16 ?722次閱讀

    采樣示波器和實(shí)時(shí)示波器的區(qū)別

    采樣示波器和實(shí)時(shí)示波器的區(qū)別? 采樣示波器和實(shí)時(shí)示波器是電子測(cè)量領(lǐng)域常用的兩種示波器類型,它們?cè)谠怼⑻攸c(diǎn)、應(yīng)用和優(yōu)缺點(diǎn)等方面存在差異。下面
    的頭像 發(fā)表于 01-03 17:13 ?1081次閱讀

    基于STM32制作的500KHz示波器項(xiàng)目

    今天小編給大家?guī)韲獾腗aker Mirko Pavleskid的基于STM32制作的500KHz示波器項(xiàng)目。
    的頭像 發(fā)表于 12-03 10:07 ?1694次閱讀
    基于STM32<b class='flag-5'>制作</b>的500KHz<b class='flag-5'>示波器</b>項(xiàng)目