Serial Wombat Arduino Library
SerialWombatDebouncedInput.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "SerialWombat.h"
4 #include "limits.h"
5 
51 {
52 public:
57 
64  void begin(uint8_t pin);
65 
72  void begin(uint8_t pin, uint16_t debounce_mS, bool invert, bool usePullUp);
73 
80  bool digitalRead();
81 
87  uint16_t readDurationInTrueState_mS();
93  uint16_t readDurationInFalseState_mS();
94 
96  uint16_t transitions = 0;
97 
105  bool readTransitionsState();
106 
107 
108 
109 private:
110  SerialWombat& _sw;
111  uint8_t _pin = 255;
112 
113 
114 };
115 
116 
137 {
138 public:
139 
142  SerialWombatButtonCounter( SerialWombatDebouncedInput* serialWombatDebouncedInput);
143 
155  void begin(long* variableToIncrement,
156  long slowIncrement, unsigned long slow_mS_betweenIncrements,
157  uint16_t slowToMediumTransition_mS,
158  long mediumIncrement, unsigned long medium_mS_betweenIncrements,
159  uint16_t mediumToFastTransition_mS,
160  long fastIncrement, unsigned long fast_mS_betweenIncrements);
162  bool update();
163 
165  long highLimit = LONG_MAX;
167  long lowLimit = LONG_MIN;
168 
169 private:
170  SerialWombatDebouncedInput* _debouncedInput;
171  long* _variableToIncrement;
172 
173  long _slowIncrement;
174  unsigned long _slow_mS_betweenIncrements;
175 
176  uint16_t _slowToMediumTransition_mS;
177 
178  long _mediumIncrement;
179  unsigned long _medium_mS_betweenIncrements;
180 
181  uint16_t _mediumToFastTransistion_mS;
182 
183  long _fastIncrement;
184  unsigned long _fast_mS_betweenIncrements;
185 
186  unsigned long _lastPressDuration;
187 
188 };
189 
SerialWombatButtonCounter::update
bool update()
Called periodically to query the SerialWombatDebouncedInput and update the variable.
Definition: SerialWombatDebouncedInput.cpp:98
SerialWombatDebouncedInput::SerialWombatDebouncedInput
SerialWombatDebouncedInput(SerialWombat &serialWombat)
Constructor for the SerialWombatDebouncedInput class.
Definition: SerialWombatDebouncedInput.cpp:4
SerialWombatButtonCounter
A class that runs on top of SerialWombatDebouncedInput to increment or decrement a variable based on ...
Definition: SerialWombatDebouncedInput.h:136
SerialWombatButtonCounter::SerialWombatButtonCounter
SerialWombatButtonCounter(SerialWombatDebouncedInput *serialWombatDebouncedInput)
Constructor for SerialWombatButtonCounter.
Definition: SerialWombatDebouncedInput.cpp:72
SerialWombatDebouncedInput::readDurationInTrueState_mS
uint16_t readDurationInTrueState_mS()
return the number of mS that the debounced input has been in true state
Definition: SerialWombatDebouncedInput.cpp:26
SerialWombatButtonCounter::begin
void begin(long *variableToIncrement, long slowIncrement, unsigned long slow_mS_betweenIncrements, uint16_t slowToMediumTransition_mS, long mediumIncrement, unsigned long medium_mS_betweenIncrements, uint16_t mediumToFastTransition_mS, long fastIncrement, unsigned long fast_mS_betweenIncrements)
Definition: SerialWombatDebouncedInput.cpp:77
SerialWombatDebouncedInput::transitions
uint16_t transitions
Number of transitions returned by last call to readTransitionsState()
Definition: SerialWombatDebouncedInput.h:96
SerialWombatButtonCounter::lowLimit
long lowLimit
The variable will not decrement below this limit.
Definition: SerialWombatDebouncedInput.h:167
SerialWombat.h
SerialWombatDebouncedInput::begin
void begin(uint8_t pin)
Initialize a debounced input (simplified for typical switch to ground)
Definition: SerialWombatDebouncedInput.cpp:8
SerialWombatDebouncedInput
A pin mode class that debounces inputs.
Definition: SerialWombatDebouncedInput.h:50
SerialWombatButtonCounter::highLimit
long highLimit
The variable will not increment above this limit.
Definition: SerialWombatDebouncedInput.h:165
SerialWombatDebouncedInput::readTransitionsState
bool readTransitionsState()
Queries the number of transistions that have occured on the debounced input.
Definition: SerialWombatDebouncedInput.cpp:63
SerialWombat
Definition: SerialWombat.h:72
SerialWombatDebouncedInput::digitalRead
bool digitalRead()
Returns the debounced state of the input.
Definition: SerialWombatDebouncedInput.cpp:20
SerialWombatDebouncedInput::readDurationInFalseState_mS
uint16_t readDurationInFalseState_mS()
return the number of mS that the debounced input has been in false state
Definition: SerialWombatDebouncedInput.cpp:44