По схеме, так подключить?
Вложение 17478
Вид для печати
По схеме, так подключить?
Вложение 17478
ясно ну можно тогда зажигание и старт а асс кинуть на вкл магнитолы и прикуривателя как вариант :)
мне на АСС нужны прикуриватель(хотя я не курю), магнитолу и стеклоподьемники. А схему я правильно на рисовал??
да правильно,есть вариант заводить только после кодового ввода я фото выкидывал ,тоже интересная штука будет.Стекло подъемники можно одним проводом к асс подключить там в модуле прям по центру в самом верхнем ряду идет реле, отрезать провод который идет на 86 ногу в штатной проводке и подключить к выходу асс и все .Вопрос еще ты кнопку нашел?
а можно более детальную схему подключения&в частности к самой arduino
А что же тут может быть подробнее,все выходы расписаны в скетче :).Что не понятно спроси ответим .
Это оптимальный вариант
http://www.a-pik.ru/catalog/moduli_s...e_start_knopka
Можно еще на eBay посмотреть
http://www.ebay.com/sch/i.html?_saca...&_skc=50&rt=nc
11 контакт на МК arduino - выход на режим АССPHP код:
byte ACCPin = 11; //Выход на транзистор переферии ACC
byte EnginePin = 10; //Выход на транзистор зажигания
byte StarterPin = 9; //Выход на транзистор стартера
byte ButtonPin = 8; //Вход + с кнопки <----------------------------- Стягивающий резистор на "-"
byte StopPin = 12; //Вход с тормоза <----------------------------- Стягивающий резистор на "-"
byte ImmoPin = 7; //Вход с иммо <----------------------------- Подтягивающий резистор на "+"
byte TahoPin = 6; //Вход с тахометра <----------------------------- Стягивающий резистор на "-"
10 контакт - выход на зажигание
9 контакт - выход на стартер
8 контакт - вход с кнопки
12 контакт - вход с тормозов
и тогдалее
Привет вот еще есть классный вариант кнопки http://www.svetodiod96.ru/ishop/knop...-stop_498.html
Ребята если кто скачал прогу извините я там в коде ошибку допустил которая мешает экстренному отключению программы по нажатию кнопки вот исправленный код :PHP код:
byte ACCPin = 11; //Выход на транзистор переферии ACC
byte EnginePin = 10; //Выход на транзистор зажигания
byte StarterPin = 9; //Выход на транзистор стартера
byte ButtonPin = 8; //Вход + с кнопки <----------------------------- Стягивающий резистор на "-"
byte StopPin = 12; //Вход с тормоза <----------------------------- Стягивающий резистор на "-"
byte ImmoPin = 7; //Вход с иммо <----------------------------- Подтягивающий резистор на "+"
byte TahoPin = 6; //Вход с тахометра <----------------------------- Стягивающий резистор на "-"
byte WordsPin = 5; //Выход на глазок 1
byte YellowGlazokPin = 4; //Выход на глазок 2
byte GreenGlazokPin = 3; //Выход на глазок 3
byte statusEngine = 0;
byte sw = 2;
//byte rotate = 0;
unsigned int rotate=0;
boolean stateACC = false;
unsigned long lastPress = 0;
unsigned long lastImmo = 0;
unsigned long splitTime = 0;
unsigned long time =0;
byte stat = 0;
void setup()
{
pinMode(sw,INPUT);
pinMode(EnginePin, OUTPUT);
pinMode(StarterPin, OUTPUT);
pinMode(ACCPin, OUTPUT);
pinMode(WordsPin, OUTPUT);
pinMode(YellowGlazokPin, OUTPUT);
pinMode(GreenGlazokPin, OUTPUT);
//time = 0;
lastImmo=millis();
lastPress=millis();
Serial.begin(9600);
Serial.println("Arduino is started");
}
// 0 - Все выключенно
// 1 - Включено только зажигание
// 2 - Крутиться стартер, ждем оборотов
// 3 - Двигатель работает, все включено
// 4 - Неудачная попытка запуска, включено только зажигание
// 5 - Двигатель заглушен, АСС пока еще работает
void loop()
{
if (stat != statusEngine) {stat = statusEngine;
Serial.println(stat);
}
unsigned long newTime = millis() - lastPress;
unsigned int button = pressButton();
if (button != 0) Serial.println(button);
lastImmoTest();
switch (statusEngine)
{
case 0:
digitalWrite(GreenGlazokPin, LOW);
if (stateACC) digitalWrite(YellowGlazokPin, HIGH);
else digitalWrite(YellowGlazokPin, LOW);
if (millis() - lastImmo > 10000) digitalWrite(WordsPin, HIGH);
else digitalWrite(WordsPin, LOW);
if (button == 1500 && stateACC)
{
StopAll();
}
else if (button == 1500 && !stateACC) StartACC();
else if (button != 0 && millis() - lastImmo > 2000 && newTime > 500) {
StartEngine();
statusEngine=1;
}
break;
//----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
case 1:
if (digitalRead(ImmoPin) == LOW) StopAll();
digitalWrite(WordsPin, HIGH);
if (stateACC) digitalWrite(YellowGlazokPin, HIGH); else digitalWrite(YellowGlazokPin, LOW);
if (millis() - lastImmo > 2000 && StopIsPress() && newTime < 900)
{
digitalWrite(GreenGlazokPin, HIGH);
digitalWrite(WordsPin, HIGH);
}
else
{
digitalWrite(GreenGlazokPin,!digitalRead(GreenGlazokPin));
delay(100);
}
if (button == 1500) {
StopAll();
}
else if (button != 0 && newTime > 500) {
if (!stateACC)
StopAll();
else
{StopEngine();
statusEngine=5;
}
}
else if (newTime > 9000 && newTime < 9100 && StopIsPress())//задержка на 9 секунд тут она не мешает основному циклу если нужна другая просто меняйте
{
StartStarter();
statusEngine=2;
}
break;
//----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
case 2:
digitalWrite(WordsPin, HIGH);
digitalWrite(GreenGlazokPin, HIGH);
if (stateACC) digitalWrite(YellowGlazokPin, HIGH);
if (digitalRead(TahoPin) == HIGH) {
rotate++;
while (digitalRead(TahoPin) == HIGH) if (digitalRead(ImmoPin) == LOW) {StopAll(); break;}
}
if (rotate>=2)
{
unsigned int rpm = (rotate*60000*10000/2)/(micros()-splitTime);
Serial.print("rpm: ");
Serial.println(rpm);
rotate=0;
splitTime=micros();
if (rpm>1000) { //<-------ВЕРНУТЬ СЮДА ТЫЩУ!!!! <-------
StopStarter();
StartACC();
statusEngine=3;
Serial.println("Engine is WORK!!");
break;
}
}
if (button != 0 && newTime > 500) {
StopAll();
}
else if (newTime > 5000 || !StopIsPress()){
StopStarter();
statusEngine=4;
}
break;
//----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
case 3:
digitalWrite(GreenGlazokPin, HIGH);
digitalWrite(YellowGlazokPin, LOW);
if (newTime > 5000) digitalWrite(WordsPin, LOW);
else digitalWrite(WordsPin, HIGH);
if (button == 1500) {
StopAll();
}
else if (button != 0 && newTime > 500) {
StopEngine();
statusEngine=5;
}
break;
//----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
case 4:
digitalWrite(WordsPin, HIGH);
digitalWrite(GreenGlazokPin, !digitalRead(GreenGlazokPin)); delay(50);
digitalWrite(YellowGlazokPin, LOW);
if (button == 1500 || newTime > 10000) {
StopAll();
}
else if (button != 0 && newTime > 500 && StopIsPress()) {
StartStarter();
statusEngine=2;
}
else if (button != 0 && newTime > 500 && !StopIsPress()) {
StopAll();
}
break;
//----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
case 5:
digitalWrite(GreenGlazokPin, LOW);
if (stateACC) digitalWrite(YellowGlazokPin, HIGH); else digitalWrite(YellowGlazokPin, LOW);
if (newTime > 5000)
{
if (millis() - lastImmo > 5000) digitalWrite(WordsPin, HIGH); else digitalWrite(WordsPin, LOW);
}
else
digitalWrite(WordsPin, HIGH);
if (button == 1500) {
StopAll();
}
else if (millis() - lastImmo < 2000) StopAll();
else if (button != 0 && newTime > 500) {
StartEngine();
statusEngine=1;
}
lastImmoTest();
break;
//----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
}
}
void StartEngine(){
digitalWrite(EnginePin, HIGH);
Serial.println("Engine is ON");
lastPress=millis();
}
void StopEngine(){
digitalWrite(EnginePin, LOW);
Serial.println("Engine is OFF");
lastPress=millis();
}
void StopAll(){
digitalWrite(EnginePin, LOW);
digitalWrite(StarterPin, LOW);
digitalWrite(ACCPin, LOW);
Serial.println("All OFF");
while (!digitalRead(ButtonPin)){}
stateACC=false;
lastPress=millis();
statusEngine=0;
lastPress=millis();
}
void StartStarter(){
digitalWrite(StarterPin, HIGH);
Serial.println("Starter START!");
splitTime=micros();
lastPress=millis();
}
void StopStarter(){
digitalWrite(StarterPin, LOW);
Serial.println("Starter if OFF!");
lastPress=millis();
}
void StartACC(){
digitalWrite(ACCPin, HIGH);
Serial.println("Starter ACC!");
stateACC=true;
lastPress=millis();
}
void lastImmoTest(){
if (digitalRead(ImmoPin) == LOW) { //<----------------------------- Поменял на LOW
lastImmo=millis();
Serial.println("Immo+");
}
}
unsigned int pressButton(){
unsigned long newTime = millis();
boolean currentPosition = digitalRead(ButtonPin);
if (currentPosition == HIGH){
delay(50);
currentPosition=digitalRead(ButtonPin);
}
while (!currentPosition) {
currentPosition=digitalRead(ButtonPin);
if (millis() - newTime > 1000) return 1500;
}
newTime=millis() - newTime;
if (newTime < 60) newTime = 0;
return newTime;
}
boolean StopIsPress(){
return digitalRead(StopPin);
}
Это делитель напряжения, главное чтоб на вход ардуины не попало более 5.5в при лог входе = 1 но не менее 3.2 в. я еще в схему добавил стабилитроны случай всякий бывает :).
А как ты стабилитроны подключал?
Лучше использовать оптроны
Здравствуйте форумчане. Скажите, Собрал я схему. Вроде все нормально но стартер не крутит зажигание включается минут пять работает потом выключается. При длительном нажатии кнопки ACC включается. Но почему стартер не крутит? Подключал следующим образом. Тахометр на панель низковольтный стягивающий резистор на 2.2кОм. Тормоз на +12 через 2.2кОм и стягивающий резистор тоже 2.2кОм. Кнопка на массу подтягивающий резистор 2.2кОм на 5в. Иммобилайзер на массе через подтягивающий 2.2кОм. Реле работают через транзисторы кт972а. Маленькие 5 амперные которые управляют 20 и 40 амперными.
Здравствуйте друзья. Вообщем победил проблему с запуском. Был брак резистора. Машина заводится отлично. Без прокрутки стартера. Но не работает тахометр. А с ключа все ок. Может у кого такое было? И что сделали что б был сигнал на плату и тахометр работал. Вот кстати фото моей платы.
А какой уровень сигнала с выхода тахометра?
напряжение пляшет от 3.79v до 3.87v
подключил осциллограф показания следуэдик: напряжение в спокойствие 0.35в напряжение холостой ход от 2.81- 5.81. обороты от 2.81- 7.53. Частота Гц холостой ход 27.7 при оборотах повышается до 200 дальше не пробовал. период в м.с холостой ход 35.5 при оборотах падает
При неподвижном автомобиле?
В сообщении 60 я все описал.Спасибо что откликнулись!
Да еще сейчас заметил что не работает электро усилитель руля. В схеме я так понял он завязан с оборотами и датчиком скорости. А\м лада калина.
Без платы
думаю, следует повторить измерения с уже подключенной платой. есть предположение, что уровень будет отличаться, отсюда нерабочий тахометр и ЭУР. для подключения входа тахометра все таки правильнее использовать оптопару, либо хотя бы диод (анод к ардуино, катод к тахометру, ногу ардуино подтянуть к питанию).
спасибо Вам скажите а какой лучше номер оптопары использовать
я бы начал с замера уровня с подключенной платой. устройство собрано по схеме из 41 поста? тогда изменяя делитель на входе тахометра по идее можно добиться работоспособности. а оптопары практически любые. я использовал для подобных задач pc817 и ild207.
Спасибо manu 245 все отлично заработало. Правда обошелся пока диодом и подтягивающим резистором. Вообщем пока все устраивает. Еще раз спасибо.
Здравствуйте господа. Я новичек в программировании. Делай(мучаюсь) проект кнопка в автомобиль Start-Stop. Принцип работы моей кнопки такой:
<РУЧНОЙ РЕЖИМ> Тормоз не нажат: 1. Первое нажатие кнопки ВКЛ -> ACC, 2. Второе нажатие ВКЛ -> ING1,ING2(Зажигание1,Зажигание2). НО: Если нажать(держать) педаль тормоза, нажать и держать кнопку то стартер включается и работает до тех пор, пока не отпустишь кнопку или педаль. 3. Третье нажатие ВЫКЛ -> ALL OFF. <АВТОМАТИЧЕСКИЙ РЕЖИМ> 1.Тормоз нажат(держать), 2. Нажимаем кнопку один раз и бросаем ее(обычное нажатие и отпускание кнопки), ВКЛ -> ING1,ING2, пауза в 2секунды, ВКЛ -> Стартер. Когда движок завелся, отключаем стартер, ВКЛ -> ACC. отключение стартера по лампе(сигналу) генератора(тахометр мне не нужен!). 3. При запущенном движке нажимаем кнопку(без педали) глушим и ВЫКЛ -> ВСЕ. Вот такой алгоритм мой. Причина моего вопроса в чем: Код работает, но работает только автоматический запуск правильно, а ручной на половину. т.е. Ручной работает так, ACC и ING1,ING2 - все правильно, а запуск стартера берет из автоматического режима!? Посмотрите что не так в этом коде, что не хватает, чтоб работало как я описал в самом начале? Код на следующей странице
Забыл код добавить. Вот он:
/* Запуск двигателя автомобиля от кнопки "Start-Stop"*/
int ledzel=2; // светодиод зеленый (ACC)
int ledzol=3; // светодиод желтый (зажигание)
int ledred=4; // светодиод красный двс заведен
int regim=1; // переменная для выбора нескольких режимов, типа что то выбора меню
int flag=0; // переменная состояния нажатия или отжатия кнопки
//-------------- для выполнения какого либо действия по истечению заданого времени после нажатия кнопки ---------------
//int valBut=0; // задаем переменную для счетчика
//long previousMillis=0; // зададим начальное значение счетчика millis
//long TimePush=200; // время нажатия на кнопку 500= 8секунд
//---------------------------------------------------------------------------------------------------------------------
//---------------мигание светодиода красного--------------------------------
int previousMillis1=0;
int interval1=40;
//--------------------------------------------------------------------------
//--------------- задержка для включеня стартера и ACC ---------------------
int previousMillis2=0;
int interval2=50;
//--------------------------------------------------------------------------
void setup()
{
pinMode(2, OUTPUT); // Светодиод статуса зеленый
pinMode(3, OUTPUT); // Светодиод статуса желтый
pinMode(4, OUTPUT); // Светодиод статуса красный
pinMode(6, INPUT); // Вход button (кнопка start-stop)(-)
pinMode(7, INPUT); // Вход педаль тормоза (+12V)
pinMode(8, INPUT); // Вход сигнал генератора (+)
pinMode(9, OUTPUT); // Выход ACC (Акссесуары)(+)
pinMode(10, OUTPUT); // Выход ING 1 (зажигание)(+)
pinMode(11, OUTPUT); // Выход ING 2 (зажигание)(+)
pinMode(12, OUTPUT); // Выход STARTER (стартер)(+)
}
//=============================== Начало основного кода программы ================================================== ===============
void loop()
{
/***** Сам код программы Авто и Ручного пуска ДВС *****/
if(digitalRead(6)==HIGH&&flag==0) // если кнопка нажата и переменная flag равна 0, то ....
{
if(digitalRead(7)==LOW) // "ТОРМОЗ" НЕ НАЖАТ
{
regim++; // это нужно для того что бы с каждым нажатием кнопки
flag=1; // происходило только одно действие
// плюс защита от дребезга 100%
if(regim>3) // ограничим количество режимов
{
regim=1; // так как мы используем только одну кнопку,
// то переключать режимы будем циклично
}
}
}
//================================ Режим Автопуска ДВС ================================================== =
if(digitalRead(7)==HIGH&&digitalRead(3)==LOW) // если тормоз нажат и светодиод желтый не горит, то ...
{
statusredmig(); // мигание светодиода во время прокрутки стартера
start(); // включаем автопуск
regim=0; // обнуляем все режимы(отключаем ручной запуск)
}
//================================================== ================================================== ====
if(digitalRead(6)==LOW&&flag==1) // проверяем нажата ли кнопка если да, то ... см.ниже
{
flag=0; // обнуляем переменную "кнопка"
}
if(regim==1) // первый режим
{
digitalWrite(9,LOW); // выключаем ACC
digitalWrite(10,LOW); // выключаем ING 1
digitalWrite(11,LOW); // выключаем ING 2
digitalWrite(12,LOW); // выключаем STARTER
digitalWrite(3,LOW); // выключить светодиод желтый
digitalWrite(4,LOW); // выключить светодиод красный
// ВСЕ ВЫКЛЮЧАЕМ
}
if(regim==2) // второй режим
{
digitalWrite(9,HIGH); // включаем ACC
}
if(regim==3) // третий режим
{
digitalWrite(10,HIGH); // включаем ING 1
digitalWrite(11,HIGH); // включаем ING 2
digitalWrite(3,HIGH); // включаем желтый светодиод
if(digitalRead(6)==HIGH&&digitalRead(3)==HIGH&&dig italRead(7)==HIGH&digitalRead(8)==LOW&flag==0) // если нажата кнопка, нажат "ТОРМОЗ",
{
digitalWrite(12,HIGH); // включаем стартер
digitalWrite(9,LOW); // выключаем ACC
}
if(digitalRead(6)==LOW) // проверяем отпушенна ли кнопка
{
digitalWrite(12,LOW); // выключаем STARTER
digitalWrite(9,HIGH); // включаем ACC
}
}
/***** Конец кода программы Авто и Ручного пуска ДВС *****/
//====================================== Конец основного кода программы ================================================== ======
}
// ----------------------- Подпрограмма Автопуска ДВС, в одно касание кнопки -1----------------------------------------------
void start() // Подпрограмма запуска ДВС
{
if(digitalRead(6)==HIGH) // если кнопка нажата, то ....
{
digitalWrite(9,LOW); // выключаем acc
digitalWrite(10,HIGH); // включаем ing 1
digitalWrite(11,HIGH); // включаем ing 2
delay(50); // задержка перед пуском стартера
digitalWrite(12,HIGH); // включаем STARTER
}
if(digitalRead(8)==HIGH||digitalRead(7)==LOW) // если есть сигнал с генератор(+12V) или отпущенн тормоз
{
digitalWrite(12,LOW); // выключаем стартер
digitalWrite(ledred, HIGH); // включаем красный светодиод
// delay(50); // задержка на включение ACC
digitalWrite(9,HIGH); // включить ACC
}
}
//----------------------------------------------------------------------------1------------------------------------------
//------------------------------------------------2-----------------------------------------------------------------------
/***** Подпрограмма для сработки кнопки или от чего нибудь,через заданное время *****/
/** void pushtime()
{
if(digitalRead(7)==HIGH) // если педаль или кнопка или что то нажато-включенно, то
{
if(millis()-previousMillis>=1)//&&digitalRead(6)==HIGH) // начинаем считать время нажатия
{
previousMillis=millis();
valBut++; // с каждой милисекундой увеличиваем значение valBut
}
}
else // если кнопку отпустили, то valBut становится равным 0
{ // это необходимо для защиты от срабатывания при частых
// и многократных нажатиях
valBut=0;
}
if(valBut>=TimePush) // как только значение valLed становиться равным TimtPush
{
regim=0;
// upr(); // запускаем третий режим, т.е. включаем зажигание
valBut=0; // устанавливаем valBut=0
}
} **/
//------------------------------------------------2------------------------------------------------------------------------
//-------------------------------Подпрограмма мигания красного светодиода в автопуске ----3--------------------------------
void statusredmig()
{
unsigned long currentMillis=millis();
if(currentMillis-previousMillis1>interval1&&digitalRead(7)==HIGH)
{
// сохраняем время последнго переключения
previousMillis1=currentMillis;
// если светодиод не горит, то зажигаем и наоборот
if(digitalRead(4)==LOW)
digitalWrite(4,HIGH); // включаем светодиод
else
digitalWrite(4,LOW); // выключаем светодиод
}
}
//---------------------------------------------------------------------------------------3---------------------------------
Добрый вечер. Господа подскажите что не так сделал в этом коде. Голова уже не соображает что нужно.
А может не стоит включать одновременно ING1 и ING2 ? Они ведь не просто так разделены - на первом зажигании как правило подключено всё что относится к запуску и работе двигателя, а на втором вспомогательное оборудование, когда запуск управляется ключом зажигания то при переводе ключа в режим "зажигание включено" запитываются обе линии зажигания, а во время перевода ключа в режим старта вторая линия зажигания отключается, питание идёт только на первую линию зажигания двигателя и на стартер. Моя кнопка тоже включает сразу обе линии и держит их включенными всё время. Летом всё хорошо было, а вот зимой вроде бы незначительное отключение второй линии при старте оказалось очень нужной штукой. Оказалось что на второй линии в моей машине висит климатическая установка, основные и противотуманные фары, и обогревы всего что греется. Всё это штатное оборудование и вот что получается зимой - при нажатии на кнопку включаются обе линии зажигания, запускается климат очень прожорливая вещь, включается подогрев сидений тоже очень энергоёмкая штука, автоматика включает все освещение которое есть, потому как на улице зима и с утра темно ещё датчик света запускает габариты и головной свет, а потому как зажигание включено запускаются противотуманки в режиме ходовых огней - нагрузка реально очень серьёзная, а двигатель ещё даже не запустился, вот и получается пока насос отработает и система перейдёт к запуску двигателя вспомогательное оборудование высосет из аккумулятора последние остатки смёрзшейся за ночь энергии. И двигателю на запуск остатков энергии уже далеко не всегда хватает.
Промучившись с такой ерундой пол зимы решил что система не должна включать вторую линии зажигания вообще пока не поймёт что двигатель запустился и стабильно работает.
То есть алгоритм запуска должен быть следующим: при нажатии на тормоз и кнопку - включение ING1,включение аксессуаров, задержка 3 сек на инициализацию электроники и насос, включение стартера, подтверждение запуска двигателя, отключение стартера, задержка скажем 3 сек, включение IGN2.
Все здрасте(Здравствуйте). YraY, я Вас понял к чему Вы клоните. У меня была Шкода Фабия там как и у Вас ING1 и ING2 разделены. Но на Хендай Гетц оно совмещено. Но дело(проблема) у меня была не в этом, а в том как разделить Авто и Ручной запуск. Все таки посидев поломав голову, две ночки допенькал свою проблему. теперь все как надо! сейчас мелкие добавочки сделаю. А про то что раздельно ING1 и ING2, это вообще не проблема добавить или удалить строчки в нужных местах, по этому я не заострял внимание на них(ING1 и ING2).У меня много проектов по старт-стоп, да и не только старт- стоп, но именно тот алгоритм мне нужен из поста #70.
Расскажите что значит "разделить Авто и Ручной запуск" ?
Для меня есть ещё необходимость заложить в кнопку алгоритм распознавания автозапуска с сигнализации, кнопка должна перед включением стартера проверять не работает ли двигатель уже и если двигатель уже запущен например сигнализацией то пропускать включение стартера.
Доброй ночи всем.
YraY. Я незнаю, может я просто плохо изъясняю свои мысли или думаю правильно, а пишу криво.Попробую Вам рассказать так. С завода на шкоде стояла кнопка Старт-Стоп, алгоритм именно как в моем посте #70.Когда продал шкоду, решил сделать также как на шкоде, НО немного доработать, так как меня не устраивало что кнопка(штатная) уходила в аварийный режим(т.е. блокировалась) если случайно быстро нажимать ее в ручном режиме. А что бы разблокировать ее приходилось снимать клемму Аккумулятора. И не нравилось что он программировалась по оборотам двс.Иногда сразу заводилась иногда только с ручного режима. Вот в принципе эти два аспекта меня не устраивали.
А насчет контроля сигнала заведена она или нет, у меня там есть такое. Т.е. если автозапуск, то я сажусь нажимаю 1раз - ACC, 2раз - ING1,ING2.(это из ручного режима) если 3раз то - OFF ALL. Но, она(кнопка-блок) не запустит все равно стартер из любого режима, так как уже есть сигнал с "гены" - просто выполнит операции до и после стартера. Это еще раз повторюсь, взято из алгоритма штатной кнопки Шкод"ы"
Забыл пояснить Вам, что ручной режим нужен обязательно - это как ключ с собой возить. Объясню почему:
1. Если вы ремонтируете авто(не важно где) вдруг вам необходимо вкл. зажигание для проверки чего либо
2. Если у вас или на станции СТО вам(вы) делаете(ют) диагностику двс, то вкл. зажигание нужно обязательно
3. Сильный мороз
4. Или дольше нужно покрутить стартер
5. Ну или форс-мажор.
Народ, поделитесь пожалуйста рабочим скетчем кнопки.