Mạch Điện

Cảm biến màu sắc TCS3200 Color Sensor hoạt động như thế nào ? Giao tiếp với Arduino

Cảm biến màu sắc là một thiết bị đơn giản và dễ sử dụng có thể được sử dụng để xác định màu sắc của một đối tượng và sau khi phát hiện màu sắc, hành động thích hợp có thể được kích hoạt. Loại cảm biến này cung cấp các giải pháp dễ dàng để phân loại và đóng gói trong môi trường công nghiệp trong khi các cảm biến đắt tiền được sử dụng trong các ngành công nghiệp, thì loại cảm biến tiết kiệm như TCS3200 có thể được sử dụng cho các ứng dụng tự làm ít đòi hỏi hơn. Vì vậy, trong bài viết này, Chúng ta nghĩ rằng sẽ giao tiếp Cảm biến màu sắc TCS3200 với Arduino và trong quá trình này, bạn sẽ biết về các chi tiết của cảm biến này và hoạt động của nó. Vì vậy, không cần nói gì thêm, chúng ta hãy bắt tay tham khảo với hocdientu dưới đây nào !

 Cảm biến màu sắc TCS3200 Color Sensor hoạt động như thế nào ? Giao tiếp với Arduino
Cảm biến màu sắc TCS3200 Color Sensor hoạt động như thế nào ? Giao tiếp với Arduino

Sơ đồ chân Cảm biến màu sắc TCS3200

Module Cảm biến màu sắc TCS3200 có 8 chân; đó là VCC, OUT, S3, S2, S1, S0, OUT, 0E và GND. Tất cả các chân của Module cảm biến này là kỹ thuật số, ngoại trừ VCC và Ground. Sơ đồ chân của Cảm biến màu sắc TCS3200 được hiển thị bên dưới:

Sơ đồ chân Cảm biến màu sắc TCS3200
Sơ đồ chân Cảm biến màu sắc TCS3200
  • VCC  : là chân cấp nguồn của Cảm biến màu sắc có thể kết nối với 5V hoặc 3.3V của nguồn cung cấp.
  • S0 và S1 : Các chân S0 và S1 có thể được sử dụng để chọn Phần trăm tỷ lệ tần số đầu ra của cảm biến. Bằng cách cấu hình các chân này, nó có thể được đặt thành tỷ lệ 2%, 20% hoặc 100%.
  • S2 và S3 : Các chân S2 & S3 có thể được sử dụng để chọn mảng màu của cảm biến. Bằng cách lần lượt chọn đúng mảng màu, cảm biến này sẽ xác định một màu.
  • OE : Đây là chân Bật hoặc Tắt đầu ra của Module Cảm biến màu sắc. Chân này được kéo xuống trên bo mạch Module để vô hiệu hóa cảm biến bằng cách tạo xung cao cho chân này.
  • OUT : Đây là chân đầu ra của cảm biến, khi cảm biến phát hiện một màu cụ thể thì tần số xung đầu ra trên chân này sẽ thay đổi, bằng cách phát hiện sự thay đổi độ rộng xung này chúng ta có thể xác định được màu.
  • GND : là chân nối đất của Module Cảm biến màu sắc và nó phải được kết nối với chân nối đất của Arduino.

Module Cảm biến màu sắc hoạt động như thế nào ?

Cảm biến màu sắc sử dụng một nguyên tắc rất cơ bản của ánh sáng để xác định màu sắc. Bạn thấy màu trắng được tạo thành từ ba màu cơ bản là Đỏ, Xanh lục và Xanh lam và mỗi màu có bước sóng khác nhau. Khi ánh sáng rơi xuống một bề mặt, tùy thuộc vào tính chất vật liệu, nó sẽ bị hấp thụ hoặc phản xạ. Ánh sáng phản xạ đó được mắt của chúng ta thu nhận và kết quả là chúng ta có thể nhìn thấy màu sắc.

