#机械臂2--树莓派Python 步进电机驱动TB6600 控制步进电机

步进电机驱动和步进电机的连线

一、端口说明

(1)、信号输入端

   PUL+:脉冲信号输入正。
   PUL-:脉冲信号输入负。
   DIR+:电机正、反转控制正。
   DIR-:电机正、反转控制负。
   EN+:电机脱机控制正。
   EN-:电机脱机控制负。

(2)、电机绕组连接

   A+:连接电机绕组A+相。
   A-:连接电机绕组A-相。
   B+:连接电机绕组B+相。
   B-:连接电机绕组B-相。

(3)、电源电压连接

   VCC:电源正端“+
   GND:电源负端“-”
   注意:DC直流范围:9-32V
   不可以超过此范围,否则会无法正常工作甚至损坏驱动器.

(4)、输入端接线说明

   输入信号共有三路,它们是:①步进脉冲信号PUL+,PUL-;②方向电平信号
DIR+,DIR-③脱机信号EN+,EN-。
   笔者采用共阴极接法:分别将PUL-,DIR-,EN-连接到树莓派的GND口;脉冲输入信号PUL+连接到树莓派的GPIO(笔者为18号口),方向信号DIR+连接到树莓派的GPIO口(笔者为12号口)。
   注:EN端可不接。

(5)、连接完成后如图所示:

二、细分调节

这里笔者将细分调到1600,电流调到1.5.

三、Python控制实现

import RPi.GPIO as gpio
import time

DIR = 12
PUL = 18

gpio.setmode(gpio.BOARD)
gpio.setup([PUL, DIR], gpio.OUT)

# 别问我这里为什么是2085不是1600,我也很纳闷,试了很久,发现这个频率才刚好转够一圈 > . <
pwmPUL = gpio.PWM(PUL, 2085)  
pwmPUL.start(0)

def rotate(angle, direction):
    """
    旋转操作,需要指定旋转角度和方向
    :param angle: 正整型数据,旋转角度
    :param direction: 字符串数据,旋转方向,取值为:"ccw"或"cw".ccw:逆时针旋转,cw:顺时针旋转
    :return:None
    """
    if direction == "ccw":
        gpio.output(DIR, gpio.LOW)
    elif direction == "cw":
        gpio.output(DIR, gpio.HIGH)
    else:
        return
    pwmPUL.ChangeDutyCycle(50)
    time.sleep(angle / 360)
    pwmPUL.ChangeDutyCycle(0)

time.sleep(4)
rotate(180, "ccw")

pwmPUL.stop()
gpio.cleanup()


发布了14 篇原创文章 · 获赞 50 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_43519779/article/details/104069169