Так что я понял это, и если кто-то еще ищет это здесь, я придумал. Это может быть не самый плавный код, но он делает то, что я намеревался сделать
в l oop У меня есть
if (setOneshotHaptic == 1) {
hapticFeedback(activeLength);
}
и функция hapti c выглядит следующим образом
void hapticFeedback(int activeLength) {
unsigned long currentMillis = millis();
if (currentMillis - hapticPreviousMillis >= (unsigned long)activeLength) {
hapticPreviousMillis = currentMillis;
if (x == repeats) {
setOneshotHaptic = false;
hapticState = HIGH;
x = 0;
}
if (hapticState == LOW) {
hapticState = HIGH;
x++;
}
else {
hapticState = LOW;
}
digitalWrite(haptic, hapticState);
}
}
всякий раз, когда я хочу получить обратную связь hapti c, я могу определить следующие переменные
setOneshotHaptic = true;
repeats = 3;
activeLength = 1000;
Когда количество повторений достигнуто I зафиксируйте один снимок, сделайте так, чтобы выходной сигнал был высоким, чтобы он был низким, и, наконец, сбросьте счетчик повторений.
Возможно, есть более хорошие способы сделать это. Однако я не мог их найти, и это работает для меня ....