Module Cảm biến màu sắc hoạt động như thế nào ?
Module Cảm biến màu sắc hoạt động như thế nào ?

Bây giờ chúng ta hãy xem xét cách hoạt động của Cảm biến màu sắc TCS3200, như bạn có thể thấy trong ảnh gif ở trên, chúng ta có Cảm biến màu sắc và chúng ta đang đưa ra tín hiệu Cao và thấp cho các chân S0 và S1 của Module cảm biến, đặt cảm biến thành 20%. chia tỷ lệ tần số. Điều đó có nghĩa là cảm biến sẽ hoạt động ở tần số 200 KHz. Ở chế độ này, chu kỳ hoạt động của cảm biến sẽ vẫn ở mức 50% nhưng tần số đầu ra của cảm biến sẽ thay đổi theo giá trị màu. Các chân S2 và S3 được sử dụng để chọn mảng điốt quang và như bạn có thể thấy trong gif cho mỗi màu hiển thị với cảm biến, Chúng ta sẽ đặt từng mảng thành bộ lọc xanh lục và xanh lam đỏ. Nếu màu được cảm biến phát hiện khớp với mảng đã chọn của cảm biến, tần số đầu ra của cảm biến sẽ tăng lên và đối với bất kỳ trường hợp nào khác, tần số đầu ra hầu như giữ nguyên hoặc bạn có thể thấy sự thay đổi theo phút của tần số đầu ra. Để biết thêm chi tiết, bạn có thể kiểm tra datasheet của IC Cảm biến màu sắc TCS3200 . Như Chúng ta đã đề cập trước đó, các chân S0, S1, S2 và S3 được sử dụng để cấu hình cảm biến trong bảng dưới đây, Chúng ta đã mô tả điều đó.

S0 và S1 Đặt Hệ số tỷ lệ tần số đầu ra: 

S0

S1

Hệ số tỷ lệ tần số đầu ra

L

L

Chế độ tắt nguồn

L

H

Hệ số tỷ lệ 2%

H

L

Hệ số tỷ lệ 20%

H

H

Hệ số tỷ lệ 100%

S2 và S3 Đặt loại bộ lọc bên trong: 

S2

S3

Hệ số tỷ lệ tần số đầu ra

L

L

Bộ lọc màu đỏ

L

H

Bộ lọc màu xanh lam

H

L

Clear (Không có Bộ lọc)

H

H

Bộ lọc màu xanh lá cây

Các Bộ phận Module Cảm biến màu sắc TCS3200

Đây là một loại cảm biến rẻ và dễ sử dụng, có thể sử dụng cho nhiều ứng dụng khác nhau. Cảm biến này xác định màu sắc và đưa kết quả ra định dạng kỹ thuật số. Các bộ phận đánh dấu của Cảm biến màu sắc TCS3200 được hiển thị bên dưới.

Các Bộ phận Module Cảm biến màu sắc TCS3200
Các Bộ phận Module Cảm biến màu sắc TCS3200

Tại trung tâm của cảm biến, bạn có thể tìm thấy IC Cảm biến màu sắc TS3200, đây là IC rất rẻ và dễ sử dụng, được thiết kế và phát triển bởi TAOS (Texas Advanced Optoelectronic Solutions Inc). Ngoài ra còn có bốn đèn LED màu trắng, các đèn LED này sáng lên khi Module bật nguồn. Các đèn LED này chiếu sáng đối tượng mà cảm biến cần cảm nhận. Ngoài ra, có một tụ lọc, một tụ tách và một số điện trở trên bo mạch. Điện áp hoạt động của Module này là 2,7V đến 5,5V.

Các câu hỏi thường gặp về Cảm biến màu sắc TCS3200

Cảm biến màu sắc phát hiện cái gì?

Cảm biến màu sắc có thể phát hiện cường độ ánh sáng nhận được đối với màu đỏ, xanh lam và xanh lục tương ứng, giúp xác định màu sắc của đối tượng mục tiêu.

