認識 L9110S 馬達驅動模組
- 可同時驅動2個直流馬達或1個4線2相式步進馬達
- 輸入電壓 2.5 ~ 12V
- 雙通道各具有 800mA 電流輸出
- 接通 VCC 與 GND 模組電源指示燈亮
- 輸入腳位有電位差時轉動, 無則停止
*** 特別注意事項 ***
此篇文章適用 Mini L298N 馬達模組的控制, 因為它雖名屬為 L298N 系列, 但控制的方式卻有很大的差別, 因為它少掉了 Enable 的腳位。所以, 在控制上便與 L298N 的方式不同, 它反而是跟 L9110s 馬達驅動模組的控制方式一樣。 所以, 若對於 L298N 有興趣者可參考我的另一篇文 “MicroPython 如此簡單系列: 小車使用L298N 馬達驅動模組”。
Step 1: 下載與安裝函式庫
首先, 必須先上傳下面的函式庫到 MCU 板子上:
- MyKitL9110S: 馬達模組控制的函式庫
***如果您尚不熟悉或想知道我是如何將函式庫上傳至 MCU 的, 那麼您應該會有興趣參考我的另一篇文章 “MicroPython 如此簡單系列 — ESP8266/ESP32 MCU 檔案管理”. ***
在我的程式開發理念, 惟 “簡單卻強大” 才是美。
所以, 我對驅動馬達的方式, 其實想法與做法幾乎都是一樣的, 因此, 我的程式在控制 L9110S, L298N, 或 MiniL298N, … 等等來讓直流馬達旋轉, 就跟控制 360度連續型舵機的旋轉都是一樣的方式。這些設計概念就不在此贅述, 想要進一步了解, 歡迎參考我的另一篇文章 “MicroPython 如此簡單系列: 舵機 (Servo)”。
***基本的控制概念:速度值= 0~90, 正負值=轉向 ***
Step 2: 來點基本測試範例
接下來的範例, 基本上程式的最上頭, 都會需要先包含以下敘述:
import utime as time
from MyKitL9110S import myL9110Sm = myL9110S()
m.attach(0, 2) # ESP8266: D3, D4
範例一:速度控制
m.go(80) # 速度範圍: 0~90
範例二:轉向控制
m.go(-80) # 逆時轉: speed=-1~-90, 順時轉: speed=1~90
範例三:停止
m.stop()
基本上, 使用上面的 3 行控制指令, 就足以完全控制 L9110S 了。
不相信嗎 ? 看看下面的影片 DEMO 吧 !
DEMO : 車子的前進->後退->左轉->右轉->停止
完整原始程式碼:
import utime as time
from MyKitL9110S import myL9110Sm1 = myL9110S()
m2 = myL9110S()
m1.attach(14, 12) # ESP8266: D5, D6
m2.attach(13, 15) # ESP8266: D7, D8
print("順轉前進: 速度 20 => 90")
for speed in range(20, 90):
m1.go(speed)
m2.go(speed)
time.sleep_ms(60)
print("逆轉後退: 速度 -20 => -90")
for speed in range(20, 90):
m1.go(-speed)
m2.go(-speed)
time.sleep_ms(60)print("左逆右順: 左轉")
for speed in range(20, 90):
m1.go(-speed)
m2.go(speed)
time.sleep_ms(60)
print("左順右逆: 右轉")
for speed in range(20, 90):
m1.go(speed)
m2.go(-speed)
time.sleep_ms(60)print("停止")
m1.stop()
m2.stop()
time.sleep_ms(100)m1.detach()
m2.detach()
如此而已, 就是這麼簡單, 希望能對你有發生了一點點小幫助 !
作者:Yungger 勇哥
若覺得此文真對您有幫助, 點點左上方的拍手圖示, 鼓勵一下。若還想 請喝杯咖啡 鼓勵一下勇哥的繼續創作, 也感謝 😘 😘 !!