Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
electronics:zss600-001-100b-5l [2019-03-31 14:03] Martin Prochnowelectronics:zss600-001-100b-5l [2019-03-31 15:47] – [ZSS600-001-100B-5L mit Arduino Pro Micro auslesen] Martin Prochnow
Zeile 13: Zeile 13:
 ^ Encoder ^ Arduino Pro Micro ^ ^ Encoder ^ Arduino Pro Micro ^
 | 0V      | GNC               | | 0V      | GNC               |
-| Vcc     | RAW (5V)          |+| Vcc     | RAW (5V direkt von USB) |
 | A       | D2                | | A       | D2                |
 | B       | D3                | | B       | D3                |
Zeile 21: Zeile 21:
 ===== Code ===== ===== Code =====
  
-Der Encoder prelltdaher ist ein Debouncing notwendig~700µSec hat sich in meinen Tests als guter Wert herausgestellt.+Die folgenden beiden Bilder zeigen die Impulsfolge beim Drehen des Encoders (Kanal 1 ist Encoder-Ausgang AKanal 2 ist Encoder-Ausgang B). 
 + 
 +{{:electronics:rotary_encoder_cw.png?nolink|Drehen im Uhrzeigersinn}} {{:electronics:rotary_encoder_ccw.png?nolink|Drehen gegen den Uhrzeigersinn}} 
 + 
 +Wenn A auf High steht, muss geprüft werden, ob B auf Low (Drehung im Uhrzeigersinn) oder auch auf High (Drehung gegen den Uhrzeigersinn) steht. 
 + 
 +Damit das ganze zügig passiert, wird A mittels Interrupt überwacht.
  
 Der Zustand der Pins wird über das entsprechende Input-Register direkt eingelesen, um mit der Abarbeitung des Interrupt-Handlers so schnell wie möglich fertig zu werden. Der Zustand der Pins wird über das entsprechende Input-Register direkt eingelesen, um mit der Abarbeitung des Interrupt-Handlers so schnell wie möglich fertig zu werden.
  
-Wenn ein anderer Arduino-Typ verwendet werden sollmuss der Teil mit dem Einlesen der Input-Register angepasst werden. Und wahrscheinlich ist der verwendete Interrupt auch ein anderer.+Der Encoder prelltdaher ist ein Debouncing notwendig. ~700µSec hat sich in meinen Tests als guter Wert herausgestellt.
  
 <sxh cpp> <sxh cpp>
Zeile 69: Zeile 75:
 } }
 </sxh> </sxh>
 +
 +<note>Wenn ein anderer Arduino-Typ verwendet werden soll, muss der Teil mit dem Einlesen der Input-Register angepasst werden. Und wahrscheinlich ist der verwendete Interrupt auch ein anderer.
 +</note>
  
 {{tag>Arduino}} {{tag>Arduino}}
  • Zuletzt geändert: 2019-03-31 20:20