ARDUINO автозапуск AVTO Bluetooth

avrufo

✩✩✩✩✩✩✩
5 Мар 2026
0
0
Оформи код соответствующим тэгом, см. Правила
Arduino можно реализовать автозапуск автомобиля с функцией запрета стартера при снятом ручнике.

Arduino можно реализовать И ДОПОЛНИТЬ автозапуск автомобиля с функцией запрета стартера при снятом ручнике мне не асилить скейчь прилагаю.

////////////////////////////////////////////////////////////////////////
//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(3, 2); // RX, TX

//Выходы
#define SIGNAL 2 //Сигнал (сирена)
#define LOCKED 3 //Замки на закрытие (выход на реле)
#define OPEN 4 //Замки на открытие (выход на реле)
#define TURN_SIGNALS 5 //Поворотники
#define START_ENGINE 12 //Запуск двигателя
#define IGNITION 13 //Включение зажигания

//Входы
#define BUTTON_LEFT_FR 6 //Концевик левой передней двери
#define BUTTON_RIGHT_FR 6 //Концевик правой передней двери
#define BUTTON_LEFT_RR 8 //Концевик левой задней двери
#define BUTTON_RIGHT_RR 8 //Концевик правой задней двери
#define BUTTON_HOOD 10 //Концевик капота
#define BUTTON_TRUNK 10 //Концевик багажника

//Состояние сигнализации
boolean signal_state = 0; // 0 - сигнализация выкл. 1 - сигнализация вкл.
boolean eng_flag = 0;
boolean signal_flag = 0;

//Данные с телефона
int data;

void setup() {
//Выходы
pinMode(SIGNAL, OUTPUT);
pinMode(LOCKED, OUTPUT);
pinMode(OPEN, OUTPUT);
pinMode(TURN_SIGNALS, OUTPUT);
pinMode(START_ENGINE, OUTPUT);
pinMode(IGNITION, OUTPUT);

//Входы
pinMode(BUTTON_LEFT_FR, INPUT_PULLUP);
pinMode(BUTTON_RIGHT_FR, INPUT_PULLUP);
pinMode(BUTTON_LEFT_RR, INPUT_PULLUP);
pinMode(BUTTON_RIGHT_RR, INPUT_PULLUP);
pinMode(BUTTON_HOOD, INPUT_PULLUP);
pinMode(BUTTON_TRUNK, INPUT_PULLUP);
// Настройка BLUETOOTH
Serial.begin(38400);
}
void loop()

{
if (signal_state == 1) {
//Концевики дверей (если хоть одна дверь открыта, срабатывает реле на сирену)
if (!digitalRead(BUTTON_LEFT_FR) == LOW || !digitalRead(BUTTON_RIGHT_FR) == LOW || !digitalRead(BUTTON_LEFT_RR) == LOW || !digitalRead(BUTTON_RIGHT_RR) == LOW) { Alarm();
}
//Концевик капота и багажника (если открыт капот или багажник, срабатывает реле на сирену)
if (!digitalRead(BUTTON_HOOD) == LOW || !digitalRead(BUTTON_TRUNK) == LOW) {
Alarm();
}
} else if(signal_state == 0){ //Выключили сигнализацию если она была снята с охраны
digitalWrite(SIGNAL, LOW);
Serial.println("0");
delay(800);
}
//Приём данных с телефона
if(Serial.available()){ //Если в порт что-то поступило делаем...
data = Serial.read(); //Если данные пришли сохраняем их в переменную
if(data == '1') { //Если пришла 1 то ставим сигнализацию в режим охраны и закрываем замки дверей
signal_state = 1;
digitalWrite(TURN_SIGNALS, HIGH);
delay(800);
digitalWrite(TURN_SIGNALS, LOW);
delay(800);
// закрываем замки
digitalWrite(LOCKED, HIGH);
delay(150);
digitalWrite(LOCKED, LOW);
}
if(data == '2'){ //Если пришла 2 то сниаем сигнализацию с режима охраны и открываем двери
signal_state = 0;
digitalWrite(TURN_SIGNALS, HIGH);
delay(400);
digitalWrite(TURN_SIGNALS, LOW);
delay(400);
// открываем замки
digitalWrite(OPEN, HIGH);
delay(150);
digitalWrite(OPEN, LOW);
// повторяем маргать поваротами.
digitalWrite(TURN_SIGNALS, HIGH);
delay(400);
digitalWrite(TURN_SIGNALS, LOW);
delay(400);
digitalWrite(TURN_SIGNALS, HIGH);
delay(400);
digitalWrite(TURN_SIGNALS, LOW);


}
if(data == '3'){ //Если пришла 3 то включаем зажигание, если оно было уже включено то выключаем его
if(eng_flag == 0) {
digitalWrite(IGNITION, HIGH);
} else {
digitalWrite(IGNITION, LOW);
}
eng_flag = !eng_flag;
}
if(data == '4') { //Если пришла 4 то запускаем двигатель
if(eng_flag == 1){
digitalWrite(START_ENGINE, HIGH);
delay(1500);
digitalWrite(START_ENGINE, LOW);
}
if(eng_flag == 0){
digitalWrite(START_ENGINE, LOW);
}
}
}

//Обратная связь
if(!digitalRead(BUTTON_LEFT_FR) == LOW || !digitalRead(BUTTON_RIGHT_FR) == LOW){
Serial.println("5");
delay(800);
}
if(!digitalRead(BUTTON_LEFT_RR) == LOW || !digitalRead(BUTTON_RIGHT_RR) == LOW){
Serial.println("6");
delay(800);
}
if(!digitalRead(BUTTON_HOOD) == LOW){
Serial.println("7");
delay(800);
}
if(!digitalRead(BUTTON_TRUNK) == LOW){
Serial.println("8");
delay(800);
}
}

//Функция срабатывания сигнализации
void Alarm() {
digitalWrite(SIGNAL, HIGH);
Serial.println("9");
delay(800);
}

на самой ардуино порт pin D7 подключ на ручник у меня .