InputEvents v1.6.0
An easy to use but comprehensive Event Library for Buttons, Encoders, Encoder Buttons, Analog Inputs, Joysticks and Switches.
PjrcEncoderAdapter.h
1
9#ifndef INPUT_EVENT_PJRC_ENCODER_ADAPTER_H
10#define INPUT_EVENT_PJRC_ENCODER_ADAPTER_H
11
12// Only create the adapter class if PJRC's Encoder is already included.
13#ifdef Encoder_h_
14
15#include <EncoderAdapter/IEncoderAdapter.h>
16
27
28public:
29
36 PjrcEncoderAdapter( uint8_t encoderPin1, uint8_t encoderPin2 )
37 {
38 pinA = encoderPin1;
39 pinB = encoderPin2;
40 };
41
47 delete encoder;
48 }
49
50
57 bool begin(void) {
58 encoder = new Encoder(pinA, pinB);
59 // PJRC's Encoder appears to have begin() functionality on its way but something has gone wrong with the versioning
60 // https://github.com/PaulStoffregen/Encoder/issues/106#issuecomment-2621583974
61 //encoder->begin(pinA, pinB);
62 return true;
63 }
64
70 int32_t getPosition(void) {
71 return encoder->read();
72 }
73
79 void setPosition(int32_t pos) {
80 encoder->write(pos);
81 }
82
83private:
84
85
86 Encoder *encoder;
87
88 uint8_t pinA;
89 uint8_t pinB;
90
91};
92
93
94
95#endif
96#endif
A lightweight adapter abstract class for encoders.
Definition: IEncoderAdapter.h:19
An adapter for PJRC's Encoder.
Definition: PjrcEncoderAdapter.h:26
~PjrcEncoderAdapter()
Destructor to ensure the PJRC encoder is deleted.
Definition: PjrcEncoderAdapter.h:46
void setPosition(int32_t pos)
Set the a new position of the encoder. This can be any value in the int32_t range.
Definition: PjrcEncoderAdapter.h:79
PjrcEncoderAdapter(uint8_t encoderPin1, uint8_t encoderPin2)
Construct a new Pjrc Encoder Adapter object. An Encoder instance will be created for you.
Definition: PjrcEncoderAdapter.h:36
int32_t getPosition(void)
Get the current position as reported by the Encoder class.
Definition: PjrcEncoderAdapter.h:70
bool begin(void)
In Encoder < v1.4.4 begin is not used but when v1.4.5 is released we will use it to initialise the en...
Definition: PjrcEncoderAdapter.h:57