步驟1:脈寬調(diào)制(PWM) )

對(duì)于那些不熟悉PWM的人來(lái)說(shuō),它并不像聽(tīng)起來(lái)那樣可怕。對(duì)于我們簡(jiǎn)單的電機(jī)控制應(yīng)用程序而言,它真正的意思是生成一定頻率的方波,然后更改占空比。占空比定義為輸出與波形周期相比為邏輯高電平的時(shí)間比率。您可以在上圖中清楚地看到,頂部波形為10%占空比,中間波形為50%占空比,底部波形為90%占空比。每個(gè)波形上覆蓋的虛線表示電機(jī)看到的等效直流電壓。鑒于Arduino具有內(nèi)置的PWM功能,生成這種類型的DC電機(jī)控制確實(shí)非常簡(jiǎn)單。使用PWM的另一優(yōu)點(diǎn)是,它有助于防止電動(dòng)機(jī)在使用直直流電時(shí)可能發(fā)生的突然啟動(dòng)。 PWM的一個(gè)缺點(diǎn)是有時(shí)在PWM的頻率下會(huì)聽(tīng)到來(lái)自電動(dòng)機(jī)的聲音。
步驟2:硬件



第一張圖片顯示了開(kāi)關(guān)和LM298電機(jī)驅(qū)動(dòng)器模塊的Arduino連接。 Arduino內(nèi)部有弱上拉電阻,因此開(kāi)關(guān)不需要上拉電阻。方向開(kāi)關(guān)是一個(gè)簡(jiǎn)單的SPST(單刀單擲)開(kāi)關(guān)。油門(mén)和制動(dòng)開(kāi)關(guān)顯示為常開(kāi),瞬時(shí)接觸按鈕。
第二張圖顯示了藍(lán)牙模塊和LM298電機(jī)驅(qū)動(dòng)器模塊的Arduino連接。藍(lán)牙TXD輸出直接連接到Arduino RX串行輸入。
第三張圖片是L298N雙H橋模塊。 LM298模塊具有一個(gè)板載5伏調(diào)節(jié)器,可通過(guò)跳線將其啟用。 Arduino和藍(lán)牙需要+5伏特,但我們需要+12伏特來(lái)驅(qū)動(dòng)電機(jī)。在這種情況下,我們將+12伏特施加到L298N的“ + 12V電源”輸入,我們將保留“ 5V使能”跳線。這允許5伏調(diào)節(jié)器輸出到模塊上的“ +5功率”連接。將其連接到Arduino和藍(lán)牙。別忘了將+12輸入和+5輸出的接地線連接到模塊“電源GND”。
我們希望電機(jī)的輸出電壓根據(jù)產(chǎn)生的PWM變化。 Arduino,而不僅僅是完全打開(kāi)或關(guān)閉。為此,我們從“ ENA”和“ ENB”上移除跳線,并將我們的Arduino PWM輸出連接至模塊上的“ ENA”。請(qǐng)記住,實(shí)際的使能引腳是最靠近板邊緣的引腳(“輸入”引腳旁邊)。每個(gè)使能的背面引腳為+5伏,因此我們要確保不連接該引腳。
模塊上的“ IN1”和“ IN2”引腳分別連接到各自的Arduino引腳。這些引腳控制電機(jī)方向,是的,有充分的理由讓Arduino控制它們,而不是簡(jiǎn)單地將開(kāi)關(guān)連接到模塊。
第3步:藍(lán)牙模塊
此處顯示的圖片是藍(lán)牙的典型圖片可用模塊。在尋找要購(gòu)買(mǎi)的產(chǎn)品時(shí),您可以搜索“ HC-05”和“ HC-06”。兩者之間的差異在于固件,通常是板上的引腳數(shù)。上圖是HC-06模塊的圖片,帶有簡(jiǎn)化的固件,僅允許進(jìn)行非?;镜呐渲?。它也被設(shè)置為“從屬”藍(lán)牙設(shè)備。簡(jiǎn)單來(lái)說(shuō),這意味著它只能響應(yīng)來(lái)自“主”設(shè)備的命令,而不能自行發(fā)出命令。 HC-05模塊具有更多配置可能性,可以設(shè)置為“主”設(shè)備或“從”設(shè)備。 HC-05通常具有六個(gè)插針,而不是上面為HC-06所示的四個(gè)插針。 State引腳并不是很重要,但是如果要進(jìn)行任何配置,則需要Key引腳(有時(shí)會(huì)使用“ EN”之類的其他名稱)。通常,如果您可以使用默認(rèn)的9600波特率,并且不需要為模塊指定具體名稱,則無(wú)需對(duì)模塊進(jìn)行任何配置。我在幾個(gè)項(xiàng)目中都使用了這些項(xiàng)目,因此我要相應(yīng)地命名它們。
配置藍(lán)牙模塊需要您購(gòu)買(mǎi)或構(gòu)建RS-232串行端口或USB端口的接口。我不會(huì)在這篇文章中介紹如何構(gòu)建一個(gè),但是您應(yīng)該可以在網(wǎng)上找到信息?;蛘咧皇琴?gòu)買(mǎi)一個(gè)接口。配置命令使用的AT命令有點(diǎn)像過(guò)去電話調(diào)制解調(diào)器中使用的命令。我在此處隨附了一個(gè)用戶手冊(cè),其中包含每種模塊類型的AT命令。要注意的一件事是HC-06需要大寫(xiě)命令,并且命令字符串必須在1秒內(nèi)完成。這意味著某些較長(zhǎng)的字符串(例如更改波特率)將需要剪切并粘貼到終端程序中,或者您需要設(shè)置要發(fā)送的文本文件。僅當(dāng)您嘗試發(fā)送配置命令時(shí),才需要大寫(xiě)。常規(guī)通信模式可以接受任何8位數(shù)據(jù)。
步驟4:軟件
對(duì)于手動(dòng)版本和藍(lán)牙而言,該軟件都非常簡(jiǎn)單版。要選擇藍(lán)牙版本,只需取消對(duì)“ #define BT_Ctrl”語(yǔ)句的注釋即可。
當(dāng)我編寫(xiě)PIC代碼時(shí),我嘗試使用PWM頻率并最終穩(wěn)定在500 Hz。我發(fā)現(xiàn)如果頻率太高,則LM298N模塊無(wú)法對(duì)脈沖做出足夠迅速的反應(yīng)。這意味著電壓輸出不是線性的,可能會(huì)發(fā)生較大的變化。 Arduino內(nèi)置了PWM命令,但它們僅允許您更改占空比而不是頻率。幸運(yùn)的是,該頻率約為490 Hz,因此足夠接近我在PIC上使用的500 Hz。
火車油門(mén)的“特征”之一是具有加速和制動(dòng)的動(dòng)量感模擬真實(shí)火車的工作方式。為此,在軟件的手動(dòng)版本的循環(huán)中插入一個(gè)簡(jiǎn)單的時(shí)間延遲。使用所示的值,從0到12伏或從12伏回到零大約需要13秒鐘??梢院苋菀椎貙⒀舆t更改為更長(zhǎng)或更短的時(shí)間。動(dòng)量無(wú)效的唯一情況是更改方向開(kāi)關(guān)。為了保護(hù)起見(jiàn),只要更改此開(kāi)關(guān),PWM占空比就會(huì)立即設(shè)置為0%。實(shí)際上,這使得“方向”開(kāi)關(guān)也可以用作緊急制動(dòng)器。
為確保立即處理“方向”開(kāi)關(guān),我將其代碼放入了中斷處理程序中。這也使我們可以使用“更改時(shí)中斷”功能,因此更改從低到高還是從高到低都沒(méi)有關(guān)系。
該軟件的藍(lán)牙版本使用單字母命令來(lái)啟動(dòng)前進(jìn),倒車,剎車和油門(mén)功能。實(shí)際上,收到的命令將替換手動(dòng)開(kāi)關(guān),但會(huì)導(dǎo)致相同的響應(yīng)。我用于藍(lán)牙控制的應(yīng)用程序被Next Prototypes稱為“藍(lán)牙串行控制器”。它使您可以配置虛擬鍵盤(pán)并為每個(gè)按鍵設(shè)置自己的命令字符串和名稱。它還允許您設(shè)置重復(fù)頻率,因此我將“制動(dòng)”和“油門(mén)”按鈕設(shè)置為50ms,以提供約14秒的動(dòng)量。我禁用了“前進(jìn)”和“后退”按鈕的重復(fù)功能。
-
控制器
+關(guān)注
關(guān)注
114文章
17816瀏覽量
194092 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
197083
發(fā)布評(píng)論請(qǐng)先 登錄
深度剖析LTC4263:IEEE 802.3af合規(guī)PSE控制器的卓越之選
MAX15569:2 - 相/1 - 相QuickTune - PWM控制器的深度解析
深入剖析 LTC3892/LTC3892 - 1/LTC3892 - 2 控制器:高性能電源解決方案
詳解LTC3882-1/LTC3882-2:集成數(shù)字管理的雙路降壓控制器
深入解析LTC3850 - 2:高性能雙同步降壓開(kāi)關(guān)控制器
深入剖析LM9061與LM9061 - Q1高側(cè)保護(hù)控制器
深入剖析 LTC1647 - 1/2/3 雙熱插拔控制器:功能、應(yīng)用與設(shè)計(jì)要點(diǎn)
LT4256-1正高壓熱插拔控制器:功能與應(yīng)用全解析
深入剖析 LTC3209-1/LTC3209-2:高效多顯示 LED 控制器的卓越之選
深入剖析RA2T1微控制器:特性、電氣參數(shù)與設(shè)計(jì)要點(diǎn)
DLPC120-Q1汽車DMD控制器:技術(shù)解析與應(yīng)用指南
瑞薩電子推出RA2T1系列微控制器
車載整機(jī)控制器 工程機(jī)械主機(jī)控制器#碩博電子#國(guó)產(chǎn)控制器
《ESP32S3 Arduino開(kāi)發(fā)指南》第二章 Arduino基礎(chǔ)知識(shí)
Arduino 2合1模型火車控制器的制作教程
評(píng)論