Устранение дребезга кнопки с помощью задержки в среде Arduino.

При нажатии кнопки наступает устойчивое состояние только после нескольких миллисекунд . Об этом рассказывал в уроке: Урок2. Нажатие кнопки без ложных срабатываний.Устраняем дребезг кнопки

Вот так выглядит дребезг кнопки.

Вот так выглядит дребезг кнопки.

Мы знаем, что дребезг проявляется в течение нескольких миллисекунд после замыкания контактов. Чтобы исправить ситуацию, после нажатия кнопки, подождите 5 мсек до считывания. Это время для человека является практически мгновенным, а Arduino прекрасно работает с такими короткими промежутками времени, и эти 5 мсек. позволят отсечь дребезг контактов кнопки.

const int buttonPin = 2;      // номер входа, подключенный к кнопке
const int ledPin =  3;        // номер выхода светодиода

/* переменные */
boolean lastButten = LOW;     // предыдущее состояние кнопки
boolean currentButten = LOW;  // текущее состояние кнопки
boolean ledOn = false;        // текущее состояние свтодиода

void setup() // Функция setup()
{
  // инициализируем пин, подключенный к светодиоду, как выход
  pinMode(ledPin, OUTPUT);
  // инициализируем пин, подключенный к кнопке, как вход
  pinMode(buttonPin, INPUT);
}

boolean debvance (boolean last) //убираем дребизг
{
  boolean current = digitalRead (buttonPin); // считываем данные с кнопки
  if (last != current) // Если текущее состояние отличететься от предыдущего
  {
    delay (5);   // Ждем 5 милисек.
    current = digitalRead (buttonPin); // Присваеваем текущее состояние кнопки
    return current;
  }
}

void loop() // Функция loop

{
  currentButten = debvance (lastButten); // Передаем функции дребезга значение по умолчанию LOW
  if (lastButten == LOW && currentButten == HIGH) // Проверяем отпускали мы кнопку или нет
  {
    ledOn = !ledOn; // инвертируем значение
  }

  lastButten =  currentButten;  // Переприсваеваем прошлое состояние кнопки
  digitalWrite(ledPin, ledOn);   // Включаем или выключаем светодиот (смотря что пришло после инверсии)
  delay (2);   // Ждем 2 милисек.
}
Работа с кнопками. Дата публикации 10 декабря , 2019

Portal-PK (Портал ПК) © 2015 - 2021
ЧПУ
Карта сайта
RSS