<< Světelný senzor | Programování senzorů | Zvukový senzor >>
Vlastnosti barevného senzoru
- senzor měří ve dvou režimech
- barevný senzor - vrací číselný kód jedné ze základních barev
Barva | černá | modrá | zelená | žlutá | červená | bílá |
---|---|---|---|---|---|---|
Kód | 1 | 2 | 3 | 4 | 5 | 6 |
- světelný senzor - vrací intenzitu odraženého světla
Inicializace senzoru v barevném režimu
- SetSensorColorFull(Port) -
SetSensorFull(S2);
Inicializace senzoru ve světelném režimu
- SetSensorColorRed(Port) -
SetSensorColorRed(S2);
- aktivní osvětlení červenou barvou
- SetSensorColorGreen(Port) -
SetSensorColorGreen(S3);
- aktivní osvětlení zelenou barvou
- SetSensorColorBlue(Port) -
SetSensorColorBlue(S2);
- aktivní osvětlení modrou barvou
Příklad programování světelného senzoru
Rozpoznání barev
task main() { SetSensorColorFull(IN_3); //Aktivace barevného senzoru int kod=0; //Deklarace proměnné pro kód barvy while(true) //Trvalé opakování { Wait(1000); //Prodleva 1s pro zobrazení barvy x=SensorValue(S3); //Načtení kódu aktuální barvy PlayTone(100,20); //Pípnutí ClearScreen(); //Smazání displeje TextOut(0, LCD_LINE3, NumToStr(x)); //Zobrazení kódu barvy switch(x) //Zbrazení názvu barvy { case 1: TextOut(7, LCD_LINE3, "Cerna"); break; case 2: TextOut(7, LCD_LINE3, "Modra"); break; case 3: TextOut(7, LCD_LINE3, "Zelena"); break; case 4: TextOut(7, LCD_LINE3, "Zluta"); break; case 5: TextOut(7, LCD_LINE3, "Cervena"); break; case 6: TextOut(7, LCD_LINE3, "Bila"); break; } } }
Využití jako světelný senzor
#define COLORSENSOR SENSOR_3 //Defince názvu portu senzoru void jed_vpred(OnFwd(OUT_BC, 75);) //Definice uživatelských funkcí void jed_vzad(){OnRev(OUT_BC, 75);} void zahni_vlevo(){OnFwd(OUT_C, 100);} bool bila(){Sensor(COLORSENSOR > 3);} void zobraz_barvu_na_displeji(){NumOut(0, LCD_LINE2, COLORSENSOR);} void aktivuj_color_senzor(){SetSensorColorFull(IN_3);} task main() //Hlavní program { aktivuj_color_senzor(); while(true) //Trvalé opakování { zobraz_barvu_na_displeji(); //Zobrazení čísla barvy while(bila()) //Dokud je načtena bílá { jed_vpred(); //Jízda v před } jed_vzad(); //Jinak couvni a zatoč Wait(300); zahni_vlevo(); Wait(300); } }