• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z czujnikiem koloru TCS3200D

0 głosów
28 wizyt
pytanie zadane 11 marca 2017 w Arduino przez szerwi Użytkownik (620 p.)

Cześć,


Potrzebuję pomocy przy sprawdzeniu czujnika koloru TCS3200D. 
Używam tego kodu:

int s0=3,s1=4,s2=5,s3=6;
int out=2;
int flag=0;
byte counter=0;
byte countR=0,countG=0,countB=0;
void setup()
 {
 Serial.begin(115200);
 pinMode(s0,OUTPUT);
 pinMode(s1,OUTPUT);
 pinMode(s2,OUTPUT);
 pinMode(s3,OUTPUT);
 
 }
void TCS()
 {
 flag=0;
 digitalWrite(s1,HIGH);
 digitalWrite(s0,HIGH);
 digitalWrite(s2,LOW);
 digitalWrite(s3,LOW);
 attachInterrupt(0, ISR_INTO, LOW);
 timer0_init();
 
 }
void ISR_INTO()
 {
 counter++;
 }
 void timer0_init(void)
 {
  TCCR2A=0x00;
  TCCR2B=0x07;   //the clock frequency source 1024 points
  TCNT2= 100;    //10 ms overflow again
  TIMSK2 = 0x01; //allow interrupt
 }
 int i=0;
 ISR(TIMER2_OVF_vect)//the timer 2, 10ms interrupt overflow again. Internal overflow interrupt executive function
{
    TCNT2=100;
    flag++;
 if(flag==1)
  {
    countR=counter;
    Serial.print("red=");
    Serial.println(countR,DEC);
    digitalWrite(s2,HIGH);
    digitalWrite(s3,HIGH);
  }
  else if(flag==2)
   {
    countG=counter;
    Serial.print("green=");
    Serial.println(countG,DEC);
    digitalWrite(s2,LOW);
    digitalWrite(s3,HIGH);
   }
   else if(flag==3)
    {
    countB=counter;
    Serial.print("blue=");
    Serial.println(countB,DEC);
    Serial.println("\n");
    digitalWrite(s2,LOW);
    digitalWrite(s3,LOW);
 
    }
    else if(flag==4)
     {
     flag=0;
     }
       counter=0;
}
void loop()
 {
  TCS();
while(1);
 }

i po przystawieniu czerwonej kartki jest taki odczyt: 
red=98
green=35
blue=220
a przy odczycie z większej odległości:
red=235
green=252
blue=118
Przy zielonej kartce:
red=103
green=130
blue=26
a przy odczycie z większej odległości:
red=138
green=201
blue=181
Przy niebieskiej kartce:
red=77
green=192
blue=251
Przy białej kartce:
red=142
green=242
blue=122
Odczyty są inne niż powinny być. Przy innych kodach do tego czujnika jest tak samo.
Czujnik kupiony z chin

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 90 wizyt
pytanie zadane 15 marca 2017 w Arduino przez szerwi Użytkownik (620 p.)
0 głosów
1 odpowiedź 71 wizyt
pytanie zadane 21 lutego 2017 w Arduino przez mrpablosek12 Nowicjusz (160 p.)
–1 głos
0 odpowiedzi 51 wizyt
pytanie zadane 21 lutego 2017 w Arduino przez mrpablosek12 Nowicjusz (160 p.)
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.
Ciekawy innych porad? Odwiedź tę stronę!

45,873 zapytań

86,345 odpowiedzi

172,633 komentarzy

22,284 pasjonatów

Przeglądających: 113
Pasjonatów: 8 Gości: 105

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...