• 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
34 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 34 wizyt
pytanie zadane 30 grudnia 2018 w Nasze projekty przez Rafał Michalik 1 Początkujący (420 p.)
0 głosów
1 odpowiedź 119 wizyt
pytanie zadane 15 marca 2017 w Arduino przez szerwi Użytkownik (620 p.)
0 głosów
1 odpowiedź 84 wizyt
pytanie zadane 21 lutego 2017 w Arduino przez mrpablosek12 Nowicjusz (160 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

61,284 zapytań

107,207 odpowiedzi

223,242 komentarzy

32,692 pasjonatów

Przeglądających: 359
Pasjonatów: 22 Gości: 337

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.

...