Я хотел бы создать программу Arduino, которая получает (через последовательный порт) только две команды: «1» и «2». С помощью этих команд я бы хотел, чтобы Arduino управлял шаговым двигателем следующим образом:
- Если я пишу «1» на серийном номере, двигатель должен двигаться по часовой стрелке
- Если я пишу » 2 "на серийном, двигатель должен двигаться против часовой стрелки
Я уже написал код, который работает только наполовину:
#include <Stepper.h>
const int stepsPerRevolution = 1500;
int incomingByte;
Stepper myStepper(stepsPerRevolution, 11, 9, 10, 8);
void setup() {
myStepper.setSpeed(20);
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
Serial.print("I received: ");
Serial.println(incomingByte);
if (incomingByte = "1") {
Serial.println("Moving clockwise...");
myStepper.step(stepsPerRevolution);
delay(500);
}
if (incomingByte = "2") {
Serial.println("Moving counterclockwise...");
myStepper.step(-stepsPerRevolution);
delay(500);
}
}
}
Когда эта функция активна, программа ожидает команды на последовательный порт и удается прочитать их. Проблема в том, что в обоих случаях (1 и 2) двигатель вращается сначала по часовой стрелке, а затем против часовой стрелки, и это не тот результат, которого я хотел бы достичь.
Не могли бы вы помочь мне в этом начинании?