Thông báo

Collapse
No announcement yet.

Cần giúp đỡ về cảm biến màu TCS3200

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

  • Cần giúp đỡ về cảm biến màu TCS3200

    Em đang tìm hiểu về con cảm biến này, trên mạng thì em chỉ thấy có 1 đoạn code mẫu dành cho arduino. Do không học arduino nên em có một số đoạn không rõ lắm. Đọc datasheet của con này lúc đầu thấy cũng khá đơn giản, nhưng đến lúc lập trình cho nó em cảm thấy mông lung vì không biết cần phải bắt đầu từ đâu. Vậy có bác nào rành về cái này và đã dùng con này trên 8051, AVR hoặc ARM thì có thể giúp em được không ạ.
    Đây là vài dòng giới thiệu về em nó:
    Click image for larger version

Name:	tcs3200-colour-sensor-module.jpg
Views:	1
Size:	28.2 KB
ID:	1421749
    Module cảm biến màu TCS3200 là một modulecảm biến phát hiện đầy đủ màu sắc, bao gồm cả cảm biến màu TCS3200 với khả năng nhận biết 3 mầu cơ bản RGB và 4 đèn LED trắng. Các TCS3200 có thể phát hiện và đo lường gần như tất cả màu sắc có thể nhìn thấy. Ứng dụng bao gồm kiểm tra đọc dải, phân loại theo màu sắc, cảm biến ánh sáng xung quanh và hiệu chuẩn, và kết hợp màu sắc, đó chỉ là một vài ứng dụng. TCS3200 có các bộ tách sóng quang, có 2 bộ lọc màu sắc là bộ lọc màu đỏ, xanh, hoặc màu xanh, hoặc không có bộ lọc ( rõ ràng). Các bộ lọc của mỗi màu được phân bố đều khắp các mảng để loại bỏ sai lệch vị trí giữa các điểm màu. Bên trong là một bộ dao động tạo ra đầu ra sóng vuông có tần số là tỷ lệ thuận với cường độ của màu sắc lựa chọn.
    Module cảm biến màu TCS3200
    Thông số kỹ thuật
    Điện áp cung cấp: (2.7V đến 5.5V)
    Chuyển đổi từ cường độ ánh sáng sang tần số với độ phân giải cao
    Có khả năng lập trình để nhận biết đầy đủ các màu sắc
    Điện năng tiêu thụ thấp
    Giao tiếp trực tiếp với vi điều khiển
    S0 ~ S1: Dùng để lựa chọn tỉ lệ tần số đầu ra
    S2 ~ S3: Dùng để lựa chọn kiểu photodiode
    OUT Pin: Đầu ra tần số
    OE Pin: Tần số đầu ra cho phép hoạt động (hoạt động ở mức thấp).
    Hỗ trợ đèn LED bổ sung và kiểm soát ánh sáng
    Kích thước: 28.4x28.4mm
    Nguyên tắc nhận biết màu
    TCS3200 có bộ lọc màu, khi lựa chọn một bộ lọc màu nó sẽ cho phép chỉ nhận biết 1 màu và các màu khác sẽ bị chặn. Ví dụ, khi lựa chọn các bộ lọc màu đỏ, Chỉ có ánh sáng tới màu đỏ có thể được thông qua, màu xanh và màu xanh lá cây sẽ được ngăn chặn. Vì vậy chúng ta có thể nhận được cường độ ánh sáng màu đỏ. Tương tự như vậy, khi lựa chọn các bộ lọc khác mà chúng ta có thể nhận được ánh sáng màu xanh hoặc màu xanh lá cây.
    Cách thiết lập màu sắc cho TCS3200
    Click image for larger version

Name:	TCS3200_color_setting.png
Views:	1
Size:	26.4 KB
ID:	1421748
    Tần số đầu ra của TCS3200 trong khoảng 2HZ~500KHZ. Tần số đầu ra có dạng xung vuông với tần số khác nhau khi mà màu sắc khác nhau và cường độ sáng là khác nhau.
    Chúng ta có thể lựa chọn tỉ lệ giữa cừng độ sáng và màu sắc theo bảng sau:
    Trên module này cũng có chân LED EN đây là chân điều khiển đèn LED để tắt hoặc bật
    Cách thiết lập tần số cho TCS3200
    Click image for larger version

Name:	TCS3200_frequency_setting.png
Views:	1
Size:	18.7 KB
ID:	1421747
    Đây là code mẫu cho arduino

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

Về tác giả

Collapse

Dr.Fire Tìm hiểu thêm về Dr.Fire

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

Collapse

  • tuyennhan
    Trả lời cho Tiếng Anh cho người Việt
    bởi tuyennhan
    Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
    Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
    hôm nay, 07:44
  • vi van pham
    Trả lời cho Tiếng Anh cho người Việt
    bởi vi van pham
    Cám ơn những lời chúc tốt đẹp của em.

    Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

    Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
    hôm nay, 02:00
  • nhathung1101
    Trả lời cho Tiếng Anh cho người Việt
    bởi nhathung1101
    Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

    Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

    Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
    Hôm qua, 22:18
  • dinhthuong80
    Trả lời cho Tiếng Anh cho người Việt
    bởi dinhthuong80
    Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

    Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
    Hôm qua, 14:51
  • dinhthuong80
    Trả lời cho Tiếng Anh cho người Việt
    bởi dinhthuong80
    Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

    Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
    Hôm qua, 14:39
  • dinhthuong80
    Trả lời cho Tiếng Anh cho người Việt
    bởi dinhthuong80
    Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

    Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
    Hôm qua, 14:28
  • bqviet
    Trả lời cho Tiếng Anh cho người Việt
    bởi bqviet
    Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
    21-02-2025, 20:26
  • mèomướp
    Trả lời cho Tiếng Anh cho người Việt
    bởi mèomướp
    Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
    21-02-2025, 12:32
  • vi van pham
    Trả lời cho Tiếng Anh cho người Việt
    bởi vi van pham
    Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

    Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
    20-02-2025, 21:31
  • bqviet
    Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
    bởi bqviet
    Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
    20-02-2025, 17:22
Đang tải...
X