A4988和CNC SHIELD使用方法 步进电机
接线视频
来源
https://www.basemu.com/a4988_pinout_and_how_to_use.html
注意要点
A4988既要12V外部供电,也要5V逻辑供电
我没有Arduino,要自己给CNC SHIELD接线供电
接线说明
1处是电机使能,短接即可,低电平使能。
2处蓝色是电机步进信号,输入方波即可。黄色是旋转方向
3处是逻辑电平,分别接上5V和GND
4处是插电机的地方
简易程序
#coding: utf8
import RPi.GPIO as GPIO
import time
import sys
xStep=35
xDir=37
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(xStep, GPIO.OUT)
GPIO.setup(xDir, GPIO.OUT)
GPIO.output(xDir, 0)
while(1):
GPIO.output(xStep, 1)
time.sleep(0.003)
GPIO.output(xStep, 0)
time.sleep(0.003)
简易程序也可以是这样的
class StepMotor:
def __init__(self,stepPin,dirPin):
self.stepPin=stepPin
self.dirPin=dirPin
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(self.stepPin,GPIO.OUT)
GPIO.setup(self.dirPin,GPIO.OUT)
self.setDirF()
def setDirF(self):
GPIO.output(self.dirPin,1)
def setDirB(self):
GPIO.output(self.dirPin,0)
def run(self,speed=0.03,distance=0):
#speed=0.003快 0.03慢
times=distance*45 #这是由螺杆导程、步进电机步进角决定的
while(times>0):
GPIO.output(self.stepPin,0)
time.sleep(speed)
GPIO.output(self.stepPin,1)
time.sleep(speed)
times=times-1
步进电机不动,或者一会儿顺时针动、一会儿逆时针动,并且伴随着轰隆隆的噪声
通常是由于缺相导致的。例如步进电机往CNC SHIELD上插时,引脚悬空没接上。(╥╯^╰╥)
参看https://wenku.baidu.com/view/d49864311ed9ad51f11df203.html
步进电机很响,转动正常但是有轰隆隆的噪声
很可能是细分的缘故,对A4988来说弄个16细分会就比较安静了。当然购买强大的驱动器来个256细分就更安静