對于喜歡偶爾鼓搗電子產品的工程師來說,他們都希望能有自己的實驗室。萬用表、鉗形表、示波器、LCR表、函數發生器、雙模電源和自動變壓器都是實驗室的基本配置。雖然所有這些都可以購買,但我們也可以輕松地自行制作,如函數發生器和雙模電源。
在本篇文章中,我們將學習如何使用Arduino開發板快速輕松地制作自己的函數生成器。該函數發生器又稱波形發生器,可產生頻率范圍為1Hz至2MHz的方波(5V / 0V),波形頻率可通過旋鈕控制,占空比固定為50%,但在本文中也很容易改變。除此之外,波形發生器還可以通過頻率控制產生正弦波。請注意,此波形發生器不是工業級的,不能用于嚴格的測試。但除此之外,它將為所有業余愛好項目派上用場,您無需等待數周的運輸。還有什么比使用我們自己制作的設備更有趣。
所需的材料
● Arduino Nano開發板
● 字符型圖形點陣液晶1602
● 旋轉編碼器
● 電阻(5.6K,10K)
● 電容(0.1uF)
● 焊接套件
電路原理圖
該Arduino函數發生器的完整電路圖如下所示。正如您所看到的,我們使用Arduino Nano開發板作為項目的主控,1602 LCD顯示當前正在生成的頻率值。我們還有一個旋轉編碼器,可以幫助我們設置頻率。
整個設備由Arduino自身的USB端口供電。我之前使用過的連接由于某些原因并沒有達到要求,我們將在本文后面討論這些原因。因此,我不得不通過改變引腳順序來接線。無論如何,你不會有任何問題,因為它全部整理好,只需仔細按照電路知道哪個引腳連接到什么。您還可以參考下表來驗證您的連接。
電路非常簡單;我們在引腳D9上產生方波,可以這樣使用,該方波的頻率由旋轉編碼器控制。然后為了獲得正弦波,我們在引腳D5上產生SPWM信號,其頻率必須與PWM頻率相關,因此我們將這個PWM信號提供給引腳D2作為中斷,然后使用ISR來控制正弦波的頻率。
您可以在面包板上構建電路,也可以制作一個PCB。但我決定將它焊接在Perf板上以快速完成工作并使其長期可靠使用。所有連接完成后,我的電路板看起來像這樣。
如果您想了解更多關于如何使用Arduino生成PWM和正弦波的信息,請閱讀以下段落,或者您可以直接向下滾動到編程Arduino部分。
產生變頻方波
使用Arduino的人可能很熟悉Arduino只需使用模擬寫入函數即可生成PWM信號。但是這個函數僅限于控制PWM信號的占空比而不是信號的頻率。但是對于波形發生器,我們需要一個可以控制頻率的PWM信號。這可以通過直接控制Arduino的定時器并根據它切換GPIO引腳來完成。但是有一些預先構建的庫可以完全相同并且可以這樣使用。我們使用的庫是Arduino PWM頻率庫。我們將在代碼部分討論有關此庫的更多信息。
這個庫也有一些缺點,因為庫改變了Arduino中默認的Timer 1和Timer 2設置。因此,您將無法在Arduino上再使用伺服庫或任何其他與計時器相關的庫。引腳9、10、11和13上的模擬寫入函數也使用定時器1和定時器2,因此您將無法在這些引腳上產生SPWM。
這個庫的優點是它不會干擾Arduino的定時器0,其比定時器1和定時器2更重要。因此你可以自由地使用延遲函數和millis()函數而沒有任何問題。引腳5和6也由定時器0控制,因此我們在這些引腳上使用模擬寫或伺服控制操作時不會遇到問題。最初花了一些時間才弄清楚這一點,這就是為什么接線搞砸了。
使用Arduino生成正弦波
我們知道微控制器是數字設備,它們不能僅僅通過編碼產生正弦波。但是,在從微控制器獲得正弦波的兩種流行方法中,一種是使用DAC,另一種是通過創建SPWM。不幸的是,Arduino開發板(除了Due)沒有內置DAC來產生正弦波,但你總是可以使用簡單的R2R方法構建自己的DAC,然后用它來產生正常的正弦波。但是為了減少硬件工作,我決定使用后面的方法,創建SPWM信號然后將其轉換為正弦波。
什么是SPWM信號?
術語SPWM代表正弦脈沖寬度調制。該信號與PWM非常相似,但對于SPWM信號,以這樣的方式控制占空比,以獲得與正弦波相似的平均電壓。例如,在100%占空比時,平均輸出電壓為5V,在25%時我們將為1.25V,從而控制占空比,我們可以獲得預定義的可變平均電壓,這只是一個正弦波。這種技術通常用于逆變器。
在上圖中,藍色信號是SPWM信號。請注意,波形的占空比在0%到100%之間變化,然后再回到0%。該曲線圖繪制為-1.0至+ 1.0V,但在我們的情況下,由于我們使用的是Arduino,因此刻度將為0V至5V。我們將在下面的編程部分學習如何使用Arduino生成SPWM。
將SPWM轉換為正弦波
將SPWM單個轉換為正弦波需要H橋電路,該電路由最少4個電源開關組成。我們不會深入研究它,因為我們不在這里使用它。這些H橋電路通常用于逆變器。它利用兩個SPWM信號,其中一個信號與另一個相移,并且兩個信號都被施加到H橋中的電源開關,以使對角線相對的開關同時打開和關閉。通過這種方式,我們可以獲得看起來類似于正弦波的波形,但實際上不會更接近上圖中顯示的任何波形(綠波)。為了獲得純波形輸出,我們必須使用像低通濾波器這樣的濾波器,它包括一個電感和電容。
但是在電路中,我們不會使用正弦波來為任何東西供電。我只是想從生成的SPWM信號創建該波形,所以我選擇了一個簡單的RC-Filter。您也可以嘗試使用LC濾波器以獲得更好的結果,但為了簡單起見,我選擇了RC。我的電阻值為620歐姆,電容為10uF。上圖顯示了引腳5的SPWM信號(黃色)和通過RC濾波器后獲得的正弦波(藍色)。
添加Arduino PWM頻率庫
● Arduino PWM頻率庫
在撰寫本文時,Arduino PWM頻率庫V_05是最新版本,它將以ZIP文件形式供下載。 解壓ZIP文件,然后您將得到一個名為PWM的文件夾。 然后導航到Arduino IDE的Libraries文件夾,對于Windows用戶,它將位于路徑C:\Users\User\Documents\Arduino\libraries中。 將PWM文件夾粘貼到libraries文件夾中。 有時你可能已經有一個PWM文件夾,這時,請確保用這個新文件夾替換舊文件夾。
編輯:hfy
-
開發板
+關注
關注
25文章
5080瀏覽量
97675 -
波形發生器
+關注
關注
3文章
293瀏覽量
31397 -
生成器
+關注
關注
7文章
317瀏覽量
21050 -
Arduino
+關注
關注
188文章
6471瀏覽量
187306
發布評論請先 登錄
相關推薦
評論