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细分就更安静

posted @ 2019-01-19 22:11  灰太狼的喜羊羊  阅读(10124)  评论(0编辑  收藏  举报