После пары нажатий все виснет

boolean butt;
unsigned long last_time;
void setup() {
  // put your setup code here, to run once:
  pinMode(4, INPUT_PULLUP);
  Serial.begin(9600);
  pinMode(2, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  butt = !digitalRead(4);
  if (butt == 1 && but_flag == 0 && millis() - last_time > 500) {
    but_flag = 1;
    digitalWrite(2,1);
    last_time = millis();
    Serial.println('1');
  }
  if (butt == 0 && but_flag == 1 && millis() - last_time > 500) {
    but_flag = 0;
    digitalWrite(2, 0);
    last_time = millis();
    Serial.println('0');
  }
}```

Когда стартую, все вроде норм, но после пары нажатий на кнопку программа виснет и реле либо постоянно замкнуто, либо постоянно разомкнуто. Я новичок, помогите, пожалуйста

А какая логика работы в этой абра-кадабре?

Реле отключите, повесьте светодиод на пин (через резистор).

1 лайк

Вот за одно это, сейчас займусь Вашим кодом!

Класс! Наш человек!

Схему рисуйте. Только полностью, с питанием, как что и куда подключено, как диод на реле стоит - всё.

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