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

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

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

如何使用Arduino開發(fā)板制作函數(shù)生成器(波形發(fā)生器)

454398 ? 來源:一板網(wǎng) ? 作者:風(fēng)箏 ? 2020-10-22 13:38 ? 次閱讀

對于喜歡偶爾鼓搗電子產(chǎn)品工程師來說,他們都希望能有自己的實驗室。萬用表、鉗形表、示波器、LCR表、函數(shù)發(fā)生器、雙模電源和自動變壓器都是實驗室的基本配置。雖然所有這些都可以購買,但我們也可以輕松地自行制作,如函數(shù)發(fā)生器和雙模電源。

在本篇文章中,我們將學(xué)習(xí)如何使用Arduino開發(fā)板快速輕松地制作自己的函數(shù)生成器。該函數(shù)發(fā)生器又稱波形發(fā)生器,可產(chǎn)生頻率范圍為1Hz至2MHz的方波(5V / 0V),波形頻率可通過旋鈕控制,占空比固定為50%,但在本文中也很容易改變。除此之外,波形發(fā)生器還可以通過頻率控制產(chǎn)生正弦波。請注意,此波形發(fā)生器不是工業(yè)級的,不能用于嚴(yán)格的測試。但除此之外,它將為所有業(yè)余愛好項目派上用場,您無需等待數(shù)周的運輸。還有什么比使用我們自己制作的設(shè)備更有趣。

所需的材料

● Arduino Nano開發(fā)板

● 字符型圖形點陣液晶1602

● 旋轉(zhuǎn)編碼器

電阻(5.6K,10K)

電容(0.1uF)

● 焊接套件

電路原理

該Arduino函數(shù)發(fā)生器的完整電路圖如下所示。正如您所看到的,我們使用Arduino Nano開發(fā)板作為項目的主控,1602 LCD顯示當(dāng)前正在生成的頻率值。我們還有一個旋轉(zhuǎn)編碼器,可以幫助我們設(shè)置頻率。

整個設(shè)備由Arduino自身的USB端口供電。我之前使用過的連接由于某些原因并沒有達到要求,我們將在本文后面討論這些原因。因此,我不得不通過改變引腳順序來接線。無論如何,你不會有任何問題,因為它全部整理好,只需仔細按照電路知道哪個引腳連接到什么。您還可以參考下表來驗證您的連接。

Arduino引腳 連接到
D14 連接到LCD的RS
D15 連接到LCD的RN
D4 連接到LCD的D4
D3 連接到LCD的D5
D6 連接到LCD的D6
D7 連接到LCD的D7
D10 連接到旋轉(zhuǎn)編碼器的2腳
D11 連接到旋轉(zhuǎn)編碼器的3腳
D12 連接到旋轉(zhuǎn)編碼器的4腳
D9 輸出方波
D2 連接到Arduino的D9
D5 輸出SPWM然后轉(zhuǎn)換為正弦

電路非常簡單;我們在引腳D9上產(chǎn)生方波,可以這樣使用,該方波的頻率由旋轉(zhuǎn)編碼器控制。然后為了獲得正弦波,我們在引腳D5上產(chǎn)生SPWM信號,其頻率必須與PWM頻率相關(guān),因此我們將這個PWM信號提供給引腳D2作為中斷,然后使用ISR來控制正弦波的頻率。

您可以在面包板上構(gòu)建電路,也可以制作一個PCB。但我決定將它焊接在Perf板上以快速完成工作并使其長期可靠使用。所有連接完成后,我的電路板看起來像這樣。

如果您想了解更多關(guān)于如何使用Arduino生成PWM和正弦波的信息,請閱讀以下段落,或者您可以直接向下滾動到編程Arduino部分。

產(chǎn)生變頻方波

使用Arduino的人可能很熟悉Arduino只需使用模擬寫入函數(shù)即可生成PWM信號。但是這個函數(shù)僅限于控制PWM信號的占空比而不是信號的頻率。但是對于波形發(fā)生器,我們需要一個可以控制頻率的PWM信號。這可以通過直接控制Arduino的定時器并根據(jù)它切換GPIO引腳來完成。但是有一些預(yù)先構(gòu)建的庫可以完全相同并且可以這樣使用。我們使用的庫是Arduino PWM頻率庫。我們將在代碼部分討論有關(guān)此庫的更多信息。

這個庫也有一些缺點,因為庫改變了Arduino中默認的Timer 1和Timer 2設(shè)置。因此,您將無法在Arduino上再使用伺服庫或任何其他與計時器相關(guān)的庫。引腳9、10、11和13上的模擬寫入函數(shù)也使用定時器1和定時器2,因此您將無法在這些引腳上產(chǎn)生SPWM。