Có bao nhiêu chân trong Cảm biến màu sắc?

  • Nó bao gồm các bộ lọc màu, mảng điốt quang, bộ chuyển đổi dòng điện sang tần số và đầu ra sóng vuông cuối cùng có thể được cấp trực tiếp cho bộ vi điều khiển. IC Cảm biến màu sắc TSC3200 là một IC 8 chân với gói SOC. Hình ảnh sau đây cho thấy sơ đồ chân của IC cảm biến màu.

Cảm biến màu sắc có hoạt động trong bóng tối không?

  • Có, nó có thể hoạt động trong bóng tối vì nó có bốn đèn LED sáng trắng. Cảm biến màu sắc có thể phân biệt giữa các màu hoặc đo cường độ của ánh sáng phản xạ, làm cho nó trở nên lý tưởng cho việc theo dõi. Bằng cách phát ra ánh sáng riêng, cảm biến có thể hoạt động ngay cả trong bóng tối tuyệt đối để xác định màu sắc hoặc độ sáng của bề mặt.

Các bộ phận chính của Cảm biến màu sắc là gì?

  • Cảm biến màu sắc chứa một bộ phát ánh sáng trắng để chiếu sáng bề mặt. Ba bộ lọc có độ nhạy bước sóng ở 580 nm, 540 nm và 450nm để đo bước sóng của các màu đỏ, lục và lam tương ứng.

Sơ đồ mạch của Module Cảm biến màu sắc TCS3200

Sơ đồ mạch của Cảm biến màu sắc TCS3200 được hiển thị bên dưới và nó rất đơn giản và dễ hiểu.

Sơ đồ mạch của Module Cảm biến màu sắc TCS3200
Sơ đồ mạch của Module Cảm biến màu sắc TCS3200

Trong sơ đồ, bạn có thể thấy IC TCS3200 ở trung tâm của mạch và vì chân ra của IC có trở kháng thấp nên có một điện trở 1K mắc nối tiếp với IC. Ngoài ra, bạn có thể thấy rằng có 4 đèn LED với điện trở giới hạn dòng 330R. Bạn cũng có thể thấy hai điện trở kéo lên 10K đang kéo chân S0 và S1 của IC lên. Trên bảng, có một tụ lọc 10uF và một tụ tách 100nf. Ngoài ra, Chúng ta có hai điện trở 0 ohms làm liên kết jumper.

Sơ đồ kết nối Cảm biến màu sắc TCS3200 với Arduino UNO

Bây giờ chúng ta đã hoàn toàn hiểu cách hoạt động của Cảm biến màu sắc TCS3200, chúng ta có thể kết nối tất cả các dây cần thiết với Arduino và viết Code để lấy tất cả dữ liệu ra khỏi cảm biến. Sơ đồ kết nối của TCS3200 với Arduino được hiển thị bên dưới-

Sơ đồ kết nối Cảm biến màu sắc TCS3200 với Arduino UNO
Sơ đồ kết nối Cảm biến màu sắc TCS3200 với Arduino UNO

Kết nối cảm biến TCS3200 với Arduino rất đơn giản. Để giao tiếp với cảm biến, Chúng ta không cần bất kỳ thứ gì khác ngoài năm chân GPIO của Arduino và đó là lý do tại sao Chúng ta đã sử dụng các chân GPIO 8,7,6,5,4 của Arduino. Cuối cùng, để cấp nguồn cho cảm biến, Chúng ta đã sử dụng các chân 5V và Ground của Arduino Board.

Kết nối cảm biến TCS3200 với Arduino
Kết nối cảm biến TCS3200 với Arduino

Code Arduino cho Module Cảm biến màu sắc TCS3200 giao tiếp với Arduino

