//用了大连好人的带加速库的步进电机驱动库,表示感谢。大家可以学习检索下载
//TB6560设置:SW1:ON,SW2:OFF,SW3:OFF,DIP1:OFF,DIP2:OFF,DIP3:ON,DIP4:ON,DIP5:OFF,DIP6:ON
#include <EasyStepper.h> //使用大连好人的步进电机驱动库
#define STEP1_PIN 2 //设定步进电机1速度(接TB6560"CLK+","CLK-"共地)在UNO的2脚
#define DIR1_PIN 3 //设定步进电机1方向(接TB6560"CW+","CW-"共地)在3脚
#define STEP2_PIN 4 //设定步进电机2速度在UNO的4脚
#define DIR2_PIN 5 //设定步进电机2方向在5脚
#define STEP3_PIN 6 //设定步进电机3速度在UNO的6脚
#define DIR3_PIN 7 //设定步进电机3方向在7脚
#define STEP4_PIN 8 //设定步进电机4速度在UNO的8脚
#define DIR4_PIN 9 //设定步进电机4方向在9脚
#define STEP5_PIN 10 //设定步进电机5速度在UNO的10脚
#define DIR5_PIN 11 //设定步进电机5方向在11脚
#define STEP6_PIN 12 //设定步进电机6速度在UNO的12脚
#define DIR6_PIN 13 //设定步进电机6方向在13脚
#define DIR_PIN_INVERTED true
#define EN_PIN_INVERTED true
int EN_PIN = 0; //所有的TB6560的"EN+"和"EN-"共地,就是使能接地,步进电机连接不脱机
EasyStepper stepper1(STEP1_PIN, DIR1_PIN, EN_PIN, DIR_PIN_INVERTED, EN_PIN_INVERTED);
EasyStepper stepper2(STEP2_PIN, DIR2_PIN, EN_PIN, DIR_PIN_INVERTED, EN_PIN_INVERTED);
EasyStepper stepper3(STEP3_PIN, DIR3_PIN, EN_PIN, DIR_PIN_INVERTED, EN_PIN_INVERTED);
EasyStepper stepper4(STEP4_PIN, DIR4_PIN, EN_PIN, DIR_PIN_INVERTED, EN_PIN_INVERTED);
EasyStepper stepper5(STEP5_PIN, DIR5_PIN, EN_PIN, DIR_PIN_INVERTED, EN_PIN_INVERTED);
EasyStepper stepper6(STEP6_PIN, DIR6_PIN, EN_PIN, DIR_PIN_INVERTED, EN_PIN_INVERTED);
void setup()
{
Serial.begin(9600);
stepper1.debugMode(false);
stepper1.startup();
stepper2.debugMode(false);
stepper2.startup();
stepper3.debugMode(false);
stepper3.startup();
stepper4.debugMode(false);
stepper4.startup();
stepper5.debugMode(false);
stepper5.startup();
stepper6.debugMode(false);
stepper6.startup();
}
void loop()
{
rtt(1, 12000, 10000, 0); //第1台步进电机按12000的速度顺时针走5000步加速度0
rtt(2, 11000, -9000, 1); //第2台步进电机按11000的速度逆时针走9000步加速度1
rtt(3, 10000, 8000, 2); //第3台步进电机按10000的速度顺时针走8000步加速度2
rtt(4, 9000, -7000, 3); //第4台步进电机按 9000的速度逆时针走7000步加速度3
rtt(5, 8000, 6000, 4); //第5台步进电机按 8000的速度顺时针走6000步加速度4
rtt(6, 7000, -5000, 5); //第6台步进电机按 7000的速度逆时针走5000步加速度5
}
void rtt(int bh, int sd, int bs, int jsd)
{
switch (bh)
{
case 1:
stepper1.rotate(sd, bs, jsd);
stepper1.run();
while (!stepper1.isDone()) {
stepper1.run();
}
break;
case 2:
stepper2.rotate(sd, bs, jsd);
stepper2.run();
while (!stepper2.isDone()) {
stepper2.run();
}
break;
case 3:
stepper3.rotate(sd, bs, jsd);
stepper3.run();
while (!stepper3.isDone()) {
stepper3.run();
}
break;
case 4:
stepper4.rotate(sd, bs, jsd);
stepper4.run();
while (!stepper4.isDone()) {
stepper4.run();
}
break;
case 5:
stepper5.rotate(sd, bs, jsd);
stepper5.run();
while (!stepper5.isDone()) {
stepper5.run();
}
break;
case 6:
stepper6.rotate(sd, bs, jsd);
stepper6.run();
while (!stepper6.isDone()) {
stepper6.run();
}
break;
default:
break;
}
} |