mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sketch Arduino Ky-040 auslesen


Autor: Sebastian Z. (xhamster)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
In dem Sketch Arduino Ky 040 auslesen ist die Code Zeile (d=c^d);.

Was sagt diese Zeile?

int clock = 2;             // Define encoder pin A
int data = 3;              // Define encoder pin B
int count = 0;             // pre-init the count to zero
int c = LOW;               // pre-init the state of pin A low
int cLast = LOW;           // and make its last val the same - ie no change
int d = LOW;               // and make the data val low as well
 
void setup() {
  pinMode (clock,INPUT);  // setup the pins as inputs
  pinMode (data,INPUT);
  Serial.begin (9600);    // and give some serial debugging
}
 
void loop() {
  c = digitalRead(clock); // read pin A as clock
  d = digitalRead(data);  // read pin B as data
 
  if (c != cLast) {       // clock pin has changed value... now we can do stuff
    d = c^d;              // work out direction using an XOR
    if ( d ) {
      count--;            // non-zero is Anti-clockwise
    }else{
      count++;            // zero is therefore anti-clockwise
    }
    Serial.print ("Jog:: count:");
    Serial.println(count);
    cLast = c;            // store current clock state for next pass
  }
}

: Verschoben durch Moderator
Autor: Sebastian R. (sebastian_r569)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist d = c XOR d, also Exklusiv-Oder.

Dadurch lässt sich bei einem Encoder die Drehrichtung erkennen.

Autor: Sebastian Z. (xhamster)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sebastian R. schrieb:
> Das ist d = c XOR d, also Exklusiv-Oder.
>
> Dadurch lässt sich bei einem Encoder die Drehrichtung erkennen.

Danke.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.