Включение по реле по кнопке без фиксации, а выключение по той же кнопке или по прошествию заданного времени.

Skat1113
Offline
Зарегистрирован: 06.10.2022
#define LED_PIN 10
#define BUTTON_PIN 3 
boolean butt_flag = 0;
boolean butt;
boolean led_flag = 0;
unsigned long time;
unsigned long timeDown = 300000;
  
void setup() {
  // put your setup code here, to run once:
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT);
Serial.begin(9600);
}

void loop() {
time = millis();  
butt = !digitalRead(3);
if(butt == 1 && butt_flag == 0){
    butt_flag = 1;
    led_flag = !led_flag;
    digitalWrite(LED_PIN,led_flag); 
   Serial.println("Включен");
}
if(butt == 0 && butt_flag == 1 || time>timeDown){
  butt_flag = 0;
  Serial.println("Выключен");
}
}

 

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

Не угадал! Или что надо то?
Бл#ть, хоть вопрос бы задал. Но коль я не злой сейчас (вообще молодежь обленилась):

void loop() { 
  butt = !digitalRead(3);
  if(butt == 1 && butt_flag == 0){
     butt_flag = 1;
     time = millis(); 
     led_flag = !led_flag;
     digitalWrite(LED_PIN,led_flag); 
     Serial.println("Включен");
  }
  if((butt == 1 && butt_flag == 1) || ( millis() - timeDown > time)){
    butt_flag = 0;
    led_flag = !led_flag;
    digitalWrite(LED_PIN,led_flag); 
    Serial.println("Выключен");
  }
}

Пользуйся

Модераторам: тему в песочницу адназначна!

Дим-мычъ
Offline
Зарегистрирован: 20.03.2021

BOOM пишет:

Пользуйся

 За подтяжку кнопки  не забыть ещё...

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

Дим-мычъ пишет:

BOOM пишет:

Пользуйся

 За подтяжку кнопки  не забыть ещё...

Да кто ж его схему видел? Может там внешняя? А вопрос вообще в чем был? Да хрен его знает. Где увидел явное гамно, там и поправил. Дальше сам пусть думает.

Дим-мычъ
Offline
Зарегистрирован: 20.03.2021

BOOM пишет:

Да кто ж его схему видел? Может там внешняя? А вопрос вообще в чем был? Да хрен его знает. Где увидел явное гамно, там и поправил. Дальше сам пусть думает.

 Да я так, на всякий случай. Поддержать в "добром начинании"))))

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

Накосячил я вчера немного (со слепу чтоль?)

#define LED_PIN 10
#define BUTTON_PIN 3

boolean butt, butt_flag = 0, led_flag = 0;
unsigned long onTime, timeDown = 300000;

void setup() {

  pinMode(LED_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {

  butt = !digitalRead(BUTTON_PIN);
  if (butt == 1 && butt_flag == 0) {
    delay(20);
    butt_flag = 1;
    onTime = millis();
    led_flag = !led_flag;
    digitalWrite(LED_PIN, led_flag);
    Serial.println("Включен");
  }
  if ((butt == 1 && butt_flag == 1) || ( millis() - onTime > timeDown)) {
    delay(20);
    butt_flag = 0;
    led_flag = !led_flag;
    digitalWrite(LED_PIN, led_flag);
    Serial.println("Выключен");
  }
}

Заодно и внутреннюю подтяжку впендюрил )))

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

BOOM пишет:

Заодно и ... впендюрил )))

впендюривать мы мастера )))