Энкодер поворотный с кнопкой
Скетч для проверки энкодера KY-040
int pinA = 6; // Подсоединить к CLK на KY-040 int pinB = 5; // Подсоединить к DT on KY-040 int pinbtn = 4; //Кнопка int encoderPosCount = 0; int pinALast; int aVal; boolean bCW; void setup() { pinMode (2, OUTPUT); digitalWrite(2, LOW); //подадим землю на D2 pinMode (3, OUTPUT); digitalWrite(3, HIGH); //подадим 5В на D3 pinMode (pinbtn, INPUT); pinMode (pinA, INPUT); pinMode (pinB, INPUT); pinALast = digitalRead(pinA); Serial.begin (9600); } void loop() { aVal = digitalRead(pinA); int btnVal = digitalRead(pinbtn); if (btnVal == LOW) Serial.println("Btn pressed"); if (aVal != pinALast) { if (digitalRead(pinB) != aVal) { encoderPosCount ++; bCW = true; } else { bCW = false; encoderPosCount--; } Serial.print ("Rotated: "); if (bCW) { Serial.println ("clockwise"); } else { Serial.println("counterclockwise"); } Serial.print("Encoder Position: "); Serial.println(encoderPosCount); } pinALast = aVal; }
Unknown