Motorsteuerung 55#

Einführung#

Die Klasse motor55 dient zur Steuerung eines VEX-Motorcontrollers 55, der mit dem EXP Brain verbunden ist. Der Motorcontroller 55 ist ein älterer Motorcontroller, der für den Betrieb von 2-Draht-Gleichstrommotoren ausgelegt ist.

Der VEX-Motorcontroller 55.

Klassenkonstruktoren#

1 — Erstellt ein motor55 Objekt am angegebenen Smart Port.

motor55(
  int32_t index );

2 — Erzeugt ein motor55 Objekt am angegebenen Smart Port und ändert die positive Drehrichtung.

motor55(
  int32_t index,
  bool    reverse );

3 — Erzeugt ein motor55 Objekt am angegebenen Smart Port, legt die maximale Ansteuerspannung fest und ändert die positive Drehrichtung.

motor55(
  int32_t index,
  double  maxv,
  bool    reverse );

Klassendestruktor#

Zerstört das Objekt motor55 und gibt zugehörige Ressourcen frei.

~motor55();

Parameter#

Parameter

Typ

Beschreibung

index

int32_t

Der Smart Port, an den der Motor Controller 55 angeschlossen ist, wird als PORTxgeschrieben, wobei x die Portnummer ist (zum Beispiel PORT1).

reverse

bool

Bestimmt, ob die Drehrichtung des Motors umgekehrt ist:

  • true — Die positive Drehrichtung des Motors ist umgekehrt.
  • false — Die positive Drehrichtung des Motors bleibt normal.

maxv

double

Die maximale Spannung, die der Motor Controller 55 an den Motor anlegen kann.

Beispiel#

// Create the motor55 instance in Smart Port 1
motor55 Motor1 = motor55(PORT1);

Mitgliedsfunktionen#

Die Klasse motor55 umfasst die folgenden Memberfunktionen:

  • spin — Dreht den Motor in eine bestimmte Richtung.

  • stop — Stoppt den Motor.

  • setVelocity — Gibt dem Gleichstrommotor die Drehzahl vor.

  • setStopping — Legt das Anhalteverhalten fest (Ausrollen oder Bremsen).

  • setReversed — Legt fest, ob die Drehrichtung des Motors umgekehrt wird.

  • current — Gibt den elektrischen Strom des Motors zurück.

  • voltage — Gibt die elektrische Spannung des Motors zurück.

  • temperature — Gibt die Motortemperatur zurück.

  • getMotorType — Gibt den erkannten Motor-/Controller-Typ zurück.

  • installed — Gibt zurück, ob der Motor Controller 55 am angegebenen Smart Port erkannt wird.

Bevor Sie eine der Memberfunktionen von motor55 aufrufen, muss eine Instanz erstellt werden, wie unten gezeigt:

