автозапуск двс

kalbas0000
Offline
Зарегистрирован: 02.09.2016

Добрый вечер ! нужна помощь по написанию простенького кода для автозапуска . вот суть...

пришол кратковременный отрицательный сигнал

включилось зажигание. пауза 10 сек. зажигание включено. после

включился стартер на 2 сек.

выключился стартер.

при повторном кратковременном отрицательном сигнале все вырублено.

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

так это нужна ардуина с отрицательной логикой, на 511 микросхемах видимо

kalbas0000
Offline
Зарегистрирован: 02.09.2016

нет в смысле замыкать на минус . это и есть сигнал !

sadman41
Offline
Зарегистрирован: 19.10.2016

Помощь по написанию это - мы пишем, а вы пиво пьёте?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

kalbas0000 пишет:
Добрый вечер ! нужна помощь по написанию

Нетушки, хочешь движок убить - это без  нас. Сам.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

А в какой это машине зажигание по минусу включается?

kalbas0000
Offline
Зарегистрирован: 02.09.2016

вот собственно код.

#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;
  }
         
}

как при нажатии еще раз этой кнопки все отключилось ?

 

 

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Видимо
if ( value == LOW && flag == 1) {
// здесь все выключаем
}

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Может поменяете?

#define PIN_BUTTON 2
#define PIN_LED 3
#define PIN_LED2 4

 А то как-то некошерно для песочницы....

Дим-мычъ
Offline
Зарегистрирован: 20.03.2021
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;
  }
}

С библиотекой не знаком, не проверял, но вроде так)))

Хотя, конечно, в авто что-то "мастырить" не очень гуд  ( ИМХО )

kalbas0000
Offline
Зарегистрирован: 02.09.2016

Спасибо попробую !

kalbas0000
Offline
Зарегистрирован: 02.09.2016

Спасибо вам огромное работает !