怎樣用樹莓派控制直流電機的方向和速度

2020-12-17 電子發燒友

步驟1:DC的控制方向通過RPi電機

使用RPi控制直流電機

我們的下一個任務是使用樹莓派上的python腳本和GPIO頭控制直流電動機,這將在我們的腦海中產生一幅「機器人如何工作」的圖景。您可以根據外面的天氣來控制房間的風扇(因為您知道rpi會使用傳感器)。完成所有這些操作將使您了解機器人技術的基本規則。

我們將控制一個直流電動機,該電動機至少需要400mA的電流才能正常工作,但我們的RPi只能提供接近20mA的電流。這意味著我們必須在外部連接直流電源。這不成問題!我們在市場上有6V和9V的小型電池。

警告:請勿將電機直接連接到Raspberry Pi,否則會損壞Raspberry Pi。

顯然,我們將需要一個電動機控制器IC來控制電動機的功能(順時針或逆時針旋轉)。最好從L293D電機控制器IC開始。

要求:

·預先裝有Raspbian的SD卡的Raspberry Pi

·麵包板

·一個L293D電機驅動器集成電路

·跳線(公對公,母對公)

·一臺額定電壓為6v的直流電動機

·一塊6V或9V電池。

L293D

這是一個電機驅動器IC,我們可以一次控制2個電機。其引腳配置如下所示。它是一個16針IC,在一側包括一個Vcc(上電),一個GND針,一個Enable針(用於打開和關閉電動機),兩個輸入對應兩個輸出。

連接:

·首先將L293D的Vcc引腳連接到5V(也可以使用3.3V)

·現在連接地線

·使用GPIO-2、3、4來控制IC。(分別將GPIO-02和GPIO-03分別作為輸入1和2)

·將GPIO-04連接到IC的相應使能引腳。

·現在終於將輸出1和2連接到電動機的兩個連接上,如圖所示。

Python代碼:-

導入RPi.GPIO作為GPIO

從導入睡眠時間開始

GPIO.setmode(GPIO.BCM)

Motor1A = 02

Motor1B = 03

Motor1E = 04

的 GPIO.setup(Motor1A,GPIO.OUT)

GPIO.setup(Motor1B,GPIO.OUT)

GPIO.setup(Motor1E,GPIO.OUT)

列印「電動機要啟動「

GPIO.output(Motor1A,GPIO.HIGH)#以順時針方向運行電動機

GPIO.output (Motor1B,GPIO.LOW)#將其設置為高電平以使電動機沿逆時針方向旋轉

GPIO.output(Motor1E,GPIO.HIGH)#啟動時應始終為高電機

睡眠(5)

列印「停止電機」

GPIO.output(Motor1E,GPIO.LOW)#停止電動機後

GPIO.cleanup()

上面的代碼,您的電動機將開始沿順時針方向旋轉5秒鐘。通過修改以上代碼,您可以將其反轉。現在我們可以用兩個或四個電動機來製造汽車。

使用RPi控制直流電動機的速度

您知道在某些地方我們需要也可以控制電動機的速度。通過以上主題,您了解了電動機的ON-OFF控制,但這還不夠嗎?現在您應該在腦海中思考一個問題,即我們如何從RPi的GPIO引腳產生模擬電壓。沒問題,因為我們可以通過PWM(脈衝寬度調製)從中產生電壓脈衝並控制GPIO引腳的輸出電壓。

脈衝寬度調製

這是一個非常簡單的過程,我們可以控制電源的電壓頻率。我們知道,PWM模塊可用於RPi中的GPIO。

時間段= 1/頻率

因此,如果我選擇100Hz的頻率,則意味著時間段為10m sec。 (電壓被觸發為「高」持續10m秒)。我們的電池為電動機提供9V的電壓,為了降低速度,我們必須降低此電壓。因此,如果要將速度降低一半,而不必將佔空比(電壓為高電平的時間段的百分比)更改為50。

由於供應給電動機的電壓由電機驅動器IC-L293N的使能引腳,因此我們僅需將PWM應用於使能引腳即可改變速度。貝婁是理解PWM的python代碼,需要上一主題中的上述連接(通過RPi控制直流電動機)。

》》》導入RPi.GPIO為GPIO#導入GPIO庫。

》》從時間導入睡眠開始

》》》 GPIO.setmode(GPIO.BCM)

》》》 Motor1A = 02#將GPIO-02設置為控制器IC的輸入1

》》》 Motor1B = 03#設置GPIO- 03作為控制器IC的輸入2

》》》 Motor1E = 04#將GPIO-04設置為控制器IC的使能引腳1

》》》 GPIO.setup(Motor1A,GPIO.OUT)

》》》 GPIO.setup(Motor1B,GPIO.OUT)

