2014年2月24日 星期一

L298N 馬達驅動板接線說明與正反轉程式測試

網頁最後修改時間:2016/05/06

欲操作直流馬達或是步進馬達,可上露天賣場選購此電路板

馬達驅動板的應用實例,可參考部落格的網頁:

Note:此網頁並不會說明 L298N 馬達驅動板的規格,這些資料都列在露天賣場上,有需要再利用連結點擊前往。


L298N 馬達驅動板說明:

下圖是 L298N 馬達驅動板實體圖上各接腳的說明,請使用它作為下面各電路接線圖輔助之用
L298N 馬達驅動板個接腳說明

在接下來的兩個圖面:一個是 L298N 晶片內部功能方塊圖,清楚的圖示出整個晶片受控與輸出的功能方式,紅色字的部分對應到電路圖的電源標示;另一個則是 L298N 馬達驅動板的設計電路圖,其中更特別標示出跳線帽 ( 黃色兩小啞鈴圖示 ) 的位置。

對照與比對 L298N 資料手冊 ( Page1 ) 的方塊圖與 L298N 馬達驅動板電路圖,應該不難了解這些跳線帽的功能,和圖面中各電源的名稱定義與關係。

L298N 晶片內部功能示意圖
L298N 晶片內部功能示意圖 ( source: STMicroelectronics L298N datasheet )

L298N 馬達驅動板電路圖

在 L298N 馬達驅動板電路圖中,IN1 和 IN2 控制 OUT1 與 OUT2 的輸出電源;而 IN3 和 IN4 控制 OUT3 與 OUT4 的輸出電源。

輸出電源的極性控制則是經由兩個輸入端的組合而定 ( 可使用下面表格來對照 L298N 晶片內部功能示意圖 ),這些控制方法將會用在馬達轉向控制與程式撰寫上。

ENA
( ENB )
IN1
( IN3 )
IN2
( IN4 )
OUT1
( OUT3 )
OUT2
( OUT4 )
馬達狀態
0XXXX無動力停止
100快速煞車
10101正轉
11010反轉
111快速煞車

詳細的接線圖如下所示,點擊可放大看看原圖。
L298N 馬達驅動板,正反轉建議接線
電源接線方式 (A):L298N 馬達驅動板,正反轉建議接線

實際接線 (A) 的情況如下圖所示,電路圖中的 BAT1 就是照片中綠色轉接頭連接的地方,依照實際馬達驅動電壓輸入就可以了 ( 此處使用的電壓必須大於 5V,小於 5V 時必須使用兩組電源輸入,也就是要使用下面 (B) 的接線方式 )。
馬達正反轉控制線路照片 ( 使用外接電源 DC 12V )
馬達正反轉控制線路照片 ( 使用外接電源 DC 12V )

或許有人會問,樹莓派是 3V3 的邏輯準位,這樣行得通嗎 ?

先不說是實驗求得結果,而是由規格書上 ( L298N, Page 3 ) 來看
  • Ven = L ( Enable Low Voltage ):-0.3 ~ 1.5V
  • Ven = H ( Enable High Voltage ):2.3  ~ Vs ( Vs 指的是邏輯電壓,這裡是指降壓之後的 DC 5V )
所以使用 3V3 邏輯準位是可以正常動作的。

下面兩個電路圖 ( B ) 和 ( C ) 是電源部分其他接線的方式,提供給有需要的人做參考;使用上,建議使用電源接線方式 (A) 就可以了。
電源接線方式 (B):L298N 馬達驅動板,正反轉接線
電源接線方式 (C):L298N 馬達驅動板,正反轉接線

馬達正反轉測試:

點擊下方的連結或是輸入下面指令下載測試程式
pi@raspberrypi ~ $ cd Codes
pi@raspberrypi ~/Codes $ wget -O - http://goo.gl/RiNF15 | tar zxvf -
.... << 過程省略 >> ....
pi@raspberrypi ~/Codes $ cd Motor_FR/
pi@raspberrypi ~/Codes/Motor_FR $ ls -l
總計 12
-rwxr-xr-x 1 pi pi 7242  2月 23 19:36 motorfr
-rw-r--r-- 1 pi pi 3102  2月 23 19:36 motorFR.c
pi@raspberrypi ~/Codes/Motor_FR $

