Оформи код соответствующим тэгом, см. Правила
Есть такая задача. Сделать не дорогой автозапуск для авто с простейшими элементами и с минимум вложений , чтобы был лишь автозапуск без лишнего геморроя и со всеми нужными функциями.
Что мы имеем ?
1. Сама сигнализация, стоимость её около 10у.е.( да ребят я из Беларуси=)

2.Arduino nano
3.Огромное желание что то смастерить самому без знания основ программирования.
Наше ТЗ
1.Чтобы машина запускалась с задержкой после включения зажигания ( так как выходной сигнал на стартер с этого модуля около 1 секунды, наша задача выждать время для прогрева свечей в зимнее время или для срабатывания подкачивающих насосов и так далее)
2. Чтобы было отключение стартера поле того как машина завелась ( реализация такова что когда машина завелась на лампочку генератора приходит +12 Вольт, эти 12 вольт будут сигналом для отключения программы ардуино)
3. Чтобы задержка перед пуском была на разное время ( меня интересует 2 режима работы, когда двигатель холодный то задержка перед подачей сигнала на стартер должно составлять 10 секунд , когда двигатель уже 40 градусов или более то задержка 2 секунды и на запуск, сигнал на запуск не менее 4 секунд, реализовать это не сложно так как датчик ОЖ(охлаждающей жидкости) это обычный NTC терморезистор и из него нужно вынуть показания, пределы таковы если R<=150 Om (тогда задержка 2 секунды) если R>=400 Ом (тогда задержка 10 секунд) промежуточное значение от 150 до 400 (так же с задержкой 10 секунд)
4. После завершения сигнала на выход или получения сигнала +12 вольт с генератора программа должна остановиться и ждать следующего сигнала на запуск с модуля.
Я человек в этой истории новый но знаю про ИИ) Поэтому изначально обратился к нему за просьбой, после суток извращения с ним и разными предложениями по написанию кода со всеми проверками на WOKWI я нашел единственно работающий примерно по моему ТЗ код .
Самая большая проблема и мольва о помощи, помочь допилить код со всеми доработками и правильными измерениями.
Вот такое ТЗ я поставил ИИ :
Давай напишем новый код для ардуино нано. Действия программы такие:
При кратковременной подаче напряжения +12В на пин запускалась программа.
Программа должна измерять какое NTC сопротивления подаеться на ввод, есть два выбора работы программы.
1 если сопротивление ровно 150 Ом и до 0 Ом тогда программа задерживает сигнал на 2 секунды и дает на выход сигнал длинною 4 секунд
2 если сопротивление ровно 400 Ом и до 1000 Ом тогда программа задерживает сигнал на 10 секунды и дает на выход сигнал длинною 4 секунд
Должен быть еще пин который управляется кратковременным подачей +12 вольт , при появлении на нем +12 вольт или истечению времени выходного сигнала программа должна остановиться и запустить лишь тогда когда снова подадим на ввод +12 вольт
все действия должны писать Serial.println
Не кидайте камнями я вообще в этом ДУБ ) Есть только желание что то сделать самому и не тратить очень много времени для написания одной программы.
ВОТ ЧТО МНЕ ДАЛ ИИ
P.S. для проверки на WOWKI я указал что входной сигнал +5 В а сигнал стоп это GND . На самом деле было очень много кодов сделанных ИИ но это примерно похожий по логике работы который нужен мне.
Заранее извиняюсь если есть какие либо ошибки по добавлению поста или темы .
Не знаю выйдет из этого поста что либо но очень надеюсь что найдется знающий человек который будет готов помочь в данном деле. Заранее всех благодарю за содействие и огромный приве Alex
Что мы имеем ?
1. Сама сигнализация, стоимость её около 10у.е.( да ребят я из Беларуси=)

