source code:
#include <Stepper.h>
#include <SoftwareSerial.h>
//SoftwareSerial mySerial(3, 4); // 软串口定义
const int stepsPerRevolution = 2048;
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
int targetSteps =0;
int mpuable=0;
void setup() {
Serial.begin(9600);
myStepper.setSpeed(5);
//mySerial.begin(9600);
}
void loop()
{
if (Serial.available()) { // 如果有数据可读
byte hexbyte = Serial.read(); // 读取单个字节
uint16_t hexdegree = hexbyte; // 将字节转换为无符号整数
uint16_t decdegree = hexdegree; // 直接转换为十进制数
if (decdegree==1)
{
mpuable=decdegree;
decdegree=0;
}
targetSteps = decdegree / 360.0 * stepsPerRevolution; // 计算目标步数
myStepper.step(targetSteps);
/*wrong1:(this run have a delay for time,so successful to send please wait it succfully run and send again,usally send to information have a return information,but if you use the run,it will not)
wrong2:if you try to use the bluetooth and programming cable together,the process will offer voluntarily error,it means they are conflict.
*/
Serial.print("Received data: "); Serial.println(decdegree);
}
}
Summary:It is worth to noting,we use Softwareserial header file to creat a software's UART communication mode,and we use a stepper header file to creat a object to control stepper motor to run.