Инструменты пользователя

Инструменты сайта


машинка_на_arduino

Информация

Просто и быстро собираем Bleutooth машинку с двумя моторчиками на Arduino. Рекомендуем использовать нашу гусеничную платформу.

Требуемые компоненты для проекта

Нам необходимо:

  • Arduino UNO
  • HC-05
  • Драйвер двигателей L298N
  • Две батарейки 18650
  • Провода

Схема подключения:

Схема может и выглядит сложной, но на деле все собирается буквально за пару минут.

HC-05:

  • 5V → 5V
  • GND → GND
  • RX → TX
  • TX → RX

L298N:

  • 12V → VIN→+18650
  • GND → GND→-18650

1 двигатель:

  • D2
  • D4
  • D3

2 двигатель:

  • D6
  • D7
  • D5

Скетч для Arduino

Во время записи скетча не забудьте отключить HC-05, а то выдаст ошибку!

int motorRight1 = 2;       // Правый мотор.
int motorRight2 = 4;
int enableRight = 3;
 
int motorLeft1 = 6;        // Левый мотор.
int motorLeft2 = 7;
int enableLeft = 5;
 
 
int control;               // Управление двигателями.
int motorSpeed;            // Управление скоростью.
 
void setup() {
  pinMode (motorRight1, OUTPUT);
  pinMode (motorRight2, OUTPUT);
  pinMode (enableRight, OUTPUT);
 
  pinMode (motorLeft1, OUTPUT);
  pinMode (motorLeft2, OUTPUT);
  pinMode (enableLeft, OUTPUT);
 
  Serial.begin (9600);
}
 
void loop()
{
  if (Serial.available() > 0) {
    control = Serial.read();
 
    /*********************** Скорость ***********************/
    if (control == '1') {     // Скорость 1.
      motorSpeed = 120;
    }
    if (control == '2') {     // Скорость 2
      motorSpeed = 170;
    }
    if (control == '3') {     // Скорость 3.
      motorSpeed = 250;
    }
 
    /*********************** Направление ***********************/
    if (control == 'W') {      // Ехать вперёд.
      rightWheelForward ();
      leftWheelForward ();
    }
 
    if (control == 'S') {      // Ехать назад.
      rightWheelBack ();
      leftWheelBack ();
    }
 
    if (control == 'E') {      // Повернуть направо вперёд.
      rightWheelStop ();
      leftWheelForward ();
    }
 
    if (control == 'Q') {      // Повернуть налево вперёд.
      leftWheelStop ();
      rightWheelForward ();
    }
 
    if (control == 'D') {      // Повернуть направо назад.
      rightWheelStop ();
      leftWheelBack ();
    }
 
    if (control == 'A') {      // Повернуть налево назад.
      leftWheelStop ();
      rightWheelBack ();
    }
 
    if (control == 'P') {      // Остановиться.
      rightWheelStop ();
      leftWheelStop ();
    }
  }
}
 
/*********************** Функции колёс ***********************/
void rightWheelForward () {               // Правое колесо вперёд.
  digitalWrite (motorRight1, LOW);
  digitalWrite (motorRight2, HIGH);
  analogWrite(enableRight, motorSpeed);
}
 
void leftWheelForward () {                // Левое колесо вперёд.
  digitalWrite (motorLeft1, LOW);
  digitalWrite (motorLeft2, HIGH);
  analogWrite(enableLeft, motorSpeed);
}
 
void rightWheelBack () {                  // Правое колесо назад.
  digitalWrite (motorRight1, HIGH);
  digitalWrite (motorRight2, LOW);
  analogWrite(enableRight, motorSpeed);
}
 
void leftWheelBack () {                   // Левое колесо назад.
  digitalWrite (motorLeft1, HIGH);
  digitalWrite (motorLeft2, LOW);
  analogWrite(enableLeft, motorSpeed);
}
 
void rightWheelStop () {                  // Правое колесо остановить.
  digitalWrite (motorRight1, LOW);
  digitalWrite (motorRight2, LOW);
  analogWrite(enableRight, 0);
}
 
void leftWheelStop () {                   // Левое колесо остановить.
  digitalWrite (motorLeft1, LOW);
  digitalWrite (motorLeft2, LOW);
  analogWrite(enableLeft, 0);
}

Программа для управление с андроида

машинка_на_arduino.txt · Последнее изменение: 2021/01/28 21:24 — admin

Инструменты страницы