Code để xử lý dữ liệu từ Cảm biến TCS3200 rất đơn giản và dễ hiểu. Chúng ta chỉ cần xác định các chân mà qua đó cảm biến được kết nối với Arduino. Khi Chúng ta làm điều đó, Chúng ta sẽ đặt các chế độ khác nhau của cảm biến như đã đề cập trong biểu dữ liệu của thiết bị. Nếu mọi thứ hoạt động chính xác, cảm biến sẽ xuất dữ liệu màu ở dạng xung. Chúng ta sẽ sử dụng hàm pulsein() của Arduino để đo thời lượng xung và xác định màu sắc.

Chúng ta sẽ khởi tạo Code của mình bằng cách xác định cảm biến, qua đó Chúng ta sẽ định cấu hình cảm biến và xử lý dữ liệu ra khỏi cảm biến.

/*
 *  Sensor Pin S0 -> Arduino Pin D8
 *  Sensor Pin S1 -> Arduino Pin D7
 *  Sensor Pin S2 -> Arduino Pin D6
 *  Sensor Pin S3 -> Arduino Pin D5
 *  Sensor Pin OUT -> Arduino Pin D4
*/
#define S0_PIN 8 
#define S1_PIN 7
#define S2_PIN 6
#define S3_PIN 5

Tiếp theo, chúng ta có hàm setup() . Trong hàm thiết lập, Chúng ta sẽ đặt chân S0, S1, S2 và S3 làm Đầu ra và  OUT_Pin làm đầu vào.

// Set the S0, S1, S2, S3 Pins as Output
  pinMode(S0_PIN, OUTPUT);
  pinMode(S1_PIN, OUTPUT);
  pinMode(S2_PIN, OUTPUT);
  pinMode(S3_PIN, OUTPUT);
 //Set OUT_PIN as Input
  pinMode(OUT_PIN, INPUT);

Tiếp theo trong hàm thiết lập, Chúng ta đặt Chân S0 cao và Chân S1 thấp, điều này sẽ chia tỷ lệ hệ số tỷ lệ thành 20% được đề xuất bởi datasheet . Chúng ta cũng bật UART để gỡ lỗi.

 // Set Pulse Width scaling to 20%
  digitalWrite(S0_PIN, HIGH);
  digitalWrite(S1_PIN, LOW);
// Enable UART for Debugging
  Serial.begin(9600);

Tiếp theo, Chúng ta có hàm loop  của Chúng ta ; trong hàm lặp, chúng ta khai báo ba biến cục bộ có tên là r , g và b . Các biến này sẽ giữ các giá trị RGB do cảm biến cung cấp. Sau đó, Chúng ta thực hiện ba hàm để xử lý các Giá trị Đỏ, Xanh lục và Xanh lam. Và lưu trữ các giá trị này trong các biến r, g và b. Chúng ta cũng thêm một số độ trễ 200ms để cho cảm biến có thời gian xử lý dữ liệu. Khi quá trình thu thập dữ liệu kết thúc, Chúng ta in các giá trị trong serial monitor. Chúng ta cũng có ba câu lệnh if với ba giá trị . Các giá trị này được chọn sau khi đặt đối tượng vài lần trước cảm biến và lấy trung bình các giá trị đầu ra. Nếu giá trị này khớp với giá trị đầu ra của cảm biến, thì bạn sẽ nhận được tên của màu đó trong cửa sổ serial monitor.

void loop()
{
  int r, g, b;
  r = process_red_value();
  delay(200);
  g = process_green_value();
  delay(200);
  b = process_blue_value();
  delay(200);
  Serial.print("r = ");
  Serial.print(r);
  Serial.print(" ");
  Serial.print("g = ");
  Serial.print(g);
  Serial.print(" ");
  Serial.print("b = ");
  Serial.print(b);
  Serial.print(" ");
  Serial.println();
  if (r < 42)
  {
    Serial.println("Colour Pink");
  }
  else if (g < 63)
  {
    Serial.println("Colour Green");
  }
  else if (r < 64)
  {
    Serial.println("Colour Red");
  }
}

