Танцы с бубном на Ардуино нано


уцкенг


выфапро


Для начала вот код, который поможет понять, какие пины точно отвечают за нужный двигатель)


#define A 6
#define B 7

void setup() {
  for (int i = 2; i <= 13; i++) {
    pinMode(i, OUTPUT);
    digitalWrite(i, LOW);
  }
}

void loop() {
  // Тест 1: A = направление, B = включение
  digitalWrite(A, HIGH);
  digitalWrite(B, HIGH);
  delay(3000);

  stopAll();
  delay(2000);

  digitalWrite(A, LOW);
  digitalWrite(B, HIGH);
  delay(3000);

  stopAll();
  delay(4000);


  // Тест 2: B = направление, A = включение
  digitalWrite(A, HIGH);
  digitalWrite(B, HIGH);
  delay(3000);

  stopAll();
  delay(2000);

  digitalWrite(A, HIGH);
  digitalWrite(B, LOW);
  delay(3000);

  stopAll();
  delay(5000);
}

void stopAll() {
  for (int i = 2; i <= 13; i++) {
    digitalWrite(i, LOW);
  }
}

И вот код рабочий) 

Просто крутятся колеса)


#define R_DIR 3
#define R_EN  4

#define L_DIR 6
#define L_EN  7

void setup() {
  pinMode(R_DIR, OUTPUT);
  pinMode(R_EN, OUTPUT);

  pinMode(L_DIR, OUTPUT);
  pinMode(L_EN, OUTPUT);

  stopRobot();
}

void loop() {
  forward();
  delay(2000);

  stopRobot();
  delay(1000);

  backward();
  delay(2000);

  stopRobot();
  delay(1000);

  turnLeft();
  delay(1000);

  stopRobot();
  delay(1000);

  turnRight();
  delay(1000);

  stopRobot();
  delay(2000);
}

void forward() {
  digitalWrite(R_DIR, HIGH);
  digitalWrite(R_EN, HIGH);

  digitalWrite(L_DIR, HIGH);
  digitalWrite(L_EN, HIGH);
}

void backward() {
  digitalWrite(R_DIR, LOW);
  digitalWrite(R_EN, HIGH);

  digitalWrite(L_DIR, LOW);
  digitalWrite(L_EN, HIGH);
}

void turnLeft() {
  digitalWrite(R_DIR, HIGH);
  digitalWrite(R_EN, HIGH);

  digitalWrite(L_DIR, LOW);
  digitalWrite(L_EN, HIGH);
}

void turnRight() {
  digitalWrite(R_DIR, LOW);
  digitalWrite(R_EN, HIGH);

  digitalWrite(L_DIR, HIGH);
  digitalWrite(L_EN, HIGH);
}

void stopRobot() {
  digitalWrite(R_EN, LOW);
  digitalWrite(L_EN, LOW);
}

Далее робот балансирующий)


Последнее изменение: пятница, 8 мая 2026, 13:03