8 #ifndef NO_BUTTONSCOMMANDER 9 #ifndef NO_BUTTONSCOMMANDERENCODER 19 this->pin1 = Arduino_to_GPIO_pin(inPin1);
20 this->pin2 = Arduino_to_GPIO_pin(inPin2);
21 pinMode2f(this->pin1, INPUT_PULLUP);
22 pinMode2f(this->pin2, INPUT_PULLUP);
26 this->moveIncrement = inMoveIncrement;
28 this->moveIncrement = 1;
30 this->incrementPosition = 0;
31 this->lastEncoded = 0;
32 this->mini = inMinimum;
33 this->maxi = inMaximum;
34 this->currentValue = inStartingValue;
35 this->startingCurrentValue = inStartingValue;
40 #ifdef COMMANDERS_DEBUG_MODE 41 if (this->
Id ==
UNDEFINED_ID || this->pin1 == DP_INVALID || this->pin2 == DP_INVALID)
43 if (this->lastEncoded != 32767)
45 Serial.println(F(
"This encoder have no ID or pins defined : call begin() !"));
47 this->lastEncoded = 32767;
52 if (this->
Id ==
UNDEFINED_ID || this->pin1 == DP_INVALID || this->pin2 == DP_INVALID)
57 int MSB = digitalRead2f(this->pin1);
58 int LSB = digitalRead2f(this->pin2);
60 int encoded = (MSB << 1) | LSB;
63 int sum = (this->lastEncoded << 2) | encoded;
66 if (sum == 13 || sum == 4 || sum == 2 || sum == 11) inc = 1;
67 if (sum == 14 || sum == 7 || sum == 1 || sum == 8) inc = -1;
69 #ifdef COMMANDERS_DEBUG_MODE 72 Serial.print(F(
"Encoder move of "));
74 Serial.print(F(
" : "));
75 Serial.println(this->currentValue+inc);
79 this->lastEncoded = encoded;
84 if (this->moveIncrement > 1)
86 this->incrementPosition += inc;
87 if (abs(this->incrementPosition) < this->moveIncrement)
92 this->incrementPosition = 0;
95 if (this->mini != this->maxi)
99 this->currentValue += inc;
101 if (this->currentValue > this->maxi)
102 this->currentValue = this->maxi;
104 if (this->currentValue < this->mini)
105 this->currentValue = this->mini;
116 #ifdef COMMANDERS_PRINT_COMMANDERS 117 void ButtonsCommanderEncoder::printCommander()
119 Serial.print(F(
" Encoder - Pin1:"));
120 Serial.print(GPIO_to_Arduino_pin(this->pin1));
121 Serial.print(F(
" / Pin2: "));
122 Serial.print(GPIO_to_Arduino_pin(this->pin2));
123 Serial.print(F(
" / Mini: "));
124 Serial.print(this->maxi);
125 Serial.print(F(
" / Maxi: "));
126 Serial.println(this->maxi);
static unsigned long RaiseEvent(unsigned long inId, COMMANDERS_EVENT_TYPE inEvent = COMMANDERS_EVENT_MOVEPOSITIONID, int inData = 0)