/* This constructor is required when using VS Code.
Motor Controller 55 configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create the motor55 instance in Smart Port 1
motor55 MC55_1 = motor55(PORT1);

spin#

Dreht den Motor unbegrenzt in die angegebene Richtung.

Verfügbare Funktionen

1 — Dreht sich mit der aktuell konfigurierten Geschwindigkeit.

void spin(
  directionType dir );

2 — Dreht sich bei der angegebenen Spannung.

void spin(
  directionType dir,
  double        voltage,
  voltageUnits  units );

Parameter

Parameter

Typ

Beschreibung

dir

directionType

Die Drehrichtung des Motors: forward oder reverse.

voltage

double

Der an den Motor angelegte Spannungswert. Ein negativer Wert bewirkt eine Drehung entgegengesetzt zur angegebenen Drehrichtung dir.

units

voltageUnits

Die Einheit zur Darstellung der Spannung:

  • volt — Volt
  • voltageUnits::mV — Millivolt

Rückgabewerte

Diese Funktion gibt keinen Wert zurück.

Notizen

  • Diese Funktion wartet nicht, und das Programm wird unmittelbar nach dem Aufruf fortgesetzt.

  • Der Motor dreht sich so lange weiter, bis stop aufgerufen wird oder ein weiterer spin verwendet wird.

stop#

Unterbricht die Drehung des Motors mit Hilfe des aktuell konfigurierten Bremsmodus.

Verfügbare Funktionen

void stop();

Parameter

Diese Funktion benötigt keine Parameter.

Rückgabewerte

Diese Funktion gibt keinen Wert zurück.

Notizen

  • Stoppt den Motor unter Verwendung des aktuell konfigurierten Stoppmodus, der durch setStopping festgelegt wurde.

setVelocity#

Legt die Drehzahl eines Gleichstrommotors fest. Ein höherer Prozentsatz bewirkt eine höhere Drehzahl, ein niedrigerer Prozentsatz eine niedrigere.

Bei jedem Projekt läuft jeder angeschlossene Gleichstrommotor standardmäßig mit 50 % Drehzahl.

Verfügbare Funktionen

void setVelocity(
    double       velocity,
    percentUnits units = percent );

Parameter

Parameter

Typ

Beschreibung

velocity

double

Die Drehzahl, mit der man sich von 0 % auf 100 % dreht, wenn man percent verwendet.

units

percentUnits

Die Geschwindigkeitseinheit: percent pct — Prozent.

Rückgabewerte

Diese Funktion gibt keinen Wert zurück.

Notizen

  • Bei jedem nachfolgenden Aufruf von spin ohne Angabe einer Spannung wird dieser Wert verwendet.

setStopping#

Legt fest, wie sich ein Motor verhält, wenn er anhält.

Verfügbare Funktionen

void setStopping(
    brakeType mode );

Parameter

Parameter

Typ

Beschreibung

mode

brakeType

Der beim Aufruf von stop angewendete Stoppmodus:

  • coast — Motor rollt aus
  • brake — Motor stoppt schnell durch Bremsen

Rückgabewerte

Diese Funktion gibt keinen Wert zurück.

Notizen

  • Jeder nachfolgende Aufruf von stop wird diesen Stoppmodus verwenden.

  • Der Motorcontroller 55 unterstützt nur die Modi coast und brake hold wird nicht unterstützt.

setReversed#

Legt fest, ob die Drehrichtung des Motors umgekehrt wird.

Verfügbare Funktionen

void setReversed(
    bool value );

Parameter

Parameter

Typ

Beschreibung

value

bool

Ob die Drehrichtung des Motors umgekehrt wird:

  • true — Dreht die Drehrichtung des Motors um.
  • false — Stellt die Drehrichtung des Motors auf den Standardwert zurück.

Rückgabewerte

Diese Funktion gibt keinen Wert zurück.

Notizen

  • Der Aufruf von setReversed entspricht der Änderung des Parameters reverse im Konstruktor.

current#

Der Wert current gibt an, wie viel Strom der Gleichstrommotor verbraucht. Der Strom ist die elektrische Menge, die durch den Gleichstrommotor fließt. Die Angabe erfolgt in Ampere (A) und liegt zwischen 0,0 und 1,2 A.

Ein höherer Stromwert bedeutet, dass der Gleichstrommotor mehr Strom verbraucht. Dies kann vorkommen, wenn der Gleichstrommotor etwas Schweres anhebt, gegen ein Hindernis drückt oder versucht, sich aus einer Blockade zu bewegen.

Dies kann genutzt werden, um zu überprüfen, ob der Gleichstrommotor während einer Bewegung überlastet ist. Bleibt der Strom hoch, kann der Motor sich erwärmen oder weniger effizient arbeiten.

Available Functions

1 — Gibt den elektrischen Strom des Gleichstrommotors in Ampere zurück.

double current(
  currentUnits units = amp );

2 — Gibt den elektrischen Strom des Gleichstrommotors als Prozentsatz des maximalen Nennstroms zurück.

double current(
  percentUnits units );

Parameters

Parameter

Typ

Beschreibung

units

currentUnits

Die Einheit zur Darstellung der Stromstärke:amp (Standard) — Ampere

units

percentUnits

Represents current as a percentage of the motor’s maximum rated current:percent / pct — percent

Return Values

Gibt einen Wert vom Typ double zurück, der angibt, wie viel elektrischen Strom der Gleichstrommotor in den angegebenen Einheiten verbraucht.

voltage#

Gibt die dem Motor zugeführte elektrische Spannung zurück.

Available Functions
double voltage(
  voltageUnits units = volt );

Parameter

Parameter

Typ

Beschreibung

units

voltageUnits

Die Einheit zur Darstellung der Spannung:

  • volt (Standard)
  • voltageUnits::mV — Millivolt

Rückgabewerte

Gibt einen Wert vom Typ double zurück, der die elektrische Spannung des Motors in den angegebenen Einheiten darstellt.

temperature#

temperature gibt die Temperatur des Gleichstrommotors zurück.

Die Motortemperatur gibt an, wie warm der Gleichstrommotor ist. Eine höhere Temperatur bedeutet, dass der Gleichstrommotor während des Betriebs wärmer wird. Um seine volle Leistung zu erbringen, sollte die Motortemperatur unter 55 °C bleiben.

Wird der Gleichstrommotor zu heiß, reduziert er zum Selbstschutz seinen maximalen Strom. Bei 70 °C schaltet sich der Motor ab, bis er abgekühlt ist.

Dies kann verwendet werden, um zu überprüfen, ob der Gleichstrommotor bei wiederholten Bewegungen, langen Läufen oder beim Drücken gegen ein Objekt zu heiß wird.

Available Functions

1 — Gibt die Temperatur des Gleichstrommotors als Prozentsatz der maximalen Betriebstemperatur zurück.

double temperature(
  percentUnits units = percent );

2 — Gibt die Temperatur des Gleichstrommotors in physikalischen Temperatureinheiten zurück.

double temperature(
  temperatureUnits units );

Parameter

Parameter

Typ

Beschreibung

units

percentUnits

Die Einheit zur Darstellung der Gleichstrommotortemperatur in Prozent:

  • percent Prozent pct — Prozent

units

temperatureUnits

Die Einheit zur Angabe der Temperatur eines Gleichstrommotors in Grad:

  • celsius — Grad Celsius
  • fahrenheit — Grad Fahrenheit

Rückgabewerte

Gibt einen Wert vom Typ double zurück, der die Temperatur des Gleichstrommotors in den angegebenen Einheiten darstellt.

Notizen

  • Der Betriebstemperaturbereich für den Motor beträgt ungefähr 20°C (68°F) bis 70°C (158°F).

getMotorType#

Gibt den erkannten Motor-/Controller-Typ zurück.

Verfügbare Funktionen

int32_t getMotorType();

Parameter

Diese Funktion benötigt keine Parameter.

Rückgabewerte

Gibt einen int32_t zurück, der den erkannten Motor-/Controller-Typ angibt:

  • 0 — 11W Motor
  • 1 — 5.5W Motor
  • 2 — Motor Controller 55

installed#

Gibt zurück, ob der Motor Controller 55 mit dem EXP Brain verbunden ist.

Available Functions
bool installed();

Parameter

Diese Funktion benötigt keine Parameter.

Rückgabewerte

Gibt einen booleschen Wert von bool zurück, der angibt, ob der Motorcontroller 55 angeschlossen ist.

  • true — The Motor Controller 55 is connected.
  • false — The Motor Controller 55 is not connected.