kk logo

Als Inkrementalgeber werden Sensoren zur Erfassung von Lageänderungen (linear) oder Winkeländerungen (rotierend) bezeichnet, die Wegstrecke und Wegrichtung bzw. Winkelveränderung und Drehrichtung erfassen können. Weitere Bezeichnungen rotierender Geber sind Inkrementaldrehgeber, Drehimpulsgeber oder allgemeiner Drehgeber. Gegenüber kontinuierlich arbeitenden Messsystemen wie Servo-Potentiometern besitzen Inkrementalgeber eine Maßverkörperung mit sich wiederholenden, periodischen Teilstrichen. Die Messung beruht auf einer Richtungsbestimmung und einer Zählung (Digitale Messtechnik). Inkrementalgeber müssen (im Gegensatz zu Absolutwertgebern) nach dem Einschalten gegebenenfalls referenziert werden, da Änderungen der Position in ausgeschaltetem Zustand nicht erfasst werden.

Funktionsweiße und Zählung eines Inkrementalgebers 

Inkrementalgeber können mit Schleifkontakten, photoelektrisch oder magnetisch arbeiten. Sie liefern am Ausgang immer zwei um 90 Grad gegeneinander phasenverschobene Signale anhand derer sich Drehrichtung und -winkel bestimmen lassen. Damit gibt es 4 verschiedene Zustände an den PINs A und B und über diese 4 Zustände lässt sich sowohl die Drehrichtung wie auch die Schritte zählen. Folgt auf ein EIN-AUS ein EIN-EIN Signal, wird nach rechts gedreht. Folgt auf ein EIN-AUS Signal ein AUS-AUS Signal wird nach links dreht usw.  

1 Inkrementalgeber mit Arduino und Ardublock programmieren

 Inkrementalgeber und Encoder Anschluss an den Arduino:

  •  Die meisten Inkrementalgeber haben 5 Anschlüsse
    • CLK: Arduino PIN 3
    • DT: Arduino PIN 2
    • SW: Arduino PIN 4
    • +: VCC 5 Volt vom Arduino
    • GND: - 5 Volt vom Arduino 

2 Inkrementalgeber mit Arduino und Ardublock programmieren

 Ardublock Software

Es gibt 2 Möglichkeiten einen Inkrementalgeber mit Ardublock zu Programmieren. Wenn du die Ardublock Maxi oder experimentell Version verwendest, kannst du auf fertige Blöcke zurückgreifen. Über eine Variable kannst du nun die Position bzw. die Schritte auslesen und speichern. Vorwärts und Rückwärts, genauso wie positive und native Zahlen, errechnet Ardublock automatisch. Über den Block "Set Position", wird der Wert des Encoders überschrieben. 

Dies kann zum Beispiel wichtig werden wenn nur bis zu einer bestimmten Zahl gezählt werden soll. Dafür sind die beiden unteren "falls" Blöcke verantwortlich. Mit diesen wird nun nicht mehr als 50 und nicht weniger als 0 gezählt.  

3 Inkrementalgeber mit Arduino und Ardublock programmieren

 Wer eine andere Version von Ardublock verwendet, wie zum Beispiel die Ardublock Version von LetsgoING, der muss auf die CODE Blöcke zurück greifen. 

  • "Code im globalen Bereich einfügen" 
    • #include <Encoder.h>
    • Encoder myEnc(2, 3);
  • Loop
    • long newPosition = myEnc.read(); if (newPosition != oldPosition) { oldPosition = newPosition;} 

 Nun ist die Position bzw. die Schritte des Encoders in der Variablen (newPosition) gespeichert und kann über eine Lila Klammer abgefragt werden. 

5 Inkrementalgeber mit Arduino und Ardublock programmieren

Hier das ganze Beispiel: 

4 Inkrementalgeber mit Arduino und Ardublock programmieren

King of my heart

Let the King of my heart
Be the mountain where I run
The fountain I drink from
Oh, He is my song

Ronnie

schwäbischer tüftler und bastler, kraftsportler, ADHS power, 43 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

ronnie berzins at mee