arduino, счетчик нажатий через прерывание.
- Войдите на сайт для отправки комментариев
Чт, 14/03/2019 - 19:34
Всех приветствую.
Делаю счетчик количества нажатий на кнопку через прерывание.
const byte btn_pin=2;
unsigned long cnt=0;
void setup() {
Serial.begin(9600);
pinMode(btn_pin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(btn_pin), counter, RISING);
}
void loop() {
}
void counter() {
cnt++;
Serial.println(cnt);
}
Одно нажатие считает как несколько.
Подскажите, пожалуйста, что нужно исправить?
Благодарю за ответы.
Читать за дребезг контактов
Счётчик нажатий без прерывания: http://wiki.amperka.ru/%D0%BA%D0%BE%D0%BD%D1%81%D0%BF%D0%B5%D0%BA%D1%82-arduino:%D1%81%D1%87%D0%B5%D1%82%D1%87%D0%B8%D0%BA-%D0%BD%D0%B0%D0%B6%D0%B0%D1%82%D0%B8%D0%B9
Счётчик нажатий с прерыванием:
const byte btn_pin=2; unsigned long cnt=0; void setup() { Serial.begin(9600); pinMode(btn_pin, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(btn_pin), counter, FALLING); } void loop() {} void counter() { detachInterrupt(digitalPinToInterrupt(btn_pin)); cnt++; Serial.println(cnt); while(digitalRead(btn_pin)==LOW){} attachInterrupt(digitalPinToInterrupt(btn_pin),counter,FALLING); }источник: https://www.cooking-hacks.com/documentation/tutorials/geiger-counter-radiation-sensor-board-arduino-raspberry-pi-tutorial
Благодарю всех за ответы, тема закрыта.
Запихивать в обработчик detach/attach совершенно бесмысленно.