#include <Stepper.h>
const int UpButton = 4;
const int DownButton = 3;
const int LeftButton = 2;
const int RightButton = 1;
int IN1 = 9;
int IN2 = 8;
int IN3 = 7;
int IN4 = 6;
const int stepsPerRevolution = 180;
Stepper myStepper(stepsPerRevolution, IN1, IN2, IN3, IN4);
int motorSpeed = 60; // Начальная скорость мотора в шагах в минуту
void makeDecision() {
if (digitalRead(UpButton) == HIGH && digitalRead(DownButton) == HIGH &&
digitalRead(LeftButton) == HIGH && digitalRead(RightButton) == HIGH)
{
Serial.println("Робот стоит на месте.");
}
else if (digitalRead(UpButton) == LOW && digitalRead(DownButton) == HIGH &&
digitalRead(LeftButton) == HIGH && digitalRead(RightButton) == HIGH)
{
Serial.println("Робот идет вперед.");
myStepper.step(stepsPerRevolution / 2); // Движение вперед на 1/2 оборота
}
else if (digitalRead(UpButton) == HIGH && digitalRead(DownButton) == LOW &&
digitalRead(LeftButton) == HIGH && digitalRead(RightButton) == HIGH)
{
Serial.println("Робот идет назад.");
myStepper.step(-stepsPerRevolution / 2);
}
else if (digitalRead(UpButton) == HIGH && digitalRead(DownButton) == HIGH &&
digitalRead(LeftButton) == LOW && digitalRead(RightButton) == HIGH)
{
Serial.println("Движение налево.");
myStepper.step(-stepsPerRevolution / 4); // Поворот налево на 1/4 оборота
}
else if (digitalRead(UpButton) == HIGH && digitalRead(DownButton) == HIGH &&
digitalRead(LeftButton) == HIGH && digitalRead(RightButton) == LOW)
{
Serial.println("Движение направо.");
myStepper.step(stepsPerRevolution / 4); // Поворот направо на 1/4 оборота
}
else {
Serial.println("Тут что - то не то");
}
}
void setup() {
pinMode(UpButton, INPUT_PULLUP);
pinMode(DownButton, INPUT_PULLUP);
pinMode(LeftButton, INPUT_PULLUP);
pinMode(RightButton, INPUT_PULLUP);
myStepper.setSpeed(20); // Установка начальной скорости шагового двигателя
Serial.begin(9600);
}
void loop() {
Serial.println();
makeDecision(); // Принятие решения на основе данных
delay(500);
}