Điều này đánh dấu sự kết thúc của hàm Loop của chúng ta, bây giờ hãy nói về các hàm xử lý dữ liệu đầu ra từ cảm biến và trả về giá trị ở dạng số nguyên. Ba hàm này hoàn toàn giống nhau; sự khác biệt duy nhất là cách cấu hình chân S2 và S3 của cảm biến. Để xử lý màu đỏ, cả hai chân S2 và S3 phải ở mức thấp. Để xử lý màu xanh lá cây, các chân S2 và S3 phải ở mức cao. Và để xử lý màu xanh lam, S2 phải ở mức thấp và S3 phải ở mức cao. Như chúng ta đã đề cập trước đó, hàm pulseIn()  được sử dụng để xác định độ rộng xung của cảm biến. Hàm trả về giá trị tính bằng mili giây và chúng ta chỉ cần in giá trị đó trong cửa sổ serial monitor.

int process_red_value()
{
  digitalWrite(S2_PIN, LOW);
  digitalWrite(S3_PIN, LOW);
  int pulse_length = pulseIn(OUT_PIN, LOW);
  return pulse_length;
}
int process_green_value()
{
  digitalWrite(S2_PIN, HIGH);
  digitalWrite(S3_PIN, HIGH);
  int pulse_length = pulseIn(OUT_PIN, LOW);
  return pulse_length;
}
int process_blue_value()
{
  digitalWrite(S2_PIN, LOW);
  digitalWrite(S3_PIN, HIGH);
  int pulse_length = pulseIn(OUT_PIN, LOW);
  return pulse_length;
}

Hoạt động của Module Cảm biến màu sắc TCS3200

Ảnh gif bên dưới hiển thị mạch phần cứng của  Cảm biến màu sắc TCS3200 với Arduino đang hoạt động. Ở phía bên trái của GIF, chúng ta có Arduino được kết nối với cảm biến theo sơ đồ được hiển thị trong phần trên. Bây giờ những gì chúng ta sẽ làm là chúng ta sẽ đặt một đối tượng màu đỏ, xanh lá cây và xanh lam trước cảm biến và chúng ta quan sát màn hình nối tiếp để kiểm tra xem cảm biến có thể nhận ra màu sắc hay không.

Hoạt động của Module Cảm biến màu sắc TCS3200
Hoạt động của Module Cảm biến màu sắc TCS3200

Và như bạn có thể thấy trong cửa sổ màn hình nối tiếp, cảm biến đã phân biệt thành công ba màu.

Cảm biến màu sắc TCS3200 không hoạt động ? – Đây là những gì bạn nên làm

  • Nếu bạn gặp khó khăn khi đọc cảm biến TCS3200, trước tiên hãy kiểm tra điện áp hoạt động của thiết bị. Điện áp hoạt động ổn định của thiết bị này là 2,7V đến 5,5V. Điều khiển cảm biến với bất kỳ giá trị điện áp nào khác sẽ làm cho cảm biến không ổn định.
  • Nếu bạn có sự dao động trong kết quả đọc, hãy thử che cảm biến bằng một chiếc hộp. Điều này sẽ giữ cho khoảng cách của cảm biến không đổi và nó cũng sẽ làm giảm nhiễu bên ngoài.
  • Nếu bạn đang gặp vấn đề về tỷ lệ, vui lòng kiểm tra các chân S0 và S1 của cảm biến nếu chúng được định cấu hình chính xác.
  • Nếu bạn gặp sự cố với đầu ra, hãy đảm bảo rằng các chân S2 và S3 được định cấu hình đúng cách.

Đỗ Thủy Học Điện Tử

Tôi một người đam mê cung cấp kiến thức cuộc sống và kiến thức giáo dục văn học , vật lý , điện tử đến cho mọi người hãy cùng tôi tiếp nhận kiến thức mới nhé !

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button