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 
85  uint16_t readDurationInTrueState_mS();
89  uint16_t readDurationInFalseState_mS();
90 
92  uint16_t transitions = 0;
93 
101  bool readTransitionsState();
102 
103 
104 
105 private:
106  SerialWombat& _sw;
107  uint8_t _pin = 255;
108 
109 
110 };
111 
112 
133 {
134 public:
135 
138  SerialWombatButtonCounter( SerialWombatDebouncedInput* serialWombatDebouncedInput);
139 
151  void begin(long* variableToIncrement,
152  long slowIncrement, unsigned long slow_mS_betweenIncrements,
153  uint16_t slowToMediumTransition_mS,
154  long mediumIncrement, unsigned long medium_mS_betweenIncrements,
155  uint16_t mediumToFastTransition_mS,
156  long fastIncrement, unsigned long fast_mS_betweenIncrements);
158  bool update();
159 
161  long highLimit = LONG_MAX;
163  long lowLimit = LONG_MIN;
164 
165 private:
166  SerialWombatDebouncedInput* _debouncedInput;
167  long* _variableToIncrement;
168 
169  long _slowIncrement;
170  unsigned long _slow_mS_betweenIncrements;
171 
172  uint16_t _slowToMediumTransition_mS;
173 
174  long _mediumIncrement;
175  unsigned long _medium_mS_betweenIncrements;
176 
177  uint16_t _mediumToFastTransistion_mS;
178 
179  long _fastIncrement;
180  unsigned long _fast_mS_betweenIncrements;
181 
182  unsigned long _lastPressDuration;
183 
184 };
185 
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:132
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:92
SerialWombatButtonCounter::lowLimit
long lowLimit
The variable will not decrement below this limit.
Definition: SerialWombatDebouncedInput.h:163
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:161
SerialWombatDebouncedInput::readTransitionsState
bool readTransitionsState()
Queries the number of transistions that have occured on the debounced input.
Definition: SerialWombatDebouncedInput.cpp:63
SerialWombat
Definition: SerialWombat.h:86
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