2.Arduino nano
3.Огромное желание что то смастерить самому без знания основ программирования.
Наше ТЗ
1.Чтобы машина запускалась с задержкой после включения зажигания ( так как выходной сигнал на стартер с этого модуля около 1 секунды, наша задача выждать время для прогрева свечей в зимнее время или для срабатывания подкачивающих насосов и так далее)
2. Чтобы было отключение стартера поле того как машина завелась ( реализация такова что когда машина завелась на лампочку генератора приходит +12 Вольт, эти 12 вольт будут сигналом для отключения программы ардуино)
3. Чтобы задержка перед пуском была на разное время ( меня интересует 2 режима работы, когда двигатель холодный то задержка перед подачей сигнала на стартер должно составлять 10 секунд , когда двигатель уже 40 градусов или более то задержка 2 секунды и на запуск, сигнал на запуск не менее 4 секунд, реализовать это не сложно так как датчик ОЖ(охлаждающей жидкости) это обычный NTC терморезистор и из него нужно вынуть показания, пределы таковы если R<=150 Om (тогда задержка 2 секунды) если R>=400 Ом (тогда задержка 10 секунд) промежуточное значение от 150 до 400 (так же с задержкой 10 секунд)
4. После завершения сигнала на выход или получения сигнала +12 вольт с генератора программа должна остановиться и ждать следующего сигнала на запуск с модуля.
Я человек в этой истории новый но знаю про ИИ) Поэтому изначально обратился к нему за просьбой, после суток извращения с ним и разными предложениями по написанию кода со всеми проверками на WOKWI я нашел единственно работающий примерно по моему ТЗ код .
Самая большая проблема и мольва о помощи, помочь допилить код со всеми доработками и правильными измерениями.
Вот такое ТЗ я поставил ИИ :
Давай напишем новый код для ардуино нано. Действия программы такие:
При кратковременной подаче напряжения +12В на пин запускалась программа.
Программа должна измерять какое NTC сопротивления подаеться на ввод, есть два выбора работы программы.
1 если сопротивление ровно 150 Ом и до 0 Ом тогда программа задерживает сигнал на 2 секунды и дает на выход сигнал длинною 4 секунд
2 если сопротивление ровно 400 Ом и до 1000 Ом тогда программа задерживает сигнал на 10 секунды и дает на выход сигнал длинною 4 секунд
Должен быть еще пин который управляется кратковременным подачей +12 вольт , при появлении на нем +12 вольт или истечению времени выходного сигнала программа должна остановиться и запустить лишь тогда когда снова подадим на ввод +12 вольт
все действия должны писать Serial.println
Не кидайте камнями я вообще в этом ДУБ ) Есть только желание что то сделать самому и не тратить очень много времени для написания одной программы.
ВОТ ЧТО МНЕ ДАЛ ИИ
CSS:
const int inputPin = 2; // Пин старта (активен +5V)
const int stopPin = 3; // Пин СТОП (активен GND)
const int outputPin = 4; // Выход
const int resistancePin = A0; // Пин сопротивления
// Пороги сопротивления (настроить!)
const int RESISTANCE_150OHM = 680;
const int RESISTANCE_400OHM = 350;
// Переменные состояния
bool buttonPressed = false;
unsigned long triggerTime = 0;
unsigned long lastDebounceTime = 0;
const int debounceDelay = 50; // мс
void setup() {
pinMode(inputPin, INPUT); // БЕЗ подтяжки к VCC!
pinMode(stopPin, INPUT_PULLUP);
pinMode(outputPin, OUTPUT);
digitalWrite(outputPin, LOW);
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(stopPin), interruptHandler, FALLING);
}
void loop() {
// Чтение кнопки START с защитой от дребезга
int currentState = digitalRead(inputPin);
if (currentState == HIGH && !buttonPressed) {
if (millis() - lastDebounceTime > debounceDelay) {
buttonPressed = true;
triggerTime = millis();
Serial.println("Старт! Таймер запущен");
}
lastDebounceTime = millis();
}
// Логика таймера
if (buttonPressed) {
int sensorValue = analogRead(resistancePin);
unsigned long delayTime = 10000; // По умолчанию 10 сек
if (sensorValue >= RESISTANCE_150OHM) {
delayTime = 2000;
Serial.println("Режим 150 Ом (2 сек)");
}
else if (sensorValue <= RESISTANCE_400OHM) {
delayTime = 10000;
Serial.println("Режим 400 Ом (10 сек)");
}
if (millis() - triggerTime >= delayTime) {
digitalWrite(outputPin, HIGH);
Serial.println("Выход ВКЛ");
delay(5000); // Удерживаем 5 сек
digitalWrite(outputPin, LOW);
Serial.println("Выход ВЫКЛ");
buttonPressed = false;
}
}
}
void interruptHandler() {
digitalWrite(outputPin, LOW);
buttonPressed = false;
Serial.println("СТОП! Сброс таймера");
}
P.S. для проверки на WOWKI я указал что входной сигнал +5 В а сигнал стоп это GND . На самом деле было очень много кодов сделанных ИИ но это примерно похожий по логике работы который нужен мне.
Заранее извиняюсь если есть какие либо ошибки по добавлению поста или темы .
Не знаю выйдет из этого поста что либо но очень надеюсь что найдется знающий человек который будет готов помочь в данном деле. Заранее всех благодарю за содействие и огромный приве Alex
Изменено: