kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




AVR-Projekt coach2.2_04_drehgeber - Verwendung des Drehgebers zur Erfassung der Winkelgeschwindigkeit

  • Folgende virtuellen Klassen wurden implementiert:
class DrehgeberBASIS
{
    public:
                virtual int holeOmegaViertel();
};

Code 0-1: Virtuelle Basisklasse der Klasse Drehgeber

Methodenname Beschreibung Beispiel
int holeOmegaViertel() Liefert Integer-Werte, bei denen eine Einheit 1/4 rad/s entspricht. omega=0.25*(double)drehgeber.holeOmegaViertel();

Tabelle 0-1: Methoden der Klasse Drehgeber

  • Achten Sie beim Testen des Hauptprogramms auf folgendes:
  • Das Programm arbeitet unter Verwendung des Hyperterminals und meldet sich dort mit Hinweisen zur Benutzung.
  • Kanal Z muß durch Kanal B ersetzt worden sein (s.o.)
  • Bei positiven Werten sollte das Fahrzeug gerade vorwärts fahren, bei negativen rückwärts.
  • Es wurde auf effiziente Implementierung mit wenig Rechen- und Speicherbedarf geachtet. Die Auflösung von 1/4 rad/s paßt zum Meßverfahren.
  • Für 0,0251111s werden Kanal A und B abgetastet.
  • Es gilt: omega = Anzahl_Flankenwechsel*2PI/(1000*Dauer)
  • hier: omega = Anzahl_Flankenwechsel*2PI/(1000*0.0251111s)
  • deshalb: omega_viertel ungefähr = Anzahl_Flankenwechsel
  • Als "Stopuhr" wird Timer 2 verwendet.
  • Um die Drehrichtung zu erkennen, wird bei positiver Flanke bei Kanal A geprüft, ob die letzte Flanke bei Kanal B ebenfalls positiv war (Rückwärtsfahrt), oder nicht (Vorwärtsfahrt).
  • Machen Sie sich schon einmal Gedanken darüber, wie das Drehgebersignal möglichst einfach numerisch differenziert oder integriert werden kann, um die Voraussetzungen zur Implementierung eines PID- oder Zustands-Reglers zu schaffen.