一、目的
这一节我们来学习如何使用合宙ESP32 C3连接TB6600驱动42BYGH39步进电机,实现控制步进电机正反转和旋转指定角度等。下面我们一起来学习一下吧!
二、环境
ESP32 C3开发板(MicroPython v1.19.1 on 2022-06-18)+ 42BYGH39步进电机 + TB6600驱动 + 几根杜邦线 + Win10商业版
ESP32 C3和各模块接线方法:
我们使用共阴极接法:
Tb6600电源和步进电机接线:
根据电动机的电流设置拨码开关:
我们使用的电动机电流是1.2A,我们拨码开关4设为On,5和6设为OFF。
细分开关,即拨码开关1,2,3,下面我们使用的是1600的,所以2设为ON,1和3设为OFF。
三、TB6600步进电机驱动
tb6600.py
from machine import Pin
import time
class TB6600:
Pulse = 1600
def __init__(self,Pul,Dir,Ena):
self.Pul = Pin(Pul,Pin.OUT,Pin.PULL_UP)
self.Dir = Pin(Dir,Pin.OUT,Pin.PULL_UP)
self.Ena = Pin(Ena,Pin.OUT,Pin.PULL_UP)
self.Reset()
"""
设置旋转整圈数:
Een = 1使能,Een = 0失能
Dir = 1正转,Dir = 0反转
Circle = 旋转圈数,一圈360°
Freq = 频率 例如:一周期200us = 时间1/周期0.000200 = 频率5kHz
"""
def Motor_Circle(self,Ean,Dir,Circle,Freq):
for i in range(0,self.Pulse * Circle,1):
self.Ena.value(Ean)
if Dir:
self.foreward()
else:
self.reversal()
self.frequency(Freq)
"""
设置旋转角度:
Een = 1使能,Een = 0失能
Dir = 1正转,Dir = 0反转
Angle = 旋转角度,0 - 360°
Freq = 频率 例如:一周期200us = 时间1/周期0.000200 = 频率5kHz
"""
def Motor_Angle(self,Ean,Dir,Angle,Freq):