馬達正反轉測試程式碼 (http://goo.gl/RiNF15)

直接輸入 ./motorfr 就會出現下面的選單,讓使用者選擇兩顆馬達的轉向
      Motor Control
------------------------------

  1: motor 1, forward
  2: motor 1, backward
  3: motor 1, stop
  4: motor 2, forward
  5: motor 2, backward
  6: motor 2, stop

------------------------------
Select:


這是個較容易完成的測試,原始程式碼與編譯的指令都在 motorFR.c 裡面。若需要對馬達進行轉速控制的話,可參考 "eZ430 運動手錶控制樹莓派小車 ( 開迴路控制 )" 網頁中,使用 LPD8806 作為 L298N 馬達驅動板 PWM 信號產生器的馬達轉速控制那一節的介紹說明。

9 則留言:

  1. 請問按照A電路圖接好了 可是在數莓終端上執行 選擇1~6都沒有反應 問題可能出在哪裡呢?

    回覆刪除
    回覆
    1. (A) 圖示使用外掛獨立的電源,因此去除掉 IN1 - IN4 的電源之後,拿兩條線分別接在 IN1 與 IN2 ( 或 IN3 與 IN4 ) ,再與三個終端子的"邏輯輸入電源"與"電源(負極)" 做接觸,就可以模擬由樹莓派輸入的正反轉訊號。可以動就表示 L298N 沒壞。

      L298N 沒壞的話,就是您的接線接錯了 ! 檢查一下您外接電源的接地與樹莓派的GND 是否有接在一起。

      刪除
    2. 上述兩點已確認過都沒有問題,還能怎麼做呢

      刪除
    3. 1. 外掛給馬達的電源電壓是多少 ?

      2. 如果你用的是我網頁中使用的那一款,能照我上面說的方法驅動馬達,只是使用樹莓派的程式不能驅動的話,那還是接線的問題 !!!
      可以確認一下您的樹莓派接腳,分別控制正反轉
      #define IN1 25 // Motor 1
      #define IN2 24 // Motor 1
      #define IN3 23 // Motor 2
      #define IN4 18 // Motor 2
      開啟程式並選擇選項後,量樹莓派接腳和接地(GND)之間的電壓,對照程式碼裡面的 line 25 - 31,就應該會顯示 3V3 或是 0V,確認一下 !
      如果連這邊也 OK !,兩邊都沒問題,那就是再檢查電路圖與接線有無問題 !!!!

      我看不到你的接線,只能土法煉鋼 !

      刪除
    4. 感謝 問題已解決
      有個另外的問題想請問您
      由於我樹梅派上接腳不夠用,我用到了GPIO9.10
      但是他原本有自己的功能用途(直接用有衝突),有方法能重新定義GPIO功能嗎
      因為其他的腳位,我已有其他用途

      刪除
    5. 您好:
      GPIO9和10 是 SPI 功能接腳,如果要重新定義變成 GPIO 來使用,必須放棄系統的 SPI 功能。
      下 sudo raspi-config (http://www.raspberrypi.org/documentation/configuration/raspi-config.md) 重新進入系統選單,好像在 "advanced options" 裡面 A5 SPI 選項,進入之後 disable 就可以將接腳恢復成一般的 GPIO 接腳。設定好之後若系統有提示要重開機,別忘了聽它的!

      刪除
    6. 您好:請問我有兩組電源 ,一組從數莓上接出5V 一組為電池(因為我用兩塊驅動版4輪,不多接一組電會不夠) ,接到馬達驅動版上時,要兩者都接到 外部輸入電源上,還是個接一組比較好呢?還是沒有差別

      刪除
    7. 您好:
      建議您使用 (A) 組接線!

      樹莓派只出控制訊號就好,馬達驅動板的電源全部都是由電池供應。

      刪除

留言屬名為"Unknown"或"不明"的用戶,大多這樣的留言都會直接被刪除掉,不會得到任何回覆!

發問問題,請描述清楚你(妳)的問題,別人回答前不會想去 "猜" 問題是什麼?

不知道怎麼發問,請看 [公告] 部落格提問須知 - 如何問問題 !