Hej
Jag använder det färdiga exemplet från Arduino playground:
Notera att namn är bytta och det handlar om flera encorders. Men om jag vet koden första så vet jag koden för de andra också!
Syftet med mina encorders är att det ska fungera som diverse rotary knappar i en B737 cockpit. T.ex. Brake rotary knappen kan ställas i 6 lägen m.m.
Mina encorders har 24 steg där jag vill att det steget som jag nu har inställt på ska visas på serial monitor t.ex. 12 om jag har vridit fram till den medsols och -12 om jag vridit till den motsols. Går det att få till?
Fråga så lägger jag upp en bild iså fall!
"int val;
int VC24A = 23;
int VC24B = 22;
int VC24ABPos = 0;
int VC24ABPinALast = LOW;
int n = LOW;
void setup() {
pinMode (VC24A,INPUT_PULLUP);
pinMode (VC24B,INPUT_PULLUP);
Serial.begin (9600);
}
void loop() {
n = digitalRead(VC24A);
if ((VC24ABPinALast == LOW) && (n == HIGH)) {
if (digitalRead(VC24B) == LOW) {
VC24ABPos--;
} else {
VC24ABPos++;
}
Serial.print (VC24ABPos);
Serial.print ("/");
}
VC24ABPinALast = n;
}"
Frågor på koden:
1.)
Kort och gott, är dessa rader för att man ska ha något att utgå från, för att kortet ska veta vad som händer om man inte vrider på Encordern och hur lägena för encordern är före
och efter de olika pos?
Svårt att förklara men jag förstår till 25% varför dessa finns!
int val;
int VC24ABPos = 0;
int VC24ABPinALast = LOW;
int n = LOW;
2.)
Dessa förstår jag till 40%!
Det har med att encordern vill vet när jag vrider och dess läge den hamnade på, sedan ska det fungera åt båda håll!
n = digitalRead(VC24A);
if ((VC24ABPinALast == LOW) && (n == HIGH)) {
if (digitalRead(VC24B) == LOW) {
VC24ABPos--;
} else {
VC24ABPos++;
Mvh Fredrik