<< Světelný senzor | Programování senzorů | Zvukový senzor >>

Zvětšit

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ód123456
  • světelný senzor - vrací intenzitu odraženého světla

Inicializace senzoru v barevném režimu

Inicializace senzoru ve světelném režimu

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