Rotary encorders till B737 panel

Hej

Jag behöver två rotary encorder och jag provar decodrarna med din kod inkl interrupt och ändrar lite i koden till mina namn m.m.:

const int MALW51A = 2; // Ext. Interrupts (int.0)
const int MALW51B = 3;

void setup() {
  Serial.begin(9600);

pinMode(MALW51A, INPUT_PULLUP);  // Ext. Interrupts (int.0)
attachInterrupt(0, LALT, CHANGE);
pinMode(MALW51B, INPUT_PULLUP);
}


void loop() {
}

void LALT()
{
  int MALW51Ap = digitalRead(MALW51A);
  int MALW51Bm = digitalRead(MALW51B);
    if (MALW51Ap != MALW51Bm)
    {
      Serial.println("clockwise");
    }
    else
    {
      Serial.println("counterclockwise");
    }
 }

1.)
Det skrivs bara ut när jag vrider på den och det är inget problem, bara bra om det inte skrivs ut för mycker :slight_smile:

2.)
Det skrivs alltid ut "counterclockwise" oavsett vilket håll jag vrider?

3.)
Den stoppar att läsa av komponentern efter några sekunders vridning

Din kod kanske inte är komplett men oavsett det så har jag inte lött utan jag har tryckt fast så gott det går sådana:
Female - Male Jumper Cables for Arduino på de små benen, är nog det som är orsaken då det är svårt att få fast dem helt :frowning:

Det här med dubbelstuds med pulserna gör inget då, ecordrarnas funktion ska vara att likan en ratt där jag antingen vrider upp ett värde eller ner det!

Men kanske är det ändå en annan typ av komponent jag behöver?

Jag har ju rotary potentiometer men de kan man bara vrida ca 140 grader och sedan tillbaka. Denna funktion kräver att jag kan vrida den i flera varv utan stopp!

Därför har utgått från encorders!
Mvh Fredrik