ロータリーエンコーダ
/*
ロータリーエンコーダ
*/
int val;
int encoder0PinA = 5;
int encoder0PinB = 4;
int encoder0Pos = 0;
int encoder0PinALast = LOW;
int n = LOW;
int outPin13 = 13;
int outPin12 = 12;
void setup() {
pinMode (encoder0PinA, INPUT);
pinMode (encoder0PinB, INPUT);
Serial.begin (115200);
pinMode(outPin13, OUTPUT);
pinMode(outPin12, OUTPUT);
}
void loop() {
n = digitalRead(encoder0PinA);
if ((encoder0PinALast == LOW) && (n == HIGH)) {
if (digitalRead(encoder0PinB) == LOW) {
encoder0Pos--;
digitalWrite(outPin13, LOW);
digitalWrite(outPin12, HIGH);
delay(abs(encoder0Pos));
} else {
encoder0Pos++;
digitalWrite(outPin12, LOW);
digitalWrite(outPin13, HIGH);
delay(abs(encoder0Pos));
}
Serial.print (encoder0Pos);
Serial.print ("/");
}
encoder0PinALast = n;
}
YouTube