HSG

Aktuelle Seite: HSG/Fächer/Informatik/ MSR/Robotik/Robotik-AG/NXC

Wiederholung: Alternative, Sensor, p7.nxc

task main()
{
  SetSensorTouch(IN_1);
  while (true)
  {
    if (SENSOR_1 == 1)
      TextOut(50,30,"1");
    else
      TextOut(50,30,"0");
  };
}

Die Anweisung 'SetSensorTouch(IN_1);' legt fest, dass an Eingang 1 ein Berührungssensor angeschlossen wird. Die folgende while-Schleife ist eine Endlosschleife, denn die Schleifenbedingung ist immer true. Das Programm muss also durch Drücken der grauen Break-Taste abgebrochen werden. Im Schleifenkörper wird immer wieder der Wert von Sensor_1 abgefragt. Wenn (if) die Bedingung erfüllt ist, so wird die erste Alternative ausgeführt, sonst (else) wird die zweite Alternative ausgeführt.

Ultraschall-Sensor, p17.nxc

In einem Vorversuch soll fortlaufend der eingelesene Wert auf dem Bildschirm ausgegeben werden. Natürlich muss die Nummer der Eingabe angepasst werden.

task main()
{
  string s;
  SetSensorLowspeed(IN_4);
  while (true)
  {
    s = NumToStr(SensorUS(IN_4));
    TextOut(0,32,"    ");
    TextOut(0,32,s);
  };
}

Ultraschall-Sensor, p18.nxc

Der Roboter fährt auf die Wand zu. Beträgt die Entfernung weniger als d = 40 cm, so werden die Motoren B und C ausgeschaltet. Natürlich müssen Aus- und Eingänge angepasst werden.

#define d 40              // Entfernung d

task main()
{
  SetSensorLowspeed(IN_4);
  int n;                  // braucht man die Variable n ?
  while (true)
  {
    n = SensorUS(IN_4);   // braucht man die Variable n?
    Wait(200);            // ist das Wait nötig? Probieren
    if (n 

HItechnic-IR-Sensor

task main()
{
  string a,a1,a2,b,b1,b2;
  bool bVal;
  byte dir,s1,s3,s5,s7,s9;
  
  SetSensorLowspeed(IN_1);
  while (true)
  {
    bVal = ReadSensorHTIRSeeker(0, dir, s1, s3, s5, s7, s9);
    a1 = NumToStr(dir);
    a2 = NumToStr(s1);
    a = a1 + "   " + a2;
    TextOut(0,16,"                  ");
    TextOut(0,16,a);
    b1 = NumToStr(s3);
    b2 = NumToStr(s5);
    b = b1 + "   " + b2;
    TextOut(0,32,"                  ");
    TextOut(0,32,b);
  };
}