автозапуск двс
- Войдите на сайт для отправки комментариев
Чт, 14/07/2022 - 23:00
Добрый вечер ! нужна помощь по написанию простенького кода для автозапуска . вот суть...
пришол кратковременный отрицательный сигнал
включилось зажигание. пауза 10 сек. зажигание включено. после
включился стартер на 2 сек.
выключился стартер.
при повторном кратковременном отрицательном сигнале все вырублено.
так это нужна ардуина с отрицательной логикой, на 511 микросхемах видимо
нет в смысле замыкать на минус . это и есть сигнал !
Помощь по написанию это - мы пишем, а вы пиво пьёте?
Нетушки, хочешь движок убить - это без нас. Сам.
А в какой это машине зажигание по минусу включается?
вот собственно код.
#include <Bounce2.h>; #define PIN_BUTTON 0 #define PIN_LED 1 #define PIN_LED2 2 // Создаем объект Bounce debouncer = Bounce(); int flag=0; void setup() { // Устаовили тип пина pinMode(PIN_BUTTON, INPUT_PULLUP); // Даем бибилотеке знать, к какому пину мы подключили кнопку debouncer.attach(PIN_BUTTON); debouncer.interval(5); // Интервал, в течение которого мы не буем получать значения с пина //Setup the LED : pinMode(PIN_LED, OUTPUT); pinMode(PIN_LED2, OUTPUT); } void loop() { // Даем объекту бибилотеки знать, что надо обновить состояние - мы вошли в новый цкил loop debouncer.update(); // Получаем значение кнопки int value = debouncer.read(); // Теперь мы точно знаем, в каком состоянии находится наша кнопка if ( value == LOW && flag == 0 ) { digitalWrite(PIN_LED,HIGH); delay(10000); digitalWrite(PIN_LED2,HIGH); delay(1500); digitalWrite(PIN_LED2,LOW); flag = 1; } }как при нажатии еще раз этой кнопки все отключилось ?
Видимо
if ( value == LOW && flag == 1) {
// здесь все выключаем
}
Может поменяете?
А то как-то некошерно для песочницы....
void loop() { // Даем объекту бибилотеки знать, что надо обновить состояние - мы вошли в новый цкил loop debouncer.update(); // Получаем значение кнопки int value = debouncer.read(); if ( value == LOW && flag == 0 ) { //первое нажатие delay(10000); digitalWrite(PIN_LED2, HIGH); delay(1500); digitalWrite(PIN_LED2, LOW); flag = 1; } if ( value == HIGH && flag == 1 ) { //кнопка отпущена flag = 2; } if ( value == LOW && flag == 2 ) { //второе нажатие // здесь выключаете что надо //........................... flag = 3; } if ( value == HIGH && flag == 3 ) { //кнопка отпущена flag = 0; } }С библиотекой не знаком, не проверял, но вроде так)))
Хотя, конечно, в авто что-то "мастырить" не очень гуд ( ИМХО )
Спасибо попробую !
Спасибо вам огромное работает !