Hi,
na bis zum Ende des Universums hättst dus schon noch erfahren...![]()
Wie es funktioniert:
je eine Halogenlampe + Fototransistor (FT) mit roter Filterkappe links und rechts vorne,
Ansicht von unten: http://www.mindstormsforum.de/bilder...hp?image_id=72
(beantwortet sicher auch deine Frage nach dem Messer...)
die Reflexionswerte werden als analoge Widerstandswerte des FT vom RCX ausgewertet.
Beim Kalibrieren wird der Untergrund ausgemessen und damit die "normale" Schwankungsbreite; die plus ein kleiner Zuschlag (blutig-empirisch) ergibt den äußersten Bereich des Erlaubten.
Liegt der Lichtwert außerhalb, ist es kein Rasen!
Code:sub Calibrate() { int min, max, d; LichtMw_1= SENSOR_1; LichtMw_3= SENSOR_3; min=SENSOR_1; max=SENSOR_1; ClearTimer(0); OnFwd (OUT_A + OUT_B + OUT_C); do { T=Timer(0); if(SENSOR_1<min) min=SENSOR_1; if(SENSOR_1>max) max=SENSOR_1; LichtMw_1=((LichtMw_1)*2+SENSOR_1)/3; LichtMw_3=((LichtMw_3)*2+SENSOR_3)/3; Wait(20); } while (T<40); // 4 sek. Aus (OUT_A + OUT_C); Wait(50); ClearTimer(0); OnRev (OUT_A + OUT_C); do { T=Timer(0); if(SENSOR_1<min) min=SENSOR_1; if(SENSOR_1>max) max=SENSOR_1; LichtMw_1=((LichtMw_1)*2+SENSOR_1)/3; LichtMw_3=((LichtMw_3)*2+SENSOR_3)/3; Wait(20); } while (T<40); // 4 sek. d= (LichtMw_1); if ((d-min) > (max-d)) deltaLicht=(d-min); else deltaLicht=(max-d); deltaLicht+=5; Aus (OUT_A + OUT_C); ClearTimer(0); }







Zitieren

Lesezeichen