请问arduino串口如何控制电机的正反转和开关?
2021-10-14 10:13:35
用到了AccelStepper和RBD_SerialManager两个头文件
#include "AccelStepper.h"
#include
RBD::SerialManager u***;
// 电机步进方式定义
#define FULLSTEP 4 //全步进参数
#define HALFSTEP 8 //半步进参数
// 定义步进电机引脚
#define motor1Pin1 8 // 一号28BYJ48连接的ULN2003电机驱动板引脚 in1
#define motor1Pin2 9 // 一号28BYJ48连接的ULN2003电机驱动板引脚 in2
#define motor1Pin3 10 // 一号28BYJ48连接的ULN2003电机驱动板引脚 in3
#define motor1Pin4 11 // 一号28BYJ48连接的ULN2003电机驱动板引脚 in4
int motorRun = 0;
// 定义两个步进电机对象
// 定义中ULN2003驱动板引脚顺序为 in1-in3-in2-in4
// 1号电机设置为全步进运行,2号电机设置为全步进运行
AccelStepper stepper1(HALFSTEP, motor1Pin1, motor1Pin3, motor1Pin2, motor1Pin4);
void setup()
{
u***.start();
stepper1.setMaxSpeed(2000); // 设置电机最大速度为2000
stepper1.setSpeed(300); // 初始化电机速度为300
u***.println("请输入参数:");
}
void loop()
{
if (u***.onReceive())
{
// 检查串口缓存是否有数据等待传输
if(u***.isCmd("speed"))
{
int param = u***.getParam().toInt();
stepper1.setSpeed(param);
motorRun = 1;
u***.print("电机速度:");
u***.println(param);
}
if(u***.isCmd("stop"))
motorRun = 0;
stepper1.disableOutputs();
}
if(motorRun == 1)
stepper1.runSpeed();
}
用到了AccelStepper和RBD_SerialManager两个头文件
#include "AccelStepper.h"
#include
RBD::SerialManager u***;
// 电机步进方式定义
#define FULLSTEP 4 //全步进参数
#define HALFSTEP 8 //半步进参数
// 定义步进电机引脚
#define motor1Pin1 8 // 一号28BYJ48连接的ULN2003电机驱动板引脚 in1
#define motor1Pin2 9 // 一号28BYJ48连接的ULN2003电机驱动板引脚 in2
#define motor1Pin3 10 // 一号28BYJ48连接的ULN2003电机驱动板引脚 in3
#define motor1Pin4 11 // 一号28BYJ48连接的ULN2003电机驱动板引脚 in4
int motorRun = 0;
// 定义两个步进电机对象
// 定义中ULN2003驱动板引脚顺序为 in1-in3-in2-in4
// 1号电机设置为全步进运行,2号电机设置为全步进运行
AccelStepper stepper1(HALFSTEP, motor1Pin1, motor1Pin3, motor1Pin2, motor1Pin4);
void setup()
{
u***.start();
stepper1.setMaxSpeed(2000); // 设置电机最大速度为2000
stepper1.setSpeed(300); // 初始化电机速度为300
u***.println("请输入参数:");
}
void loop()
{
if (u***.onReceive())
{
// 检查串口缓存是否有数据等待传输
if(u***.isCmd("speed"))
{
int param = u***.getParam().toInt();
stepper1.setSpeed(param);
motorRun = 1;
u***.print("电机速度:");
u***.println(param);
}
if(u***.isCmd("stop"))
motorRun = 0;
stepper1.disableOutputs();
}
if(motorRun == 1)
stepper1.runSpeed();
}
举报