Arduino - Расчет времени, в течение которого кнопка нажата и удерживается без отпускания
Я работаю над проектом, который требует расчета времени, в течение которого кнопка удерживается нажатой без отпускания. Есть ли фрагмент кода, который я могу использовать для этой конкретной потребности?
@VishwaV, 👍1
1 ответ
▲ 1
Существует библиотека под названием "Debounce", которую вы можете найти здесь: playground.arduino.cc. На основе этой библиотеки вот простой скетч, который отображает время нажатия кнопки.
// Подключите один конец кнопочного переключателя NO к GND, а другой
// конец к выводу 4 Arduino.
// ПРИМЕЧАНИЕ: Если кнопка удерживается нажатой меньше времени, чем задержка устранения дребезга
// время, прошедшее время отобразит время задержки устранения дребезга.
#include <Debounce.h>
const byte SWITCH = 4;
unsigned long startTime = 0;
unsigned long endTime = 0;
unsigned long elapsedTime = 0;
const byte debounceDelayTime = 50;
Debounce debouncer = Debounce(debounceDelayTime, SWITCH);
void setup(){
Serial.begin(9600);
pinMode(SWITCH, INPUT_PULLUP);
}
void loop(){
if(debouncer.update()){
if(debouncer.read() == 0){
startTime = millis();
Serial.println("Button Pressed");
}
else if(debouncer.read() == 1){
endTime = millis();
Serial.println("Button Released");
elapsedTime = endTime - startTime;
Serial.print("Button Held Down For ");
Serial.print(elapsedTime);
Serial.println(" ms.");
}
}
}
,
@VE7JRO
Смотрите также:
- Как считывать данные с трехкнопочного ввода?
- Как получить текущее время и дату в Arduino без внешнего источника?
- Как запустить цикл на определенное время?
- Определение того, была ли нажата и отпущена кнопка
- Почему мои часы реального времени показывают неверное время с моего ПК?
- Разница между «time_t» и «DateTime»
- Хорошая кнопка debouncing/Библиотека StateChange
- Оси X и Y на последовательном плоттере Arduino?