》》》GPIO.setup(Motor1E,GPIO.OUT)

》》》pwm=GPIO.PWM(04,100)#配置啟用引腳表示用於PWM的GPIO-04

》》》 pwm.start(50)#以50%的佔空比啟動它

》》》列印「前進」

》》》 GPIO.output(Motor1A,GPIO.HIGH)

》》》 GPIO.output(Motor1B,GPIO.LOW)

》》》 GPIO.output(Motor1E,GPIO.HIGH)

》》》 sleep(2)

##這將使電動機以50%的速度向前運行2秒。

》》》 pwm.ChangeDutyCycle(80)#將佔空比增加到80

》》》列印「後退」

》》》 GPIO.output(Motor1A,GPIO.HIGH)

》》》 GPIO.output(Motor1B,GPIO.LOW)

》》》 GPIO.output(Motor1E,GPIO.HIGH)

》》》睡眠(2)

##通過提供80%的電池電壓,電動機將以80%的速度反向運行2秒

》》》列印「立即停止」

》》》 GPIO.output(Motor1E,GPIO.LOW)

》 》》 pwm.stop()#從GPIO輸出中停止PWM是必要的

》》》 GPIO.cleanup()

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 如何使用樹莓派控制直流電機
    通過使用Raspberry Pi成功控制直流電機,我們可以將它用於各種其他應用,如機器人,遙控(RC)汽車,風扇和其他相關的電機這個項目的目的是將電機安全地連接到Raspberry Pi並控制它,即使其向前或向後旋轉。 注意 :我將在這個項目中使用電機驅動器,最多可以處理兩個電機。因此,可以單獨控制兩臺電機。
  • 怎樣用樹莓派和L298N電機驅動器模塊控制步進電機
    概述 如果您還記得以前的Raspberry Pi教程,我們已經看到如何使用RASPBERRY PI控制直流電機以及如何使用RASPBERRY PI控制伺服電機。 步進電機可以分為伺服電機和直流電機,因為您可以控制角度位置軸以及沿任一方向自由旋轉軸。
  • 直流電機的PWM速度控制程序
    * =======直流電機的PWM速度控制程序======== */ /*晶振採用11.0592M,產生的PWM的頻率約為91Hz */ #include #include #define uchar unsigned char #define uint unsigned int
  • 有刷直流電機的工作原理及控制電路
    微型有刷直流電機具有價格便宜、容易操控的特點應用在各個領域,如電動玩具、美容產品、個人護理產品、醫療器械等等大多用到的都是微型有刷直流電機。有刷直流電機的工作原理是怎樣的呢?下面天孚微電機就來帶大家來了解:微型直流電機(有刷)的工作原理。
  • 如何控制直流電機及調速?
    控制直流電機,需要直流電機驅動,無非是控制電機正反轉和轉速。若是新手,不知道怎麼設計直流電機驅動電路,可以直接購買電機驅動模塊,市面上這種功能模塊非常多,比如L298N電機驅動模塊。▲L298N電機驅動模塊L298N支持控制雙路電機,具有A、B兩個通道。通過給IN1、IN2高低電平控制電機的狀態,其中ENA、ENB為使能端,低電平無效,高電平使能。
  • 無刷直流電機詳解
    直流電機電流換向原理我們知道有刷直流電機的電流換向是需要通過換向器和電刷來完成的,但是無刷直流電機是沒有換向器和電刷的,那麼它是如何進行換向的呢?這是因為有專門電路來控制直流電機來控制各線圈電流的流動方向,這個換向電路的主要部件是場效應電晶體,可以理解為開關,這個開關的開合是由單片機來控制的,所以無刷直流電機既能用直流電,又不用電刷,這一過程稱為電子換向。
  • 變頻器對交流感應電機的速度和頻率控制
    變頻驅動是一種用於控制交流感應電機的速度和頻率的技術,因此它也被稱為可調速驅動器或變速驅動器。在這種現象中,電機的電壓和頻率使用稱為PWM(脈衝的技術)來控制。寬度調製)。有許多其他技術用於降低電機電流,如軟啟動器。但變頻驅動器的好處不僅僅是軟啟動器。
  • 直流無刷電機的工作原理
    交流電機沒有碳刷及整流子,免維護、堅固、應用廣,但特性上若要達到相當於直流電機的性能須用複雜控制技術才能達到。現今半導體發展迅速功率組件切換頻率加快許多,提升驅動電機的性能。微處理機速度亦越來越快,可實現將交流電機控制置於一旋轉的兩軸直交坐標系統中,適當控制交流電機在兩軸電流分量,達到類似直流電機控制並有與直流電機相當的性能。
  • 任務發布--直流減速電機控制
  • 基於VHDL的直流電機控制功能模塊設計
    隨著社會的發展,直流電機的應用越來越普遍,對直流電機控制方式的要求也不斷提高。IP核不僅可以用在電機控制中,還可以用來控制其它一些小型家電,全彩LED等,具有廣闊的應用前景。1 直流電機總體硬體設計如圖1所示,系統整體由FPGA晶片控制,其控制核心為ALTERA公司的NiosII軟核CPU,本文將著重介紹圖中兩個控制功能模塊PWM模塊和測速模塊的設計與生成。
  • 淺談直流電機參數的測試和估計
    它是能實現直流電能和機械能互相轉換的電機。當它作電動機運行時是直流電動機,將電能轉換為機械能;作發電機運行時是直流發電機,將機械能轉換為電能。     組成結構     直流電機的結構應由定子和轉子兩大部分組成。直流電機運行時靜止不動的部分稱為定子,定子的主要作用是產生磁場,由機座、主磁極、換向極、端蓋、軸承和電刷裝置等組成。
  • 直流電機的IR2110驅動控制設計及DSP實現
    隨著電力電子技術以及新型永磁材料的發展,直流電機以其良好的線性特性以及優異的控制性能等特點,在多數變速運動控制和閉環伺服控制系統(如機器人、精密工具機、汽車電子、家用電器以及工業過程等)領域中得到了廣泛的應用。
  • 基於ATmega8的直流電機PWM調速控制系統設計與實現
    常規電機調速控制方法中,電機工作不穩定,損耗較大,尤其在低電壓輕負荷時情況更為嚴重,且工作頻率受電源頻率的限制,難以滿足高精度的調速要求,不利於廣泛推廣[1]。如何才能使電路具有成本低、控制精度高、調試修改參數方便,且能方便和靈活地適用於大功率、可靠性高的直流電機控制系統中,是我們研究的目的。
  • 怎樣控制步進電機
    為什麼要使用步進電機? 步進電機是帶有許多內齒的無刷直流電機,通過周圍的銅線圈磁性鎖定到位。與無刷電機不同,為步進電源供電電機不會轉動。相反,它鎖定到給定輸入指定的位置,順時針或逆時針轉一小步。 雖然這使得步進電機的驅動更加複雜,但與無刷直流電機相比具有一個主要優勢:它們的角位置可以非常精確地指定。
  • 「電機說01」從直流電機說起:機構、原理和特性
    主要包括日常所見電機的種類、原理和特點。本文是第一篇從四驅車裡的直流電機說起。對於後面所說的感應電機、永磁同步電機、直流無刷電機電樞都是指定子。成也蕭何禍也蕭何直流電機一開始能夠廣為流行時因為控制簡單,簡單到通電就能轉,不需要專門的啟動電路,不需要龐大的驅動電路,不需要複雜的控制算法,當然需要調速或者伺服功能的除外。
  • ...和三相電機都是什麼,工作原理分析,直流電機和交流電機的區別是...
    什麼是直流電機?  直流電機(direct current machine)是指能將直流電能轉換成機械能(直流電動機)或將機械能轉換成直流電能(直流發電機)的旋轉電機。它是能實現直流電能和機械能互相轉換的電機。當它作電動機運行時是直流電動機,將電能轉換為機械能;作發電機運行時是直流發電機,將機械能轉換為電能。直流電機的結構應由定子和轉子兩大部分組成。
  • 步進電機和直流伺服電機的十大優缺點
    步進電機是一種特殊的無刷直流電機,電磁線圈布置在電機的外部,電機的中心有一個鐵或磁芯附在軸上。通過對線圈電壓進行排序,可以以相對較低的成本實現精確的旋轉控制。控制通常是開環的,所以系統不知道電機是否失速或與控制器失去同步。
  • 直流電機知識:永磁勵磁和直流電機等效替代電路圖
    其中釹鐵硼磁體和釤鈷磁體是來源於稀土元素的強磁體,對溫度比較敏感,需要控制溫升。而且為了避免腐蝕的損害,使用時需要在永磁材料表面做保護處理。計算氣隙永磁勵磁,也是要用一個極寬內環繞的磁迴路。繼續保持殼體和電樞鐵區域的完全磁導(μfe→∞)以及忽略漏磁。
  • 直流電機:永磁直流電機各種電感介紹
    永磁直流電機在控制中,經常要用到各種坐標變換,同時也會碰到到種電感,如:相電感、線電感、直軸電感、交軸電感、相間互感等,特別是電感和坐標變換結合後,就有不少人容易混淆迷惑。下面我們用圖文及公式方式來理解直流電機電感其中的關係。
  • 直流電機驅動電路設計
    直流電機(direct current machine)是指能將直流電能轉換成機械能(直流電動機)或將機械能轉換成直流電能(直流發電機)的旋轉電機。它是能實現直流電能和機械能互相轉換的電機。