" ""> 14-zack-name.nxc //==============================================================================
//       FILENAME:   14-zack-name.nxc
//    DESCRIPTION:   Linienfolger f�r einen Zick-Zack-Kurs
//
//         AUTHOR:   Jens Stolze (JS)
//        CREATED:   07.10.2007 17:03 GMT
//==============================================================================

// Erstelle Konstanten - schwarz - wei� - silber = 36 - 68 - 76

#define SPEED_LOW 50
#define SPEED_FAST 70
#define GRENZEZUSCHWARZ 45
#define GRENZEZUSILBER 70
#define OKBEREICH 7

#define LOSFAHREN 20
#define KURVENFAHREN 1
#define GERADEFAHREN 8

// Erstelle Variablen

long startzeit, fahrzeit;
int licht = 0;

sub display()
{
   fahrzeit =  CurrentTick() - startzeit;
   TextOut(0, 40, "Fahrzeit:");
   NumOut(60, 40, fahrzeit);
   TextOut(0, 20, "Sensor 3:");
   NumOut(60, 20, licht);
   return;
}

task main()
{
   // Vorbereitungen

   SetSensorLight(IN_3);
   startzeit = CurrentTick();

   OnFwd(OUT_BC, 100);
   Wait(100);
   
   while ( licht < GRENZEZUSILBER )                // wenn nicht silber
   {
      licht = Sensor(IN_3);
      display();
      
      if (licht < (GRENZEZUSCHWARZ-OKBEREICH) )    // wenn < schwarz - ok
      {
         OnFwd(OUT_C, SPEED_LOW);                  // --> rechts
         Off(OUT_B);                               // rechter Motor aus
         Wait(KURVENFAHREN);
      }
      else                                         // wei� und silber
      {
         if (licht > ( GRENZEZUSCHWARZ+OKBEREICH) ) // wenn > schwarz + ok
         {
            OnFwd(OUT_B, SPEED_LOW);               // --> links
            Off(OUT_C);                            // linker Motor aus
            Wait(KURVENFAHREN);
         }
         else
         {
            OnFwd(OUT_BC, SPEED_FAST);             // sonst gerade fahren
            Wait(GERADEFAHREN); 
         }
      }
   }
   
   Off(OUT_BC);   
   display();
   Wait(10000);
}  // ----------  end of task main  ----------