проблема с выполнением кода

LeatherB

✩✩✩✩✩✩✩
25 Сен 2021
7
0
Оформи код соответствующим тэгом
день добрый, я только учусь программировать ардуино и у меня возникла проблема.
я повторил код из 6 выпуска по программированию

boolean butt_flag;
boolean butt;
void setup() {
pinMode(3, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
butt = !digitalRead(3);
if (butt == 1 && butt_flag == 0){
butt_flag = 1;
Serial.println("Button pressed");
}
if(butt == 0 && butt_flag == 1){
butt_flag = 0;
Serial.println("Button released");
}
}
при быстром нажатии и отпускании кнопки все нормально и выводит (или появляется проблема)
Button pressed
Button released
но если немного удержать и отпустить то выводит сразу много (вот эта)
Button pressed
Button released
Button pressed
Button released
Button pressed
Button released
(в видео не так)

вообще не понимаю где ошибка.
 
Изменено:

Геннадий П

★★★★★★✩
14 Апр 2021
1,986
637
45
Скорее всего дребезг контактов.
В инете море информации как бороться с этим эффектом.
Самое простое - подключить параллельно кнопке конденсатор малой емкости.
 
  • Лойс +1
Реакции: LeatherB