• 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
35 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
0 odpowiedzi 38 wizyt
0 głosów
0 odpowiedzi 36 wizyt
pytanie zadane 30 grudnia 2018 w Nasze projekty przez Rafał Michalik 1 Początkujący (420 p.)
0 głosów
1 odpowiedź 129 wizyt
pytanie zadane 15 marca 2017 w Arduino przez szerwi Użytkownik (620 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.Komentarze

64,198 zapytań

110,595 odpowiedzi

231,808 komentarzy

46,959 pasjonatów

Przeglądających: 245
Pasjonatów: 24 Gości: 221

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.

...