NXC: Motoren I

Aus Wikibooks

Bestimmung der Motoren[Bearbeiten]

Der NXT besitzt drei Eingänge (Ports) für die Motoren. Sie heißen A, B und C. Möchte man zum Beispiel Motor A ansprechen, schreibt man in NXC einfach OUT_A. Möchte man mehrere Motoren ansprechen, kann man folgende Schreibweisen nutzen: OUT_C + OUT_A oder OUT_AC. Bei der zweiten Schreibweise ist es jedoch wichtig, dass die Motorbuchstaben nach dem Alphabet geordnet sind. Falls dies nicht der Fall ist, wird der Compiler einen Fehler melden.

Einfaches Ansteuern der Motoren[Bearbeiten]

Es gibt einen einfachen Befehl, die Motoren zu starten ,und einen etwas komplexeren. Zuerst den einfachen:

task main()
{
  OnFwd(OUT_A, 100);
  Wait(2000);
  Off(OUT_A);
  OnRev(OUT_C, 75);
  Wait(3000);
}

Schon vier neue Funktionen. OnFwd ist eine Funktion, die als Argument die Motorports und den Prozentwert der Geschwindigkeit erhält. Die Motoren drehen sich also mit einem prozentualen Anteil der (vollen) Geschwindigkeit vorwärts. Das Gegenteil ist OnRev, dort drehen sie sich rückwärts. Die Funktion Wait gehört eigentlich nicht zu den Motorfunktionen, ist aber unentbehrlich. Sie wartet so viele tausendstel-Sekunden wie als Argument übergeben. Ohne das Warten würde sofort zu nächsten Befehl gesprungen. Die Funktion Off schaltet die Motoren ab und bremst sie aus.

Komplexeres Starten der Motoren[Bearbeiten]

Der komplexe Befehl, den Motor zu starten, lässt einen Motor eine genaue Strecke fahren. Man kann die Gradzahl angeben, um die der Motor sich drehen soll:

  RotateMotor(OUT_A, 75, 30) //Dreht Motor A um 30° bei 75 Prozent Leistung