Arduino-TB6600驱动42步进电机

设计者:STCode (公众号同名)

Arduino控制42 步进电机 串口控制旋转位置

1)描述

42步进电机的驱动方式有多种,例如用A4988步进电机模块,这次我们使用TB6600驱动器驱动一个42步进电机,设置东南西北四个方向,当串口输入1、2、3、4时,步进电机转轴转到对应的方向。

2) 使用主要器件

1、Arduino Uno控制板
2、42步进电机
3、TB6600驱动器
4、导线

3)元件介绍

①42步进电机:
42步进电机为两相四线电机,相数是指线圈内部的线圈组数,目前常用的有二相-五相步进电机。电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°,四线就是电机出线有四根线。
Arduino-TB6600驱动42步进电机_第1张图片

②TB6600参数:

驱动器型号 TB6600
控制信号 3.3V/5/24V通用
输入电压 DC9~42V
电流 0.5A~3.5A
最大细分数 6400细分

4)电路设计

序号----------------Arduino Uno板引脚号------------------TB6600驱动器
1 ---------------------------D3 ----------------------------------------DIR+
2 ---------------------------D4 ----------------------------------------PUL+
3 -------------------------GND ----------------------------------------DIR-
4 -------------------------GND ----------------------------------------PUL-
步进电机的A+、A-、B+、B-分别对应接到驱动器的A+、A-、B+、B-。

接线如图所示
Arduino-TB6600驱动42步进电机_第2张图片

将驱动器的拨码开关拨至如图所示
Arduino-TB6600驱动42步进电机_第3张图片
拨码开关的S1、S2、S3是用来设置细分数的,可以设置细分数200、400、800、1600等,设置为200的话,给一个脉冲是转1.8°,设置为400的话,给一个脉冲是转0.9°,为了演示方便,这里选择800细分,给一个脉冲是转0.45度,因此同样频率的脉冲信号可以使得步进电机的转速更低。

拨码开关的S4、S5、S6是用来调电流大小的,我用的步进电机的额定电流为1.5A,因此设置S4-ON、S5-ON、S6-OFF。
Arduino-TB6600驱动42步进电机_第4张图片

5) 程序设计

#define DIR 3 //方向信号
#define PUL 4 //脉冲信号

定义引脚

  pinMode(DIR, OUTPUT);
  pinMode(PUL, OUTPUT);

定义引脚模式

  Serial.begin(9600);
  digitalWrite(DIR, LOW);//设置步进电机转动方向

设置串口波特率和转动方向,HIGH和LOW对应不同方向。

if(Serial.available()>0)
    {
        num=Serial.read();
        Serial.println(num);
    }


串口读取数据

void turn(int count)
{
    for(int i=0;i<count;i++)
    {
        digitalWrite(PUL, HIGH);
        delayMicroseconds(800);
        digitalWrite(PUL, LOW);
        delayMicroseconds(800);    
    }
}

转轴旋转子函数,count为200,转轴转1/4圈,count为400,转轴转1/2圈,以此类推。

更多创意作品请关注公众号:STCode

你可能感兴趣的:(Arduino,Arduino,DIY设计,单片机)