這個庫的優(yōu)點是它不會干擾Arduino的定時器0,其比定時器1和定時器2更重要。因此你可以自由地使用延遲函數(shù)和millis()函數(shù)而沒有任何問題。引腳5和6也由定時器0控制,因此我們在這些引腳上使用模擬寫或伺服控制操作時不會遇到問題。最初花了一些時間才弄清楚這一點,這就是為什么接線搞砸了。

使用Arduino生成正弦波

我們知道微控制器是數(shù)字設(shè)備,它們不能僅僅通過編碼產(chǎn)生正弦波。但是,在從微控制器獲得正弦波的兩種流行方法中,一種是使用DAC,另一種是通過創(chuàng)建SPWM。不幸的是,Arduino開發(fā)板(除了Due)沒有內(nèi)置DAC來產(chǎn)生正弦波,但你總是可以使用簡單的R2R方法構(gòu)建自己的DAC,然后用它來產(chǎn)生正常的正弦波。但是為了減少硬件工作,我決定使用后面的方法,創(chuàng)建SPWM信號然后將其轉(zhuǎn)換為正弦波。

什么是SPWM信號?

術(shù)語SPWM代表正弦脈沖寬度調(diào)制。該信號與PWM非常相似,但對于SPWM信號,以這樣的方式控制占空比,以獲得與正弦波相似的平均電壓。例如,在100%占空比時,平均輸出電壓為5V,在25%時我們將為1.25V,從而控制占空比,我們可以獲得預(yù)定義的可變平均電壓,這只是一個正弦波。這種技術(shù)通常用于逆變器

在上圖中,藍色信號是SPWM信號。請注意,波形的占空比在0%到100%之間變化,然后再回到0%。該曲線圖繪制為-1.0至+ 1.0V,但在我們的情況下,由于我們使用的是Arduino,因此刻度將為0V至5V。我們將在下面的編程部分學(xué)習(xí)如何使用Arduino生成SPWM。

將SPWM轉(zhuǎn)換為正弦波

將SPWM單個轉(zhuǎn)換為正弦波需要H橋電路,該電路由最少4個電源開關(guān)組成。我們不會深入研究它,因為我們不在這里使用它。這些H橋電路通常用于逆變器。它利用兩個SPWM信號,其中一個信號與另一個相移,并且兩個信號都被施加到H橋中的電源開關(guān),以使對角線相對的開關(guān)同時打開和關(guān)閉。通過這種方式,我們可以獲得看起來類似于正弦波的波形,但實際上不會更接近上圖中顯示的任何波形(綠波)。為了獲得純波形輸出,我們必須使用像低通濾波器這樣的濾波器,它包括一個電感和電容。

但是在電路中,我們不會使用正弦波來為任何東西供電。我只是想從生成的SPWM信號創(chuàng)建該波形,所以我選擇了一個簡單的RC-Filter。您也可以嘗試使用LC濾波器以獲得更好的結(jié)果,但為了簡單起見,我選擇了RC。我的電阻值為620歐姆,電容為10uF。上圖顯示了引腳5的SPWM信號(黃色)和通過RC濾波器后獲得的正弦波(藍色)。

添加Arduino PWM頻率庫

● Arduino PWM頻率庫

在撰寫本文時,Arduino PWM頻率庫V_05是最新版本,它將以ZIP文件形式供下載。 解壓ZIP文件,然后您將得到一個名為PWM的文件夾。 然后導(dǎo)航到Arduino IDE的Libraries文件夾,對于Windows用戶,它將位于路徑C:\Users\User\Documents\Arduino\libraries中。 將PWM文件夾粘貼到libraries文件夾中。 有時你可能已經(jīng)有一個PWM文件夾,這時,請確保用這個新文件夾替換舊文件夾。
編輯:hfy

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

    關(guān)注

    25

    文章

    5081

    瀏覽量

    97702
  • 波形發(fā)生器
    +關(guān)注

    關(guān)注

    3

    文章

    293

    瀏覽量

    31397
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    317

    瀏覽量

    21052
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6472

    瀏覽量

    187331
