93 void begin(uint8_t
pin, uint16_t debounce_mS = 30,
bool invert =
true,
bool usePullUp =
true)
96 uint8_t tx[8] = { 200,_pin,10,
SW_LE16(debounce_mS),invert,0,usePullUp };
123 uint8_t tx[8] = { 201,_pin,10,1,0x55,0x55,0x55,0x55 };
134 return(256 * rx[7] + rx[6]);
148 uint8_t tx[8] = { 201,_pin,10,1,0x55,0x55,0x55,0x55 };
160 return(256 * rx[7] + rx[6]);
175 uint8_t tx[8] = { 201,_pin,10,1,0x55,0x55,0x55,0x55 };
216 _debouncedInput = serialWombatDebouncedInput;
232 void begin(
long* variableToIncrement,
233 long slowIncrement = 1,
unsigned long slow_mS_betweenIncrements = 250,
234 uint16_t slowToMediumTransition_mS = 1000,
235 long mediumIncrement = 1,
unsigned long medium_mS_betweenIncrements = 100,
236 uint16_t mediumToFastTransition_mS = 1000 ,
237 long fastIncrement = 1,
unsigned long fast_mS_betweenIncrements = 50)
239 _variableToIncrement = variableToIncrement;
241 _slowIncrement = slowIncrement;
242 _slow_mS_betweenIncrements = slow_mS_betweenIncrements;
244 _slowToMediumTransition_mS = slowToMediumTransition_mS;
246 _mediumIncrement = mediumIncrement;
247 _medium_mS_betweenIncrements = medium_mS_betweenIncrements;
249 _mediumToFastTransistion_mS = mediumToFastTransition_mS;
251 _fastIncrement = fastIncrement;
252 _fast_mS_betweenIncrements = fast_mS_betweenIncrements;
254 _lastPressDuration = 0;
262 bool incremented =
false;
263 bool pressed =
false;
264 if (pressDuration > 0)
266 if (_lastPressDuration >= pressDuration)
268 _lastPressDuration = 0;
271 if (pressDuration > _mediumToFastTransistion_mS)
274 increments = (pressDuration - _lastPressDuration) / _fast_mS_betweenIncrements;
275 *_variableToIncrement += _fastIncrement * increments;
276 _lastPressDuration += _fast_mS_betweenIncrements * increments;
278 else if (pressDuration > _slowToMediumTransition_mS)
281 increments = (pressDuration - _lastPressDuration) / _medium_mS_betweenIncrements;
282 *_variableToIncrement += _mediumIncrement * increments;
283 _lastPressDuration += _medium_mS_betweenIncrements * increments;
288 increments = (pressDuration - _lastPressDuration) / _slow_mS_betweenIncrements;
289 *_variableToIncrement += _slowIncrement * increments;
290 _lastPressDuration += _slow_mS_betweenIncrements * increments;
291 incremented = increments > 0;
302 _lastPressDuration = 0;
304 *_variableToIncrement += _slowIncrement * presses;
312 if (*_variableToIncrement <
lowLimit)
327 long* _variableToIncrement;
330 unsigned long _slow_mS_betweenIncrements;
332 uint16_t _slowToMediumTransition_mS;
334 long _mediumIncrement;
335 unsigned long _medium_mS_betweenIncrements;
337 uint16_t _mediumToFastTransistion_mS;
340 unsigned long _fast_mS_betweenIncrements;
342 unsigned long _lastPressDuration;