04-12-2017, 10:10
(Ten post był ostatnio modyfikowany: 06-12-2017, 15:37 przez CEO.
Powód edycji: Proszę używać jak najmniej odnośników zewnętrznych
)
Znalazłem prosty kod dla enkodera, tutaj.
Może coś spaprałeś z połączeniami. Sprawdź, czy nie masz zimnych lutów.
Kod:
/* Read Quadrature Encoder
Connect Encoder to Pins encoder0PinA, encoder0PinB, and +5V.
Sketch by max wolf / www.meso.net
v. 0.1 - very basic functions - mw 20061220
*/
int val;
int encoder0PinA = 3;
int encoder0PinB = 4;
int encoder0Pos = 0;
int encoder0PinALast = LOW;
int n = LOW;
void setup() {
pinMode (encoder0PinA, INPUT);
pinMode (encoder0PinB, INPUT);
Serial.begin (9600);
}
void loop() {
n = digitalRead(encoder0PinA);
if ((encoder0PinALast == LOW) && (n == HIGH)) {
if (digitalRead(encoder0PinB) == LOW) {
encoder0Pos--;
} else {
encoder0Pos++;
}
Serial.print (encoder0Pos);
Serial.print ("/");
}
encoder0PinALast = n;
}
Może coś spaprałeś z połączeniami. Sprawdź, czy nie masz zimnych lutów.