本篇將使用 L298N 模組連接兩個 N20 馬達,透過 Pi Pico 控制馬達的轉向,讓兩個輪子同時向前或向後,一邊輪子正轉、一邊反轉,讓車子的行進方向左右轉。
L298N 規格如下:
[L298N]
L298N 是 ST 公司生產的一種高電壓、大電流電機驅動晶片,內含兩個 H橋的高電壓大電流全橋式驅動器,可以用來驅動直流馬達和步進馬達、繼電器線圈等感性負載;具有兩個 Enable 使能控制端,在不受輸入信號影響的情況下,允許或禁止只有一個邏輯電源輸入端,使內部邏輯電路部分在低電壓下工作;使用 L298N 晶片驅動馬達,該晶片可以驅動一台兩相步進馬達或四相步進馬達,也可以驅動兩台直流馬達L298N 規格如下:
- 主控晶片:L298N
- 電壓:5V
- 驅動電壓:5V~35V
- 電流:0mA~36mA
- 驅動電流:2A
- 工作溫度:-20℃~135℃
- 最大功率:25W
IN1(IN3) | IN2(IN4) | 旋轉方向 |
---|---|---|
Low (0) | Low (0) | 馬達停止 |
High(1) | Low (0) | 正轉 |
High(0) | Low (1) | 反轉 |
Low (1) | Low (1) | 馬達停止 |
[材料]
- Raspberry Pi Pico x1
- L298N 模組 x1
- N20馬達 x2
- 輪子 x2
- 麵包板 x1
- 麵包板電源模組 x1
- 排線 n 條
[接線圖]
麵包板供給的 5V 電源直接接在 L298N 模組的正(+5V)及 GND 兩極,兩個馬達的正負兩條線接在 L298N模組的左右兩側,可參考以下接線圖。其他接腳如下:Pi Pico接腳 | L298N模組 |
---|---|
Pin 1(GP0) | IN4 |
Pin 2(GP1) | IN3 |
Pin 4(GP2) | IN2 |
Pin 5(GP3) | IN1 |
Pin 8(GND) | GND |
[程式]
import utime import machine motor1a = machine.Pin(0, machine.Pin.OUT) motor1b = machine.Pin(1, machine.Pin.OUT) motor2a = machine.Pin(2, machine.Pin.OUT) motor2b = machine.Pin(3, machine.Pin.OUT) led = machine.Pin(25, machine.Pin.OUT) #設定開發板上的 LED(Pin25) led.value(0) utime.sleep(0.5) led.value(1) utime.sleep(0.5) led.value(0) #functions def forward(): #向前 led.value(1) motor1a.high() motor1b.low() motor2a.low() motor2b.high() def backward(): #向後 led.value(1) motor1a.low() motor1b.high() motor2a.high() motor2b.low() def left(): #左轉 led.value(1) motor1a.high() motor1b.low() motor2a.high() motor2b.low() def right(): #右轉 led.value(1) motor1a.low() motor1b.high() motor2a.low() motor2b.high() def stop(): #停止 led.value(0) motor1a.low() motor1b.low() motor2a.low() motor2b.low() while True: forward() #向前 utime.sleep(2) stop() utime.sleep(1) backward() #向後 utime.sleep(2) stop() utime.sleep(1) left() #左轉 utime.sleep(2) stop() utime.sleep(1) right() #右轉 utime.sleep(2) stop() utime.sleep(1)
張貼留言