Zum Inhalt springen

3. Erweiterung: Geschwindigkeitsberechnung

Die h-Datei

class Motor
{
 ...
  float mmps;     // Auflösung in mm / Schritt

  float getS();   // Liefert die zurückgelegte Strecke
  float getV();   // Liefert die Geschwindigkeit
};
Motoren werden sehr oft dazu genutzt, um ein Fahrzeug anzutreiben. Wenn man weiß, wie weit das Fahrzeug pro Schritt fährt, kann man leicht die zurückgelegte Strecke und die Geschwindigkeit berechnen.
Diese Angabe wird in der Motor-Klasse in der Variablen mmps gespeichert.

Die cpp-Datei

float Motor::getS()
{
  return steps*mmps;
}
Für die zurückgelegte Strecke \(s\) gilt \(s = steps \cdot mmps\).
float Motor::getV() //Geschwindigkeit in mm/s
{
  if (micros()-talt>40000) f=0.0;
  return f*mmps;
}
Für die Geschwindigkeit \(v\) gilt \(v = f \cdot mmps\).

Anwendung der Klasse Motor

MethodeBemerkung
Motor(int en,int m1,int m2,int i1,int i2,float mmps);Konstruktor der Klasse
en: Enablepin
m1: Motorpin 1
m2: Motorpin 2
i1: Inputpin1
i2: Inputpin2
mmps: Strecke, die pro Schritt zurückgelegt wird
void power(int p);Setzt die Motorleistung auf p \( (-255 \leq p \leq 255)\). Bei \(p<0\) läuft der Motor rückwärts.
void richtung();Wird von einer Interruptmethode angesprungen und berechnet die Drehschritte und die Drehfrequenz.
long getSteps();Liefert die bisher gemachten Eintelschritte
float getF();Liefert die Frequenz Einzelschritte/Sekunde
float getS();Liefert die zurückgelegte Strecke
float getV();Liefert die aktuelle Geschwindigkeit

Das Beispiel kann hier heruntergeladen werden.