L298N, HC-05 Простой автомобиль с дистанционным управлением через Bluetooth, не работающий в Arduino
Тип платы Arduino, используемый в этом сеансе: Arduino Uno R3 DIP/SMD CH340
Ниже приведено описание проводки и кода в Arduino для сборки радиоуправляемой машины с Bluetooth с помощью смартфона Android:
- Проверено, что двигатель постоянного тока работает как колесо (может вращаться вперед и назад). питание напрямую от аккумулятора.
- Протестировано Bluetooth-модуль HC-05. Телефон может подключить модуль Bluetooth.
- Проверено out1 out2 out3 и out4 на L298N с использованием прямого питания от аккумулятора, когда колесо вращается (вперед и/или назад).
- Код для простого автомобиля Bluetooth rc, используемый ниже, как описано.
Автомобиль не смог двигаться (вперед, назад, повернуть налево/направо). как заставить двигатель постоянного тока или шаговый двигатель работать удаленно. спасибо
#включать SoftwareSerial mySerial(12, 13); // прием, передача #определить m1 3 #define м2 5 #определить м3 9 #define m4 10
int data=0,kec=0;
boolean forward=true;
int fast[11]={0,80,100,120,140,160,180,200,220,240,255};
void setup()
{
pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
mySerial.begin(9600);
}
void motorOut(unsigned char lpwm, unsigned char rpwm, boolean arrow){
if(arrow==false){
digitalWrite(m3,HIGH);
digitalWrite(m1,LOW);
analogWrite(m4,255-lpwm);
analogWrite(m2,rpwm);
}
else{
digitalWrite(m3,LOW);
digitalWrite(m1,HIGH);
analogWrite(m4,lpwm);
analogWrite(m2,255-rpwm);
}
}
void loop(){
if(mySerial.available()>0){
data=mySerial.read();
if (data =='0') { kec=0;}
else if (data =='1') { kec=1;}
else if (data =='2') { kec=2;}
else if (data =='3') { kec=3;}
else if (data =='4') { kec=4;}
else if (data =='5') { kec=5;}
else if (data =='6') { kec=6;}
else if (data =='7') { kec=7;}
else if (data =='8') { kec=8;}
else if (data =='9') { kec=9;}
else if (data =='q') {kec=10;}
//S= Стоп
if (data == 'S')
{ motorOut(0,0,false); }
//F=Вперед
if (data=='F')
{ motorOut(fast[kec],fast[kec],true); }
//I=повернуть направо вперед
if (data=='I')
{ motorOut(fast[kec],((fast[kec])/2),true);}
//G=поворот налево вперед
if (data=='G')
{ motorOut(((fast[kec])/2),fast[kec],true); }
//R=повернуть направо
if(data=='R')
{ motorOut(fast[kec],0,true); }
//L=повернуть налево
if(data=='L')
{ motorOut(0,fast[kec],true); }
//Б=назад
if(data=='B')
{ motorOut(fast[kec],fast[kec],false); }
//H=повернуть налево назад
if (data=='H')
{ motorOut(((fast[kec])/2),fast[kec],false); }
//повернуть направо назад
if (data=='J')
{ motorOut(fast[kec],((fast[kec])/2),false); }
}
}
@user47938, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ -1
извините за мою невнимательность. наконец-то все работает.... основная проблема связана с неправильным назначением контакта.... должны быть IN1, IN2, IN4 и IN3, а не IN1, IN2, IN3 и IN4. спасибо всем за помощь раньше
,
@user47938
Смотрите также:
- L298N Dual Motor Controller Enable Pin имеет питание, но двигатели не работают
- L298N издает звуковые сигналы и дает сбой при получении определенных значений AnalogWrite
- Как использовать отдельный источник питания для Arduino и двигателей
- Могу ли я проверить, почему мой двигатель не работает?
- Как узнать состояние двигателя постоянного тока включен он или выключен
- Драйвер L298n с Arduino с 2 моторами работает
- 4 батареи типа АА (6 В) питают мой Arduino
- Проблема начинающего с двигателем постоянного тока
ты забыл задать вопрос, @jsotola
какие тесты ты сдавал?, @jsotola
Вместо того, чтобы писать множество операторов
if
-else if
, используйте простойswitch(data){case '0':
, @chrislКакие данные отправляются в mySerial? Можете ли вы подтвердить, что действительно получены правильные данные? Возможно, повторим это обратно к источнику. Если это не работает, значит, ваше последовательное соединение не работает (возможно, потому, что HC-05 на самом деле не подключен). Если работает, попробуйте завести двигатель через драйвер, подключив соответствующие контакты к 5В. Если это не помогло, значит подключение драйвера неправильное. Вместо фотографий желательно предоставить схему., @chrisl
ничего не отображало данные с последовательного монитора. HC-05, зеленый значок индикатора на телефоне Android (успешное подключение к автомобилю). L298N, двигатель заработает после того, как я подаю питание на контакт 5 и массу. батарейка 4 х 1,2 щелочная или 9В, @user47938