Bluetooth машина android
- Войдите на сайт для отправки комментариев
Вс, 02/12/2018 - 21:45
Добрый вечер. Нашел интересное приложение для управления машинкой Arduino Bluetooth RC Car. С нескольких скетчей собрал один. Фары и скорость работают хорошо. Помогите допилить скетч что бы аварийка моргала а лучше добавить еще один пин и при включении аварийки они поочередно включались.
[code]
//Ошибки таблица кодов: код 01; радиус поворота выше, чем скорость; код 02; скорость выше, чем 255;
#define in1 5 //L298n
#define in2 6
#define in3 10
#define in4 11
#define LED2 2 //Фары
#define LED3 3
#define LED4 4 //Динамик
#define LED13 13 //Аварийка
int command; //Int для сохранения состояния команды приложения.
int Speed = 204; // 0 - 255.
int Speedsec;
int buttonState = 0;
int lastButtonState = 0;
int Turnradius = 0; //Установите радиус поворота, 0-255 Примечание: робот не будет работать, если это выше скорости int.
int brakeTime = 45;
int brkonoff = 1; //1 для электронной тормозной системы, 0 для нормальной.
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED13, OUTPUT);
Serial.begin(9600); //Установите скорость передачи данных для модуля Bluetooth
}
void loop() {
if (Serial.available() > 0) {
command = Serial.read();
Stop(); //Инициализация при остановленных двигателях.
switch (command) {
case 'W': //Перед ON
digitalWrite(LED2, HIGH);
break;
case 'w': //Перед OFF
digitalWrite(LED2, LOW);
break;
case 'U': //Зад ON
digitalWrite(LED3, HIGH);
break;
case 'u': //Зад OFF
digitalWrite(LED3, LOW);
break;
case 'X': //Аварийка ON
digitalWrite(LED13, HIGH);
break;
case 'x': //Аварийка OFF
digitalWrite(LED13, LOW);
break;
case 'V': //Звук ON
digitalWrite(LED4, HIGH);
break;
case 'v': //Звук OFF
digitalWrite(LED4, LOW);
break;
case 'F':
forward();
break;
case 'B':
back();
break;
case 'L':
left();
break;
case 'R':
right();
break;
case 'G':
forwardleft();
break;
case 'I':
forwardright();
break;
case 'H':
backleft();
break;
case 'J':
backright();
break;
case '0':
Speed = 100;
break;
case '1':
Speed = 140;
break;
case '2':
Speed = 153;
break;
case '3':
Speed = 165;
break;
case '4':
Speed = 178;
break;
case '5':
Speed = 191;
break;
case '6':
Speed = 204;
break;
case '7':
Speed = 216;
break;
case '8':
Speed = 229;
break;
case '9':
Speed = 242;
break;
case 'q':
Speed = 255;
break;
}
Speedsec = Turnradius;
if (brkonoff == 1) {
brakeOn();
} else {
brakeOff();
}
}
}
void forward() {
analogWrite(in1, Speed);
analogWrite(in3, Speed);
}
void back() {
analogWrite(in2, Speed);
analogWrite(in4, Speed);
}
void left() {
analogWrite(in3, Speed);
analogWrite(in2, Speed);
}
void right() {
analogWrite(in4, Speed);
analogWrite(in1, Speed);
}
void forwardleft() {
analogWrite(in1, Speedsec);
analogWrite(in3, Speed);
}
void forwardright() {
analogWrite(in1, Speed);
analogWrite(in3, Speedsec);
}
void backright() {
analogWrite(in2, Speed);
analogWrite(in4, Speedsec);
}
void backleft() {
analogWrite(in2, Speedsec);
analogWrite(in4, Speed);
}
void Stop() {
analogWrite(in1, 0);
analogWrite(in2, 0);
analogWrite(in3, 0);
analogWrite(in4, 0);
}
void brakeOn() {
//Here's the future use: an electronic braking system!
// read the pushbutton input pin:
buttonState = command;
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == 'S') {
if (lastButtonState != buttonState) {
digitalWrite(in1, HIGH);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
delay(brakeTime);
Stop();
}
}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState;
}
}
void brakeOff() {
}
[/code]
Помогите допилить скетч что бы аварийка моргала
Как можно помочь тому, кто ничего не делает? Где Ваша попытка (пусть неудачная) заставить её моргать? В каких строках? Я не нашёл.
Тут не выкладывал попытки. Да и плата перестала работать, на этой неделе придет плата и продолжу
Ну, вот когда соберётесь, тогда и поговорим.