mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-03-31 03:55:46 +00:00
39 lines
726 B
C++
39 lines
726 B
C++
#ifdef PIN_VIBRATION
|
|
#include "GenericVibration.h"
|
|
|
|
void GenericVibration::begin() {
|
|
pinMode(PIN_VIBRATION, OUTPUT);
|
|
digitalWrite(PIN_VIBRATION, LOW);
|
|
duration = 0;
|
|
}
|
|
|
|
void GenericVibration::trigger() {
|
|
duration = millis();
|
|
digitalWrite(PIN_VIBRATION, HIGH);
|
|
}
|
|
|
|
void GenericVibration::loop() {
|
|
if (isVibrating()) {
|
|
if ((millis() / 1000) % 2 == 0) {
|
|
digitalWrite(PIN_VIBRATION, LOW);
|
|
} else {
|
|
digitalWrite(PIN_VIBRATION, HIGH);
|
|
}
|
|
|
|
if (millis() - duration > VIBRATION_TIMEOUT) {
|
|
stop();
|
|
}
|
|
}
|
|
}
|
|
|
|
bool GenericVibration::isVibrating() {
|
|
return duration > 0;
|
|
}
|
|
|
|
void GenericVibration::stop() {
|
|
duration = 0;
|
|
digitalWrite(PIN_VIBRATION, LOW);
|
|
}
|
|
|
|
#endif // ifdef PIN_VIBRATION
|