//==============================================================================
// 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 ----------