Просто и быстро собираем Bleutooth машинку с двумя моторчиками на Arduino. Рекомендуем использовать нашу гусеничную платформу.
Нам необходимо:
Схема может и выглядит сложной, но на деле все собирается буквально за пару минут.
HC-05:
L298N:
1 двигатель:
2 двигатель:
Во время записи скетча не забудьте отключить 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); }