步驟1:材料和工具
材料
Raspberry Pi 3(RPi)
L293D控制IC
面包板
跳線電線,公對公(M/M)和母對公(F/M)
直流電動(dòng)機(jī)
9v電池
**在此項(xiàng)目中,必須訪問Raspberry Pi桌面??梢酝ㄟ^將監(jiān)視器,鍵盤和鼠標(biāo)插入RPi或使用SSH連接來完成。**
該項(xiàng)目無需任何工具,因?yàn)檫@些連接都不是永久性的,無需使用跳線和面包板。如果要制作永久的,更耐用的版本,只需用烙鐵和一些導(dǎo)線進(jìn)行相同的連接即可。
步驟2:背景信息。
**這是所有背景信息。如果您不關(guān)心如何完成此操作,而只是想在不學(xué)習(xí)的情況下進(jìn)行操作,請?zhí)恋?步。**
在此項(xiàng)目中,我們使用的是python腳本Raspberry Pi可將GPIO輸出設(shè)置為L293D電機(jī)控制器IC,并以任意速度在任一方向上運(yùn)行DC電機(jī)。
首先, Raspberry Pi是具有40個(gè)GPIO引腳的開源信用卡大小的計(jì)算機(jī)。 GPIO代表“通用輸入/輸出”,這意味著這些引腳可以發(fā)送電信號來驅(qū)動(dòng)硬件或接收它們并讀取傳感器數(shù)據(jù)。我們將它們用作輸出,以將信號發(fā)送到L293D IC芯片,該芯片只是用于控制直流電動(dòng)機(jī)的芯片。沒什么特別的。
Python是一種計(jì)算機(jī)編程語言,可與Javascript或C ++相提并論。我們將使用非常簡單的python命令,不需要任何計(jì)算機(jī)編程知識(shí)。
控制電動(dòng)機(jī)速度的方法是使用稱為PWM的python模塊。代表脈沖寬度調(diào)制。 PWM的意思是通過在高電平和低電平之間切換設(shè)定的時(shí)間量來控制電壓接通的時(shí)間量。電壓高的時(shí)間稱為“占空比”或“占空比”,無論該百分比是電動(dòng)機(jī)運(yùn)行的功率百分比。
要查看PWM作為輸出的外觀,請參考上圖。
L293D電機(jī)IC使用兩個(gè)引腳(稱為輸入)感測所需的輸出方向,以及另一個(gè)引腳(使能)感測開/關(guān)。因此,在我們的代碼中,在使能引腳為ON的情況下,如果我們希望電動(dòng)機(jī)正轉(zhuǎn),則將輸入1設(shè)置為“ True”或“ HIGH”,將輸入2設(shè)置為“ False”或“ LOW”。如果希望它向后旋轉(zhuǎn),我們將輸入1設(shè)置為“ False”或“ LOW”,將輸入2設(shè)置為“ True”或“ HIGH”。如果兩個(gè)輸入均為True或均為False,則電動(dòng)機(jī)將不會(huì)運(yùn)行。
這就是我們控制方向的方式,但是速度呢?我們說的是PWM對嗎?因此,我們將僅對兩個(gè)輸入進(jìn)行脈寬調(diào)制,對嗎?我們可以,但是太復(fù)雜了。由于IC具有一個(gè)使能引腳來控制其開/關(guān)狀態(tài)的Enable引腳,因此我們可以將兩個(gè)輸入都保持為運(yùn)行狀態(tài),而僅調(diào)制Enable引腳,并且IC只會(huì)根據(jù)我們在Enable引腳中設(shè)置的占空比來輸出功率。這樣,我們可以簡化代碼,減少出錯(cuò)的地方。
因此,在Raspberry Pi上,我們將在GPIO板上使用3個(gè)GPIO輸出引腳,一個(gè)3.3V電源和一個(gè)一根接地針。輸出引腳中的2個(gè)用于IC上的輸入,一個(gè)用于使能。
現(xiàn)在我們知道會(huì)發(fā)生什么,現(xiàn)在該開始進(jìn)行接線了。
步驟3:硬件設(shè)置
上面的圖片可能看起來像是混亂的電線,但不要擔(dān)心。
首先要做的是將L293D芯片放在試驗(yàn)板上。面包板的中間應(yīng)有一個(gè)縫隙,如一個(gè)縫隙,并且IC芯片應(yīng)將其一半左右的引腳很好地跨在上面,因此它與板平行。
接下來,這很重要將電線插入正確的面包板插槽,因此我建議對電線進(jìn)行顏色編碼。我將紅色用于正極電源連接,將黑色用于負(fù)極電源連接(接地),將藍(lán)色用于RPi的輸入,將橙色用于電動(dòng)機(jī)的輸出。
您可能會(huì)注意到有兩套電源線。這是因?yàn)橹绷麟妱?dòng)機(jī)應(yīng)至少在9V和400mA的電流下運(yùn)行,而電動(dòng)機(jī)控制IC的電壓應(yīng)在5V或3.3V且小于20mA。因此,在這種設(shè)置中,IC芯片需要3.3V的電源,并通過接地(負(fù)電源插頭)連接到RPI。然后它還具有9V的電源和來自電池的接地,然后通過芯片將其路由到電動(dòng)機(jī)。 重要提示:請勿嘗試從RPi汲取9V和400mA電流或通過IC芯片運(yùn)行9V。這可能會(huì)損壞RPi和/或L293D。為確保將電壓路由到正確的引腳,請使用上圖。
要知道IC芯片的哪一端,請?jiān)谂c上圖相對應(yīng)的一端尋找一個(gè)小半圓缺口。
現(xiàn)在,您擁有L293D IC在面包板上,首先我們將M/F跳線連接到RPi。因此,在面包板上,將跳線的公端放入旁邊的插槽中:Vss,Enable 1,Input 1,Input 2和左側(cè)的GND引腳。應(yīng)該有5根電線準(zhǔn)備連接到RPi。有關(guān)引腳號,請參見上圖?,F(xiàn)在,將電線從Vss(我希望您將其變成紅色)連接到Pi或1號針上的5V電源。接下來,將GND跳線(再次希望是黑色的)連接到GND引腳或引腳6。之后,將輸入1跳線連接到GPIO2或引腳#3。然后將跳線從輸入2連接到GPIO3或引腳5。最后,將Enable 1跳線連接到GPIO4或引腳7。到了,再也沒有M/F跳線了!到一半了!
所以,現(xiàn)在抓住M/M跳線。其中之一應(yīng)從IC的Vs引腳到9V的正端。有很多方法可以將其保留在電池上,但是只要金屬兩端牢固接觸,膠帶就可以使用。用黑色M/M跳線將電池的負(fù)極端連接到IC的另一個(gè)GND引腳。最后,只需將IC上的兩個(gè)輸出引腳連接到電動(dòng)機(jī)的兩端即可!而已!現(xiàn)在,一切都按照所需的方式進(jìn)行了布線,不再需要任何硬件工作。上軟件。
步驟4:軟件設(shè)置
首先,我們需要在Pi上打開一個(gè)程序來編寫代碼。我們將使用IDLE 2,因此請轉(zhuǎn)到桌面的左上角,依次單擊“菜單”,“編程”和“ Python 2(IDLE)”。您應(yīng)該看到帶有未命名文檔的空白文本編輯器。
我們需要做的第一件事是導(dǎo)入GPIO模塊。因此,在第一行中,準(zhǔn)確鍵入對CaSe敏感的
import RPi.GPIO as GPIO
這將導(dǎo)入GPIO模塊
下一步,我們需要一個(gè)名為“ sleep”的命令,因此編寫
from time import sleep
下一步,我們需要命名所有引腳,因此通過寫入設(shè)置命名模式
GPIO.setmode(GPIO.BOARD)
,這會(huì)將名稱設(shè)置為電路板模式,從而只需根據(jù)上圖中間的數(shù)字命名引腳。
現(xiàn)在我們需要將引腳設(shè)置為輸出,所以現(xiàn)在寫
GPIO.setup(03, GPIO.OUT) GPIO.setup(05, GPIO.OUT) GPIO.setup(07, GPIO.OUT)
現(xiàn)在設(shè)置pwm命令類型
pwm=GPIO.PWM(07, 100)
下一步以0占空比啟動(dòng)脈沖寬度調(diào)制,因此它尚未運(yùn)行
pwm.start(0)
其余代碼根據(jù)我們想要的方式而變化運(yùn)行馬達(dá)。對于第一遍,我們將在代碼中設(shè)置預(yù)定義的指令。稍后,我將說明如何編寫代碼,讓您輸入所需的方向,任務(wù)和持續(xù)時(shí)間。
因此,到目前為止,我們將編寫一個(gè)代碼,該代碼以50%的功率向前運(yùn)行2秒,然后以75%的功率向后運(yùn)行3秒。
首先,要設(shè)置向前寫入的方向
GPIO.output(03, True) GPIO.output(05, False)
現(xiàn)在,我們將PWM占空比設(shè)置為50%。寫入
pwm.ChangeDutyCycle(50)
然后打開使能引腳
GPIO.output(07, True)
然后將代碼休眠2秒鐘,以便電動(dòng)機(jī)運(yùn)行
sleep(2)
現(xiàn)在關(guān)閉使能引腳
GPIO.output(07, False)
然后反轉(zhuǎn)輸入以將其設(shè)置為反轉(zhuǎn)
GPIO.output(03, False) GPIO.output(05, True)
然后將PWM占空比更改為75%
pwm.ChangeDutyCycle(75)
,然后重新啟用啟用功能
GPIO.output(07, True)
使代碼休眠3秒鐘
sleep(3)
然后再關(guān)閉使能引腳
GPIO.output(07, False)
停止脈沖
pwm.stop()
并清除所有GPIO通道。
GPIO.cleanup()
就是這樣!現(xiàn)在,您有了一個(gè)代碼,它將使電動(dòng)機(jī)以50%的速度向前運(yùn)轉(zhuǎn)2秒,然后以75%的速度向后運(yùn)轉(zhuǎn)3秒。按F5,然后保存以測試您的代碼!
*注意:您可能會(huì)收到一條錯(cuò)誤消息,指出所選的GPIO通道已在使用中。這不會(huì)影響您的項(xiàng)目,您可以通過在代碼中寫入“ GPIO.setwarnings(False)”來使警告停止出現(xiàn)。*
-
直流電動(dòng)機(jī)
+關(guān)注
關(guān)注
7文章
196瀏覽量
23063 -
L293D
+關(guān)注
關(guān)注
4文章
50瀏覽量
20200 -
樹莓派
+關(guān)注
關(guān)注
118文章
1716瀏覽量
106122
發(fā)布評論請先 登錄
相關(guān)推薦
直流電機(jī)
電磁式直流電動(dòng)機(jī)是什么?它具有什么特點(diǎn)?
直流電動(dòng)機(jī)基本構(gòu)造是什么?分類有哪些?
無刷直流電動(dòng)機(jī)調(diào)速的實(shí)現(xiàn)
使用L293D電機(jī)驅(qū)動(dòng)器控制直流電機(jī)

直流電動(dòng)機(jī)的工作特性
直流電動(dòng)機(jī)與三相異步電動(dòng)機(jī)的區(qū)別
直流電動(dòng)機(jī)定子的作用及其重要性
直流電動(dòng)機(jī)的勵(lì)磁方式有哪些
直流電動(dòng)機(jī)的構(gòu)造與特點(diǎn)
并勵(lì)直流電動(dòng)機(jī)勵(lì)磁繞組與什么并聯(lián)
無刷直流電動(dòng)機(jī)的故障模式
直流電動(dòng)機(jī)降低轉(zhuǎn)速常用哪幾種方法
有刷直流電動(dòng)機(jī)的轉(zhuǎn)子類型有哪些
無刷直流電動(dòng)機(jī)故障模式仿真及試驗(yàn)驗(yàn)證研究

評論