利用4B树莓派控制步进电机转动,精度可达:0.0144度 (即360度/25000)
(资料图)
适用于非常精密的角度转动。
舵机的精度为1度,无法实现超高精度控制。
硬件需求树莓派CDKU- S100-24开关电源DM542驱动器42bygh34步进电机220V插头硬件介绍DM542驱动器硬件型号不同,只要功能相同,代码即可兼用。
概述:
用户使用该驱动器可以设置常用的 8 档电流以及 16 档细分,能够满足大多数场合的应用需要。低中高速运 行都很平稳,噪音小。多种功能可通过外部拨码选择,极大地方便了客户的应用。
应用领域:
适合各种中小型自动化设备和仪器,例如:雕刻机、打标机、切割机、激光照排、绘图仪、数控机床、自动装配设备等。
电气指标:
控制信号接口:
强电接口:
控制信号时序图:
每转脉冲设定:
工作电流设定:
开关电源采用 90-264VAC 全范围输入电压,(200W、350W 有拨动开关选择)。可任选一组 5V、12V、24V、36V、48V 单组输出
步进电机电气指标:
电机接口:
控制信号时序图:
接线方法共阳极接法共阴极接法差分方式接法接线方式树莓派GPIO接口和驱动器的接线方式:
IN1 = 18 # 接PUL-IN2 = 16 # 接PUL+IN3 = 15 # 接DIR-IN4 = 13 # 接DIR+
步进电机和驱动器的接线方式:
按照步进电机上的A+、A-等连到驱动器对应位置即可(驱动器上有电机接口标签)
开关电源和220V插头接线方式:
220V插头接开关电源的220V输入电压位置,开关电源的V-和V+接驱动器的输入电源位置
驱动器细分按键调节:
代码展示:SW1、SW2、SW3、SW6开关设置为on
import RPi.GPIO as GPIOimport time # 规定GPIO引脚IN1 = 18 # 接PUL-IN2 = 16 # 接PUL+IN3 = 15 # 接DIR-IN4 = 13 # 接DIR+ def setStep(w1, w2, w3, w4): GPIO.output(IN1, w1) GPIO.output(IN2, w2) GPIO.output(IN3, w3) GPIO.output(IN4, w4) def stop(): setStep(0, 0, 0, 0) def backward(delay, steps): for i in range(0, steps): setStep(1, 0, 0, 0) time.sleep(delay) setStep(0, 1, 0, 0) time.sleep(delay) setStep(0, 0, 1, 0) time.sleep(delay) setStep(0, 0, 0, 1) time.sleep(delay) def setup(): GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location GPIO.setup(IN1, GPIO.OUT) # Set pin"s mode is output GPIO.setup(IN2, GPIO.OUT) GPIO.setup(IN3, GPIO.OUT) GPIO.setup(IN4, GPIO.OUT) def loop(angle): print ("backward...") backward(0.0001, int(angle/0.036)) # 发射脉冲时间间隔0.0001(单位秒) 脉冲个数angle/0.036 print ("stop...") stop() # stop time.sleep(1) # sleep 3s def destroy(): GPIO.cleanup() # 释放数据 if __name__ == "__main__": # Program start from here setup() while True: try: a = input("please input angle:") loop(float(a)) except KeyboardInterrupt: # When "Ctrl+C" is pressed, the child function destroy() will be executed. destroy()
此代码的精度为:0.036度
如果希望精度更高,自行调整代码和驱动器细分按键。
结果展示最后,祝大家学习进步,工作顺心!
关键词: