Thông báo

Collapse
No announcement yet.

Thảo luận về cảm biến màu TCS3200

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Thảo luận về cảm biến màu TCS3200

    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);
    }
    trên là đoạn code arduno nhưng 1số lệnh mình không hiểu. Bạn nào có thể giải thích qua cho mình biến flag tăng khi nào. Mà chân out của cảm biến này không dùng để làm gì sao.

Về tác giả

Collapse

fulybaby Tìm hiểu thêm về fulybaby

Bài viết mới nhất

Collapse

Đang tải...
X