The TCS34725 เป็นเซนเซอร์ตรวจจับสีที่สามารถตรวจวัดความเข้มของแสงสีแดง เขียว น้ำเงิน และแสงใส (clear) ใช้กันอย่างแพร่หลายในโครงการตรวจจับสี รวมถึงหุ่นยนต์ ระบบอัตโนมัติในบ้าน และแอปพลิเคชันที่ไวต่อสี บทแนะนำนี้จะแนะนำวิธีการตั้งค่าและใช้งาน TCS34725 color sensor กับ Arduino.
สิ่งที่คุณจะต้องมี
- บอร์ด Arduino (เช่น Uno, Mega, Nano)
- โมดูลเซนเซอร์สี TCS34725
- เบรดบอร์ดและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
- ไลบรารี: Adafruit TCS34725 Library
ขั้นตอนที่ 1: ทำความเข้าใจกับ TCS34725 Color Sensor
The TCS34725 เป็นเซนเซอร์ที่รองรับการสื่อสารแบบ I2C ให้ข้อมูลสีและความเข้มของแสง ประกอบด้วย:
- RGBC Sensor: วัดความเข้มของแสงสีแดง เขียว น้ำเงิน และแสงใส (clear).
- IR Blocking Filter: ช่วยปรับความแม่นยำของสีภายใต้สภาวะแสงต่าง ๆ.
- LED: มี LED สีขาวในตัวสำหรับให้แสงสว่างคงที่ (ไม่จำเป็นต้องใช้)
ขั้นตอนที่ 2: การต่อสาย TCS34725 กับ Arduino
The TCS34725 สื่อสารกับ Arduino ผ่านโปรโตคอล I2C.
การเชื่อมต่อ
| ขาเซนเซอร์ | ขา Arduino |
|---|---|
| VIN | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
หมายเหตุ: สำหรับบอร์ด Arduino ที่มีขา SDA และ SCL เฉพาะ (เช่น Mega) ให้เชื่อมต่อขา SDA/SCL ของเซนเซอร์กับขาเหล่านั้นแทน.
ขั้นตอนที่ 3: ติดตั้งไลบรารีที่จำเป็น
เพื่อใช้ TCS34725 sensor คุณต้องติดตั้งไลบรารี Adafruit TCS34725.
ขั้นตอนการติดตั้งไลบรารี
- เปิด Arduino IDE.
- ไปที่ Sketch > Include Library > Manage Libraries.
- ค้นหา "Adafruit TCS34725".
- คลิก Install.
ขั้นตอนที่ 4: อัพโหลดโค้ดตัวอย่าง
ต่อไปนี้เป็นตัวอย่างพื้นฐานเพื่ออ่านและแสดงค่าสีจาก TCS34725 sensor.
ตัวอย่างโค้ด
#include
#include "Adafruit_TCS34725.h"
// Create an instance of the sensor
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_700MS, TCS34725_GAIN_1X);
void setup() {
Serial.begin(9600);
if (!tcs.begin()) {
Serial.println("TCS34725 not found. Check your wiring or I2C address.");
while (1); // Halt execution if sensor not found
}
Serial.println("TCS34725 is ready!");
}
void loop() {
uint16_t r, g, b, c;
float lux, colorTemp;
// Get the raw data from the sensor
tcs.getRawData(&r, &g, &b, &c);
// Calculate color temperature and lux
colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c);
lux = tcs.calculateLux(r, g, b);
// Print the results
Serial.print("Red: "); Serial.print(r); Serial.print(" \t");
Serial.print("Green: "); Serial.print(g); Serial.print(" \t");
Serial.print("Blue: "); Serial.print(b); Serial.print(" \t");
Serial.print("Clear: "); Serial.print(c); Serial.print(" \t");
Serial.print("Color Temp: "); Serial.print(colorTemp); Serial.print(" K \t");
Serial.print("Lux: "); Serial.println(lux);
delay(1000); // Update every second
}
ขั้นตอนที่ 5: การใช้งานข้อมูล
1. การตรวจจับสี
คุณสามารถแปลงค่าระหว่าง RGB เพื่อตรวจจับสีเฉพาะได้ ตัวอย่าง:
if (r > g && r > b) {
Serial.println("Red Detected");
} else if (g > r && g > b) {
Serial.println("Green Detected");
} else if (b > r && b > g) {
Serial.println("Blue Detected");
}
2. การสั่งงานตามสีที่ตรวจพบ
ใช้สีที่ตรวจพบเพื่อควบคุม LED หรือมอเตอร์ ตัวอย่าง:
if (r > g && r > b) {
digitalWrite(ledPin, HIGH); // Turn on red LED
}
3. การปรับเซนเซอร์
ปรับค่า gain และ integration time ของเซนเซอร์ให้เหมาะสมกับสภาวะแสงต่าง ๆ:
- Integration Time: กำหนดระยะเวลาการวัดแสง ตัวเลือก: 2.4ms ถึง 700ms.
- Gain: ขยายสัญญาณ ตัวเลือก: 1x, 4x, 16x, 60x.
ตัวอย่าง:
tcs.setIntegrationTime(TCS34725_INTEGRATIONTIME_154MS);
tcs.setGain(TCS34725_GAIN_4X);
แนวทางปฏิบัติที่ดี
- แสงสว่างคงที่: ใช้ LED ในตัวของเซนเซอร์หรือให้แน่ใจว่ามีสภาพแสงที่เสถียร.
- ปรับเทียบเพื่อความแม่นยำ: ปรับค่า gain และ integration time เพื่อให้ได้การอ่านที่เหมาะสม.
- ลดสัญญาณรบกวน: ใช้สายสั้นและต่อกราวด์อย่างถูกต้องเพื่อลดสัญญาณรบกวนทางไฟฟ้า.
การแก้ปัญหา
-
ไม่พบเซนเซอร์:
- ตรวจสอบการเชื่อมต่อ SDA และ SCL.
- ตรวจสอบที่อยู่ I2C (ค่าเริ่มต้น: 0x29).
-
การอ่านไม่แม่นยำ:
- ตรวจสอบสภาพแสงและหลีกเลี่ยงเงา.
- ปรับค่า gain และ integration time.
-
ค่าขึ้นลงไม่คงที่:
- เพิ่มตัวเก็บประจุขนาดเล็กข้ามจ่ายไฟเพื่อทำให้เซนเซอร์เสถียร.
การประยุกต์ใช้เซนเซอร์ TCS34725
- การคัดแยกตามสีในหุ่นยนต์
- การวัดแสงรอบข้าง
- การปรับเทียบสีในการถ่ายภาพ
- การควบคุม RGB LED
- ระบบแสงสว่างอัตโนมัติ
บทสรุป
The TCS34725 เป็นเซนเซอร์สีที่ทรงพลังและใช้งานง่ายสำหรับโครงการ Arduino โดยทำตามคู่มือนี้ คุณสามารถผนวกรวมเซนเซอร์เข้ากับงานออกแบบของคุณเพื่อให้สามารถตรวจจับสี วัดแสงรอบข้าง และอื่น ๆ ได้ ลองปรับตั้งค่าต่าง ๆ เพื่อสำรวจความสามารถเต็มรูปแบบของโมดูลที่หลากหลายนี้!





