ARDUINO ПОМОЩЬ . Автозапуск для машины при использовании дешевого блока и кнопки старт-стоп

bAd

✩✩✩✩✩✩✩
10 Окт 2025
5
0
Оформи код соответствующим тэгом, см. Правила
Есть такая задача. Сделать не дорогой автозапуск для авто с простейшими элементами и с минимум вложений , чтобы был лишь автозапуск без лишнего геморроя и со всеми нужными функциями.
Что мы имеем ?
1. Сама сигнализация, стоимость её около 10у.е.( да ребят я из Беларуси=)
7cc6abas-960.jpg
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
 
Изменено:

Мишутк

★✩✩✩✩✩✩
29 Мар 2025
68
29
Самая большая проблема и мольва о помощи, помочь допилить код со всеми доработками и правильными измерениями.
Код ИИ сгенерированый новичками в проектах новичков не допиливается в принципе. Самая большая проблема в том, что новички этого не понимают. Уважающий себя специалист даже не смотрит в такой код.

Рекомендации. С таким опытом как ваш в проект сначала должна быть подобрана элементная база: вы должны научиться обрабатывать показания каждого датчика. Потом научиться управлять каждым исполнительным устройством. После этого собирается прототип выдающий показания и управляемый кнопками - вы вручную наблюдая за датчиками подаете кнопками команды на исполнение.
Как только получилось - только тогда пишете алгоритмы на эмуляторе.
И только потом на свой страх и риск ставите на реальный объект, не забыв про множество аварийных независимых защитных цепей.
 
  • Лойс +1
Реакции: bAd

bAd

✩✩✩✩✩✩✩
10 Окт 2025
5
0
@Мишутк, я для этого и пришел в этот форум чтобы люди помогли разобрать этот код, в эмуляторе он исправно работает за исключением измерением сопротивления, я Вас не прошу участвовать в этом , если у меня не выйдет, то увы это останется лишь проектом .На данном этапе я пока очень надеюсь что все выйдет. Чтобы на данном этапе изучать весь курс программирования и написания кода для Ардуино, потратить для этого не один месяц изучения я не готов, я либо найду альтернативы либо допилю со знающими людьми . А Вам спасибо за совет и комментарий
 

bAd

✩✩✩✩✩✩✩
10 Окт 2025
5
0
Рекомендации. С таким опытом как ваш в проект сначала должна быть подобрана элементная база: вы должны научиться обрабатывать показания каждого датчика. Потом научиться управлять каждым исполнительным устройством.
По элементам всего 1 один и это типичный NTC терморезистор у которого есть график в открытом доступе, второй датчик он просто выдает сигнал. Я думаю что человек который имеет малейшее понятие как пишется код сделает его за 20 мин.
 

bort707

★★★★★★✩
21 Сен 2020
3,288
954
Я думаю что человек который имеет малейшее понятие как пишется код сделает его за 20 мин.
Поправлю - знающий человек МОГ БЫ сделать. Но, скорее всего, не станет.

Во-первых, как уже написал выше @Мишутк, копаться в том что накропал ИИ - так себе занятие. Вряд ли какой-то уважающий себя разработчик захочет этим заниматься.

Ну а второе, главное для меня - я категорически против того, чтобы люди без малейшего понимания электроники и программирования лезли в автомобильную электрику. Автомобильная электроника предъявляет очень высокие требования как к компонентам, так и к профессионализму программиста. В вашей поделке оба эти фактора на нуле. Первое - в описании оригинальной Ардуино явным образом указано, что она НЕ ПРЕДНАЗНАЧЕНА к работе в электросети автомобиля. И второе - какую надежность можно ожидать от вашего изделия, если вы не понимаете, что и как там работает в коде? - да никакую. Это кончится либо пожаром, либо оно само поедет и создать опасность для соседних машин и людей.

Одно успокаивает - вы вряд ли вообще что-то сделаете. Почти никто, кто начинает проект с подобным настроем - не доводит его до конца.
 

viktor1703

★★★✩✩✩✩
9 Дек 2021
743
181
Чтобы было отключение стартера поле того как машина завелась ( реализация такова что когда машина завелась на лампочку генератора приходит +12 Вольт
А что будет, если не пришли эти 12 вольт? Ну не заводится, например, или обрыв, или щетки генератора стерлись? Ваш проект так и будет крутить стартер, пока из него не выйдет загадочный сизый дымок, на котором работает вся электроника?
 

bort707

★★★★★★✩
21 Сен 2020
3,288
954
Есть такая задача. Сделать не дорогой автозапуск для авто
....
... сигнализация, стоимость её около 10у.е.( да ребят я из Беларуси=)
Судя по фото, в этой сигналке запуск с кнопки уже предусмотрен. Тогда совершенно непонятно, к чему этот колхоз на Ардуине.
Если же автозапуска нет - надо просто взять другую сигналку. Я уверен, что к вам в Беларусь их пачками везут из Европы, если не найдется за 10уе - найдется за 15

А на Ардуине вам на первый раз стоит собрать что-нить будь попроще и безопаснее - какие-нибудь часики или лампу разноцветную...
 

bAd

✩✩✩✩✩✩✩
10 Окт 2025
5
0
А что будет, если не пришли эти 12 вольт? Ну не заводится, например, или обрыв, или щетки генератора стерлись? Ваш проект так и будет крутить стартер, пока из него не выйдет загадочный сизый дымок, на котором работает вся электроника?
Изначально в программе на выходе сигнал работает 4 секунды потом программа прекращается. и ждет дальнейшей команду на пуск.
 

bAd

✩✩✩✩✩✩✩
10 Окт 2025
5
0
@bort707, прежде чем написать какой либо ответ, стоит прочесть тему и если вам это интересно попробовать разобраться. Задача не выполнить автозапуск с данной кнопки. В данном модули есть запуск машины с доп. канала сигнализации( открытие багажника) она исправно работает. но задержка перед включением и запуском стартера очень мала. и не реализовано в ней какие либо логические входы для понимания завелась машина или нет. она лишь после принятия сигнала с доп сигнала сигнализации включает зажигание и через пару секунд дает команду на запуск авто в течении 1 секунды чего тоже может быть не достаточно в холодное время года .