LBotics.at

SET_OUT (port, value)

Mit dieser Funktion wird festgelegt, an welchem Eingang ein Motor angeschlossen ist. Diese Funktion muss vor der Funktion EVC_INIT() aufgerufen werden!

Der Parameter port beschreibt die Nummer des Ausgangs (OUT_A, OUT_B, OUT_C oder OUT_D).

port: OUT_A, OUT_B, OUT_C, OUT_D

value: OUT_MOTOR

Beispiel
// an OUT-Port B ist ein Motor angeschlossen
SET_OUT(OUT_B, OUT_MOTOR);
WRITE_OUT(port, mode, value)

Mit der Funktion WRITE_OUT() wird ein Motor angesteuert. Mit dem Parameter wird der Anschluss ausgewählt. Im Parameter mode wird der gewünschte Betriebsmodus des Motors festgelegt. Der Wert des Parameters value bezieht sich auf den gewählten Betriebsmodus.

port: OUT_A, OUT_B, OUT_C, OUT_D

mode: MOTOR_POWER, MOTOR_SPEED, MOTOR_STOP, MOTOR_POS, MOTOR_RESET

value (MOTOR_POWER): -100 ... + 100

value (MOTOR_SPEED): -100 ... + 100

value (MOTOR_STOP): MOTOR_COAST, MOTOR_BRAKE

value (MOTOR_POS): -XXX ... + XXX

value (MOTOR_RESET): 0

MOTOR_POWER

Der Motor wird mit einer Leistung zwischen 0% und 100% betrieben. Erfährt der Motor einen
Widerstand (z. B. Bergauf-Fahren), so verringert sich die Drehgeschwindigkeit des Motors und wird
nicht nachgeregelt (open loop). Das Vorzeichen des im Parameter value festgelegten Werts gibt die
Drehrichtung an.

Beispiel
// der Motor an Port A wird mit einer Leistung von 50% betrieben
WRITE_OUT(OUT_A, MOTOR_POWER, 50);
MOTOR_SPEED

Wird ein Motor in diesem Modus betrieben, so stellt man mit dem Parameter value die gewünschte
Geschwindigkeit ein. In diesem Modus steuert ein Regelkreis die Leistung des Motors und versucht je
nach Widerstand die Geschwindigkeit beizubehalten (closed loop). Das Vorzeichen des im Parameter
value festgelegten Werts gibt die Drehrichtung an.

Beispiel
// der Motor an Port B soll sich mit einer Geschwindigkeit 70% drehen
WRITE_OUT(OUT_B, MOTOR_SPEED, 70);
MOTOR_STOP

Ein Motor lässt sich auf zwei unterschiedliche Arten abbremsen. Im ersten Fall wird die Stromzufuhr
zum Motor unterbrochen und der Motor läuft aufgrund der Trägheit nach bis die Drehung zum
Stillstand kommt (MOTOR_COAST). Soll ein Motor unverzüglich angehalten werden, so übergibt
man den Wert MOTOR_BRAKE. Dabei wird der Motor für eine sehr kurze Zeitspanne in die
entgegengesetzte Drehrichtung versetzt, wodurch ein sofortiges Abbremsen erreicht wird.

Beispiel
// der Motor an Port B wird gestoppt und laeuft nach
WRITE_OUT(OUT_B, MOTOR_STOP, MOTOR_COAST);
// der Motor an Port C wird unverzueglich abgebremst
WRITE_OUT(OUT_C, MOTOR_STOP, MOTOR_BRAKE);
MOTOR_POS

Mit dem Betriebsmodus MOTOR_POS kann ein Motor um einen vorgegebenen Winkel gedreht
werden. Im Parameter value wird der Drehwinkel und mit dem Vorzeichen die Drehrichtung festgelegt.

Beispiel
// der Motor an Port D soll sich um 90 Grad drehen
WRITE_OUT(OUT_D, MOTOR_POS, 90);
MOTOR_RESET

Wird ein Motor im Betriebsmodus MOTOR_POS betrieben, so wird der gewünschte Drehwinkel von der letzten Position gemessen. Mit MOTOR_RESET kann diese Position zurückgesetzt werden.

Beispiel
// zurücksetzen des Drehwinkels des Motors an Port D
WRITE_OUT(OUT_D, MOTOR_RESET, 0);