Encoder von Alps
1 Info Inkrementalgeber
Encoder Alps EC05E

Drehzahlmessung und Positionierung ist in der heutigen Antriebstechnik für die Regelung ein ganz wesentlicher Baustein.

Eine Möglichkeit dies zu bewerkstelligen liegt in der Verwendung von sogenannten Inkrementalgebern, auch Encodern. Diese erzeugen nach klar definierten Abständen Pulsfolgen welche durch eine logische Auswertung auf eine Position schließen lassen. Misst man die Zeit kann man sogar auch die Geschwindigkeit berechnen.

Der Vorteil des dsPIC33-Mikrocontrollers besteht darin, dass er ein Encoder-Modul besitzt welches im Hintergrund läuft und somit die Position unabhängig vom momentanen Programmstatus überwacht.

2 Funktion von Inkrementalgebern
Pulsfolgen eines Encoders

Die Pulsfolgen sehen wie in der Abbildung aus. Ausgehend von der Haltestellung wird pro Rasterposition, bzw. pro Impuls, das Signal A und B einmal aktiviert und wieder zurück gesetzt.

Je nach Drehrichtung wird dabei aber entweder zuerst das Signal A oder zuerst das Signal B gesetzt. Auf diese Art kann die Drehrichtung bestimmt werden.

Folgende Positionen werden somit bspw. in der Rechtsdrehung durchlaufen:
01 if(A==1 && B==0) ...
02 if(A==1 && B==1) ...
03 if(A==0 && B==1) ...
04 if(A==0 && B==0) ...

3 Der Inkrementalgeber für LIME 2
Schaltung Encoder mit Pull-down-Widerständen

Der Inkrementalgeber auf LIME 2 ist an 2 Pull-Down-Widerstände parallel zu SU und SD angeschlossen. Der Vorteil: So lässt sich die Pulsfolge auch mit den beiden Tastern testen und man versteht die Funktion anschaulich.

Alternativ lässt sich ein Inkrementalgeber auch mit Pull-Up-Widerständen betreiben. Grund für die Widerstände liegt einzig und allein darin, dass man keine Schwebezustände möchte.

4 Encoder-Modul des Mikrocontrollers
Wert-Anzeige des Encoder-Moduls

Das Encoder-Modul QEI (quadrature encoder interface) des dsPIC33-Mikrocontrollers zählt jede Flanke. So kommen pro Impuls, sprich von einer Haltestellung zur nächsten, vier Flanken zusammen.

Für die Programmierung besitzt das Modul verschiedene Steuer- und Werteregister. Der aktuelle Zählerstand lässt sich einfach über das Register POS1CNTL auslesen:
01 int countl;
02 char T1[9];
03 countl=POS1CNTL;
04 sprintf(T1,"Pos:%3d ",countl/4);
05 LCDlineout(T1,2);

5 Bibliothek für das Encoder-Modul
Bibliothek

Das Encoder-Modul wird über die Bibliothek QEIconfig.h und QEIconfig.c eingebunden. Durch den Aufruf der Funktion void QEIinit(void) wird das Modul aktiviert.

01 QEIinit();



Aufgabe 1 Manuelle Auswertung des Inkrementalgebers

Encoder Alps

Programmiere manuell den Encoder und zeige die aktuelle Position am LCD an.

  1. Erstelle das Projekt 12-QEI und schreibe die Datei 12-QEI-1.c, in der die aktuelle Position ermittelt wird.
  2. Funktioniert das Programm auch mit den Tastern SU und SD?

Aufgabe 2 Encoder-Modul QEI

Alps Encoder mit LCD

Der Alps-Encoder EC05E wird mit dem Encoder-Modul ausgewertet. Zur Verwendung des Encoder-Moduls benötigst du die Bibliotheksdateien QEIconfig.h und QEIconfig.c.

  1. Erstelle die Datei 11-QEI-2.c, in der mit Hilfe des Encoder-Moduls die Position des Inkrementalgebers erfasst wird.
  2. Binde alle notwendigen Bibliotheken ein.
  3. Speicher den aktuellen Wert auf einer Variable und gib diesen am LCD mit der Funktion sprintf(...) aus.
  4. Teste die Funktion auch mit den Tastern SU und SD. Welche Tastenkombination ist zum zählen notwendig?

Entspann dich erst mal ...

Weltende von Jakob van Hoddis

DemBürgerfliegtvomspitzenKopfderHut,
InallenLüftenhallteswieGeschrei,
Dachdeckerstürzenabundgehnentzwei
UndandenKüsten–liestman–steigtdieFlut.

DerSturmistda,diewildenMeerehupfen
AnLand,umdickeDämmezuzerdrücken.
DiemeistenMenschenhabeneinenSchnupfen
DieEisenbahnenfallenvondenBrücken.

Auflockerungsübung

Leider sind bei dem expressionistischen Gedicht von Jakok von Hoddis die Leerzeichen verschwunden.

1. Lies das Gedicht so schnell wie möglich.

2. Wie lange brauchst du, um die Anzahl der Wörter zu zählen?


© mylime.info