Автоматическое складывание зеркал автомобиля

Зеркала будут складываться при пропадании АСС и раскладываться при его появлении через N сек, где
N — это время, запрограммированное по желанию.
Реле потребуется с двумя группами контактов или придется вешать два реле параллельно.
Код для Arduino/Carduino/Freeduino выглядит следующим образом:
// http://pobot.ru
#include <EEPROM.h>
int ACC = 12;
int button = 2;
void setup()
{
pinMode(ACC, INPUT);
pinMode(button, OUTPUT);
}
void loop()
{
int value = EEPROM.read(0); // Прочитать статус до задержки
delay(5000); // задержка для того что бы не дергать зеркала лишний раз
if ((value==0) && (EEPROM.read(0)==0) && (digitalRead(ACC)==HIGH)) //если включен АСС и статус
{ // зеркала сложены то открыть зеркала
digitalWrite(button, HIGH); // нажать кнопку
delay(300); // длительность нажатия
digitalWrite(button, LOW); // отпустить кнопку
delay(100);
EEPROM.write(0, 255); // сохраняем статус зеркал 255=разложены
}
if ((value==255) && (EEPROM.read(0)==255) && (digitalRead(ACC)==LOW)) // если ACC выключен и статус зеркал
{ // разложены, то сложить зеркала
digitalWrite(button, HIGH); // нажать кнопку
delay(300); // длительность нажатия
digitalWrite(button, LOW); // отпустить кнопку
delay(100);
EEPROM.write(0, 0); // сохраняем статус зеркал 0=сложены
}
}
А это
схема складчика зеркала некоторых автомобилей с фиксируемой кнопкой:
P.S. Для зеркал с фиксируемой кнопкой самый простой способ использовать сигнал АСС без всяких контроллеров.
При включенном АСС реле коммутирует зеркала на управление кнопкой, то есть при включенном АСС зеркала принимают положение, заданное штатной кнопкой. При пропадании АСС контакты реле коммутируют зеркала на складывание. Контроллер можно применить, чтобы сделать паузу на запуск двигателя и раскладывание зеркал.
P.P.S. Управление зеркалами для тех автомобилей, у которых они складываются нажатием на не фиксируемую кнопку.
Схема используется из начала статьи.
// http://pobot.ru
#include <EEPROM.h>
int ACC = 12;
int button = 2;
void setup()
{
pinMode(ACC, INPUT);
pinMode(button, OUTPUT);
}
void loop()
{
int value = EEPROM.read(0); // Прочитать статус до задержки
delay(5000); // задержка для того что бы не дергать зеркала лишний раз
if ((value==0) && (EEPROM.read(0)==0) && (digitalRead(ACC)==HIGH)) //если включен АСС и статус
{ // зеркала сложены то открыть зеркала
digitalWrite(button, HIGH); // нажать кнопку
delay(300); // длительность нажатия
digitalWrite(button, LOW); // отпустить кнопку
delay(100);
EEPROM.write(0, 255); // сохраняем статус зеркал 255=разложены
}
if ((value==255) && (EEPROM.read(0)==255) && (digitalRead(ACC)==LOW)) // если ACC выключен и статус зеркал
{ // разложены, то сложить зеркала
digitalWrite(button, HIGH); // нажать кнопку
delay(300); // длительность нажатия
digitalWrite(button, LOW); // отпустить кнопку
delay(100);
EEPROM.write(0, 0); // сохраняем статус зеркал 0=сложены
}
}
compcar.ru
комментарии(0)
Комментировать