【发布时间】:2020-02-04 12:42:26
【问题描述】:
我对 3D 打印很陌生,因为我需要控制 X、Y 和 Z 轴的步进电机。 我有两个步进电机和一个微步驱动器 (CW-5045),当然还有带有扩展板的 Raspberry pi 3。
我希望通过单击所需按钮来移动 3D 打印机的 Z 轴。按钮用于给定位置上下移动 Z 轴。我想有 2-3 个按钮,它们应该移动 25 个微层、50 个微层和 100 个微层。 (我不确定是微层还是微米)。
下面提到的代码是我尝试过的代码,但步进电机发出了一些噪音,但我没有看到轴有任何运动。
我已尝试使用此参考:setup leadshine DM860 bipolar driver motor on raspberry pi
我知道我可以使用 Octoprint 等外部打印机控制器,但该项目处于初始阶段,因为我没有所有设备。所以我想从步进电机开始。
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
CW = 1 # Clockwise Rotation
CCW = 0 # Counterclockwise Rotation
SPR = 200 # Steps per Revolution (360 / 1.8)
GPIO.setup(21,GPIO.OUT)
GPIO.setup(20,GPIO.OUT)
GPIO.output(21,False)
microStep = 0
step_count = SPR
delay = .0208
GPIO.output(20, GPIO.HIGH)
while True:
for x in range(step_count):
GPIO.output(20, GPIO.HIGH)
sleep(delay)
GPIO.output(20, GPIO.LOW)
sleep(delay)
sleep(.5)
GPIO.output(20, GPIO.LOW)
for x in range(step_count):
GPIO.output(20, GPIO.HIGH)
sleep(delay)
GPIO.output(20, GPIO.LOW)
sleep(delay)
microStep = microStep + 1
print(microStep)
GPIO.cleanup()
我想我无法控制电机的速度。我想通过给出所需的位置值来精确控制电机的微步,而不仅仅是电机从上到下运行。
【问题讨论】:
-
我已将延迟从 0.0208 更改为 0.005 我可以看到逆时针方向的运动,但电机一直运行到终点。