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);
22 pinMode2f(this->pin2, INPUT);
23 digitalWrite2f(this->pin1, HIGH);
24 digitalWrite2f(this->pin2, HIGH);
26 this->moveIncrement = inMoveIncrement;
27 this->incrementPosition = 0;
28 this->lastEncoded = 0;
29 this->mini = inMinimum;
30 this->maxi = inMaximum;
31 this->currentValue = inStartingValue;
32 this->startingCurrentValue = inStartingValue;
37 #ifdef COMMANDERS_DEBUG_MODE 39 Serial.println(F(
"This encoder have no ID defined : call begin() !"));
42 int MSB = digitalRead2f(this->pin1);
43 int LSB = digitalRead2f(this->pin2);
45 int encoded = (MSB << 1) | LSB;
48 int sum = (this->lastEncoded << 2) | encoded;
51 if (sum == 13 || sum == 4 || sum == 2 || sum == 11) inc = 1;
52 if (sum == 14 || sum == 7 || sum == 1 || sum == 8) inc = -1;
54 this->lastEncoded = encoded;
59 if (this->moveIncrement > 1)
61 this->incrementPosition += inc;
62 if (abs(this->incrementPosition) < this->moveIncrement)
67 this->incrementPosition = 0;
70 if (this->mini != this->maxi)
74 this->currentValue += inc;
76 if (this->currentValue > this->maxi)
77 this->currentValue = this->maxi;
79 if (this->currentValue < this->mini)
80 this->currentValue = this->mini;
91 #ifdef COMMANDERS_PRINT_COMMANDERS 92 void ButtonsCommanderEncoder::printCommander()
94 Serial.println(F(
" Encoder - Pin1:"));
95 Serial.print(GPIO_to_Arduino_pin(this->pin1));
96 Serial.print(F(
" / Pin2: "));
97 Serial.print(GPIO_to_Arduino_pin(this->pin2));
98 Serial.print(F(
" / Mini: "));
99 Serial.print(this->maxi);
100 Serial.print(F(
" / Maxi: "));
101 Serial.println(this->maxi);
static unsigned long RaiseEvent(unsigned long inId, COMMANDERS_EVENT_TYPE inEvent = COMMANDERS_EVENT_MOVEPOSITIONID, int inData = 0)