ESP32-DC直流馬達測試
tags: micropython
dc_moto
直流馬達是微控板常常在用的元件,最常搭配的是L298N
驅動裝置,因為如果把馬達直接接上微控板會導致燒掉
======================================================================
L298N驅動板
OUT1:直流電機A+端子
OUT2:直流電機 A – 端子
OUT3:直流電機B+端子
OUT4:直流電機 B – 端子
這裡要特別注意的地方
在底部,您有一個帶有 +12V、GND 和 +5V 的三接線端子。
一般用18650電池二~三顆供電的話接+12V和GND,如果要
額外接微控板例如esp32或arduino,在+5V和GND就是往外
供電給微控板的5V。
注意:如果供電超過12V,需要去掉跳線,給+5V端供電5V。
使能(Enble)引腳
如果您向使能 A 引腳發送 HIGH 信號,則電機 A 已準備好以最大速度進行控制;
如果向使能 A 引腳發送 LOW 信號,則電機 A 關閉;
如果發送PWM信號,則可以控制電機的速度。電機速度與占空比成正比。但是,
請注意,對於小占空比,電機可能不會旋轉,並發出持續的嗡嗡聲。
接線
*記得L298N的GND要拉一條到ESP32的GND,否則馬達不會動作
程式
from machine import Pin, PWM, freq
from time import sleep
class L298N():
def __init__(self):
self.in1 = Pin(26, Pin.OUT)
self.in2 = Pin(27, Pin.OUT)
self.enble = PWM(Pin(14), freq = 5000)
def forward(self,speed):
self.speed(speed)
self.in1.on()
self.in2.off()
print("forward")
def back(self, speed):
self.speed(speed)
self.in1.off()
self.in2.on()
print("back")
def stop(self):
self.in1.off()
self.in2.off()
print("stop")
def speed(self,speed):
self.enble.duty(speed)
if __name__ == "__main__":
l298n = L298N()
l298n.forward(800)
sleep(3)
l298n.back(600)
sleep(3)
l298n.stop()