接著幾篇要來熟悉一下 MucroPython 如何控制開發板及如何取得感測器,這一篇先瞭解如何控制 L298N 的馬達控制模組,控制轉動方向,以及使用time函式進行時間控制。
[L298N機電馬達驅動模組]
L298N採用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續工作電流為2A;額定功率25W。內含兩個H橋的高電壓大電流全橋式驅動器,可以用來驅動直流電動機和步進電動機、繼電器線圈等感性負載。使用L298N驅動電機,可以驅動一台兩相馬達或四相馬達,也可以驅動兩台直流馬達。
這個 L298N 模組可使用 5V 供電給電機使用。如果+12V電壓輸入 7V 以下,僅適合用作推動馬達的電壓,ESP32 主機板的電源,建議另外提供電源使用。這個模組有2路H橋驅動,可同時驅動兩個馬達,接法如下圖:
Enable A短路連接器連接時可控制IN1、IN2,Enable B可控制IN3、IN4,其意義代表控制馬達轉動的方向。舉例來說,當IN1為高電位,IN2低電位時,通知馬達正轉,如果要反轉時,則讓IN2為高電位,IN1低電位,馬達則會向反方向轉動。如下表:
[time延時函式]
要使用時間 time 相關令前,需先將 time 模組匯入:
import time
指令 | 說明 |
time.sleep(1) | 睡眠一秒 |
time.sleep_ms(500) | 500毫秒 |
time.sleep_us(10) | 10微妙 |
[範例]
import time
# 取得毫秒 millisecond 計數
start = time.ticks_ms()
# 與起始時間計算時間差
delta = time.ticks_diff(time.ticks_ms(), start)
print(delta)
[控制GPIO]
要控制GPIO的各Pin腳,需先將 machine 模組匯入
from machine import Pin
指令 | 說明 |
p0 = Pin(0, Pin.OUT) | 在GPIO0建立輸出Pin |
p0.on() | 設定為開(on, 高電位) |
p0.off() | 設定為關(off, 低電位) |
p0.value(1) | 設定為開(on, 高電位) |
p2 = Pin(2, Pin.IN) | 在GPIO2建立輸入Pin |
p2.value() | 取得Pin值,0或1 |
p4 = Pin(4, Pin.OUT, value=1) | 建立Pin4為輸出Pin,且設定值為1 |
[線路圖]
[程式]
這段程式利用 Pin16, Pin17 控制轉動方向。這裡實做控制一個馬達,如果要接兩個馬達,只要依照上表的設定,改變 Pin 腳的高低電位即可控制馬達轉動方向。
import time
from machine import Pin
motorA1 = Pin(16, Pin.OUT)
motorA2 = Pin(17, Pin.OUT)
while True:
#正轉持續3秒
motorA1.on()
motorA2.off()
time.sleep(3)
#反轉持續3秒
motorA1.off()
motorA2.on()
time.sleep(3)
[結果]
[參考資料]
張貼留言