收藏 人收藏

    評論

    相關(guān)推薦

    1653系列函數(shù)任意波形發(fā)生器

    1653系列函數(shù)任意波形發(fā)生器 XLT 簡述 1653系列經(jīng)濟型函數(shù)任意波形發(fā)生器,通過多通道、
    的頭像 發(fā)表于 10-15 17:13 ?193次閱讀

    什么是任意波形發(fā)生器

    , AWG)作為波形發(fā)生器的一種高級形式,以其高度的靈活性和精確度,為用戶提供了前所未有的波形生成能力。本文將詳細探討任意波形
    的頭像 發(fā)表于 05-30 15:53 ?1053次閱讀

    任意波形發(fā)生器波形生成方法

    任意波形發(fā)生器(Arbitrary Waveform Generator,簡稱AWG)作為電子測試領(lǐng)域的重要工具,能夠生成各種復(fù)雜波形信號,以滿足不同的測試需求。在通信、音頻處理、雷達
    的頭像 發(fā)表于 05-29 17:13 ?953次閱讀

    什么是任意波形發(fā)生器?任意波形發(fā)生器是干什么用的?

    任意波形發(fā)生器是一種高度靈活的電子測試設(shè)備,它能夠生成幾乎任何類型的電信號波形。
    的頭像 發(fā)表于 05-28 16:19 ?863次閱讀

    函數(shù)信號發(fā)生器怎么調(diào)頻率

    函數(shù)信號發(fā)生器是一種常用的電子測試設(shè)備,它能夠產(chǎn)生各種波形、頻率和幅度的信號,廣泛應(yīng)用于科研、教學(xué)、生產(chǎn)和維修等領(lǐng)域。在使用函數(shù)信號發(fā)生器
    的頭像 發(fā)表于 05-20 18:23 ?1677次閱讀

    函數(shù)波形發(fā)生器的特點和應(yīng)用場景

    函數(shù)波形發(fā)生器是一種電子測試儀器,它能夠產(chǎn)生多種標(biāo)準(zhǔn)的波形信號,如正弦波、方波、三角波和鋸齒波等。
    的頭像 發(fā)表于 05-19 17:23 ?1385次閱讀

    函數(shù)發(fā)生器、信號發(fā)生器波形發(fā)生器的區(qū)別

    在電子測試和測量領(lǐng)域,函數(shù)發(fā)生器、信號發(fā)生器波形發(fā)生器都是重要的測試儀器,它們各自具有獨特的功能和應(yīng)用場景。本文將詳細介紹這三種
    的頭像 發(fā)表于 05-15 14:49 ?1652次閱讀

    函數(shù)發(fā)生器的頻率調(diào)整和波形選擇方法

    函數(shù)發(fā)生器,作為電子測試和測量領(lǐng)域的核心工具,其重要性不言而喻。在科研、教育、工業(yè)等各個領(lǐng)域,我們都需要用到函數(shù)發(fā)生器來產(chǎn)生各種波形、頻率和
    的頭像 發(fā)表于 05-15 11:44 ?1396次閱讀

    Minitab 交互式表格生成器

    生成器
    MinitabUG
    發(fā)布于 :2024年04月03日 15:58:54

    proteus波形發(fā)生器怎么找 proteus波形發(fā)生器叫什么

    Proteus中的波形發(fā)生器以及如何使用它來生成不同類型的波形。 Proteus中的波形發(fā)生器
    的頭像 發(fā)表于 02-23 16:49 ?8626次閱讀

    函數(shù)發(fā)生器的作用,概念要點是什么

    函數(shù)生成器是Python中非常強大的特性之一。它們允許我們以一種簡潔且高效的方式生成迭代,從而幫助我們更好地處理大量數(shù)據(jù)或者在特定條件下生成
    的頭像 發(fā)表于 02-23 16:01 ?558次閱讀

    multisim中函數(shù)發(fā)生器正負極怎么接

    在Multisim中,函數(shù)發(fā)生器是一種可以生成不同類型信號的設(shè)備。它通常由一個波形發(fā)生器和一個放大器組成。
    的頭像 發(fā)表于 02-23 15:38 ?3699次閱讀

    函數(shù)發(fā)生器輸出電壓是什么電壓

    函數(shù)發(fā)生器是一種電子設(shè)備,常用于產(chǎn)生特定波形的電信號。它是電工、電子工程師以及其他相關(guān)領(lǐng)域的重要工具。函數(shù)發(fā)生器可以產(chǎn)生高頻、低頻甚至是不同
    的頭像 發(fā)表于 02-23 15:29 ?1422次閱讀

    函數(shù)發(fā)生器與示波器的調(diào)節(jié)方法一樣嗎

    函數(shù)發(fā)生器的核心部分是任意波形發(fā)生器,方波和脈沖的產(chǎn)生是在任意波形發(fā)生器的基礎(chǔ)上增加一些外圍電路
    發(fā)表于 02-08 07:30 ?740次閱讀
    <b class='flag-5'>函數(shù)</b><b class='flag-5'>發(fā)生器</b>與示波器的調(diào)節(jié)方法一樣嗎

    任意波發(fā)生器如何輸出波形、帶調(diào)制的信號?

    任意波發(fā)生器,如何輸出波形、帶調(diào)制的信號? 任意波發(fā)生器是一種用于產(chǎn)生各種波形的信號發(fā)生器。它可以生成
    的頭像 發(fā)表于 01-19 15:54 ?816次閱讀