步进电机一般由电机、驱动器构成,树莓派连接驱动器控制电机。
DIR+/- 用于控制方向,PUL+/- 用于控制转动;
正极 DIR+ 和 PUL+ 接到GPIO口,两个负极接到GPIO口或地线均可,控制的时候不使用。
实验中,DIR+ 接35口,PUL+ 接38口。
树莓派4B GPIO口如图所示
远离树莓派USB的一侧 是 1、2、3号口
DIR控制方向,使用高电平或低电平控制;
PUL控制转动,使用脉冲驱动。
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(0)
pulse_terminal.ChangeDutyCycle(50) # 设置脉冲带宽 0~100
def stop(pulse_terminal):
# 停止脉冲
pulse_terminal.stop()
def set_direction(direction=1):
GPIO.output(TERMINAL2, direction) # 设置高低电平
if __name__ == '__main__': # Program start from here
setup()
pulse_terminal = GPIO.PWM(TERMINAL1, 1000) # 脉冲带宽调制
set_direction(1)
start(pulse_terminal)
time.sleep(3)
stop(pulse_terminal)
time.sleep(3)
set_direction(0)
start(pulse_terminal)
time.sleep(3)
GPIO.cleanup()