<< 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);
}
}
