1.接线
共阴极接线,具体参考这篇与这篇
具体接线方法:在Arduino接线的基础上,增加杜邦线(母母线)连接TB6600与树莓派
杜邦线(母母线)连接TB6600与树莓派
共阴极接法
DIR+ 接35口
PUL+ 接38口
DIR-与PUL-接GND口
引脚对照表在这里,注意远离USB口(与USB口斜对角的)的引脚是1、2号引脚
2.1.代码,能跑
python,直接用树莓派自带的Thonny运行就行
import RPi.GPIO as GPIO
import time
TERMINAL1 = 38 # PUL +
TERMINAL2 = 35 # DIR +
def setup():
# 初始化
GPIO.setwarnings(False)#将警告关闭,去除GPIO口警告
GPIO.setmode(GPIO.BOARD)# 设置GPIO口为BOARD编号规范
GPIO.setup(TERMINAL1, 0)#设置端口/引脚
GPIO.setup(TERMINAL2, 0)#设置端口/引脚
def start(pulse_terminal):
# 开启脉冲
pulse_terminal.start(50)#初始化占空比为50,占空比调节范围0-100
#pulse_terminal.ChangeDutyCycle(50) # PWM脉宽调制,改变占空比,调节范围0-100
def stop(pulse_terminal):
# 停止脉冲
pulse_terminal.stop()
def set_direction(direction=0):#1是高电平;0是低电平
GPIO.output(TERMINAL2, direction) # 设置高低电平
if __name__ == '__main__': # Program start from here
setup()
pulse_terminal = GPIO.PWM(TERMINAL1, 50) # PUL+脉宽调制
set_direction(1)#1是高电平,缩回
start(pulse_terminal)
time.sleep(0.5)#运行时长/秒
stop(pulse_terminal)
time.sleep(0.5)#暂停时长/秒
set_direction(0)#0是低电平,伸出
start(pulse_terminal)
time.sleep(0.5)#运行时长/秒
stop(pulse_terminal)
time.sleep(0.5)#暂停时长/秒
GPIO.cleanup()
2.2.循环代码,可修改PWM频率(转速),能跑
import RPi.GPIO as GPIO
import time
TERMINAL1 = 38 # PUL +
TERMINAL2 = 35 # DIR +
def setup():
# 初始化
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(TERMINAL1, 0)
GPIO.setup(TERMINAL2, 0)
def start(pulse_terminal):
# 开启脉冲
pulse_terminal.start(50)#初始化占空比为50,占空比调节范围0-100
pulse_terminal.ChangeFrequency(500)#修改PWM频率,Hz,即修改转速
#pulse_terminal.ChangeDutyCycle(50) # 设置脉冲带宽 0~100
def stop(pulse_terminal):
# 停止脉冲
pulse_terminal.stop()
def set_direction(direction):
GPIO.output(TERMINAL2, direction) # 设置高低电平
if __name__ == '__main__': # Program start from here
setup()
pulse_terminal = GPIO.PWM(TERMINAL1, 50) # 脉冲带宽调制(引脚,频率),频率单位Hz
for i in range(3):#range()里的数是几就循环几次
set_direction(0)#0是低电平,控制杆伸出
start(pulse_terminal)
time.sleep(2)#运行时长/秒
stop(pulse_terminal)
time.sleep(0.1)#暂停时长/秒
set_direction(1)#1是高电平,控制杆缩回
start(pulse_terminal)
time.sleep(2)#运行时长/秒
stop(pulse_terminal)
time.sleep(0.1)#暂停时长/秒
GPIO.cleanup()
注:通过频率可以修改转速
2.3. 调速代码
pulse_terminal.ChangeFrequency()是关键
import RPi.GPIO as GPIO
import time
TERMINAL1 = 38 # PUL +
TERMINAL2 = 35 # DIR +
def setup():
# 初始化
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(TERMINAL1, 0)
GPIO.setup(TERMINAL2, 0)
def start(pulse_terminal):
# 开启脉冲
pulse_terminal.start(50)#初始化占空比为50,占空比调节范围0-100
def stop(pulse_terminal):
# 停止脉冲
pulse_terminal.stop()
def set_direction(direction):
GPIO.output(TERMINAL2, direction) # 设置高低电平
if __name__ == '__main__': # Program start from here
setup()
pulse_terminal = GPIO.PWM(TERMINAL1, 1000) # 脉冲带宽调制(引脚,频率),频率单位Hz
for i in range(3):#range()里的数是几就循环几次
#200细分下,1000Hz运行1秒即为一个伸缩来回
#200细分下,500Hz运行2秒即为一个伸缩来回,以此类推
set_direction(0)#0是低电平,控制杆伸出
pulse_terminal.ChangeFrequency(1000)#调频率
start(pulse_terminal)
time.sleep(0.5)#运行时长/秒
pulse_terminal.ChangeFrequency(250)#调频率
start(pulse_terminal)
time.sleep(2.0)#运行时长/秒
stop(pulse_terminal)
time.sleep(0.01)#暂停时长/秒
set_direction(1)#1是高电平,控制杆缩回
pulse_terminal.ChangeFrequency(500)
start(pulse_terminal)
time.sleep(2.0)#运行时长/秒
stop(pulse_terminal)
time.sleep(0.01)#暂停时长/秒
GPIO.cleanup()