ได้รับส่งมอบฟรีในคําสั่งทั้งหมดมากกว่า 20 ปอนด์!

ใช้ TCS34725 กับ Arduino

Using the TCS34725 with the Arduino

The TCS34725 เป็นเซนเซอร์ตรวจจับสีที่สามารถตรวจวัดความเข้มของแสงสีแดง เขียว น้ำเงิน และแสงใส (clear) ใช้กันอย่างแพร่หลายในโครงการตรวจจับสี รวมถึงหุ่นยนต์ ระบบอัตโนมัติในบ้าน และแอปพลิเคชันที่ไวต่อสี บทแนะนำนี้จะแนะนำวิธีการตั้งค่าและใช้งาน TCS34725 color sensor กับ Arduino.


สิ่งที่คุณจะต้องมี

  1. บอร์ด Arduino (เช่น Uno, Mega, Nano)
  2. โมดูลเซนเซอร์สี TCS34725
  3. เบรดบอร์ดและสายจัมเปอร์
  4. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
  5. ไลบรารี: 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.

ขั้นตอนการติดตั้งไลบรารี

  1. เปิด Arduino IDE.
  2. ไปที่ Sketch > Include Library > Manage Libraries.
  3. ค้นหา "Adafruit TCS34725".
  4. คลิก 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);

แนวทางปฏิบัติที่ดี

  1. แสงสว่างคงที่: ใช้ LED ในตัวของเซนเซอร์หรือให้แน่ใจว่ามีสภาพแสงที่เสถียร.
  2. ปรับเทียบเพื่อความแม่นยำ: ปรับค่า gain และ integration time เพื่อให้ได้การอ่านที่เหมาะสม.
  3. ลดสัญญาณรบกวน: ใช้สายสั้นและต่อกราวด์อย่างถูกต้องเพื่อลดสัญญาณรบกวนทางไฟฟ้า.

การแก้ปัญหา

  1. ไม่พบเซนเซอร์:

    • ตรวจสอบการเชื่อมต่อ SDA และ SCL.
    • ตรวจสอบที่อยู่ I2C (ค่าเริ่มต้น: 0x29).
  2. การอ่านไม่แม่นยำ:

    • ตรวจสอบสภาพแสงและหลีกเลี่ยงเงา.
    • ปรับค่า gain และ integration time.
  3. ค่าขึ้นลงไม่คงที่:

    • เพิ่มตัวเก็บประจุขนาดเล็กข้ามจ่ายไฟเพื่อทำให้เซนเซอร์เสถียร.

การประยุกต์ใช้เซนเซอร์ TCS34725

  1. การคัดแยกตามสีในหุ่นยนต์
  2. การวัดแสงรอบข้าง
  3. การปรับเทียบสีในการถ่ายภาพ
  4. การควบคุม RGB LED
  5. ระบบแสงสว่างอัตโนมัติ

บทสรุป

The TCS34725 เป็นเซนเซอร์สีที่ทรงพลังและใช้งานง่ายสำหรับโครงการ Arduino โดยทำตามคู่มือนี้ คุณสามารถผนวกรวมเซนเซอร์เข้ากับงานออกแบบของคุณเพื่อให้สามารถตรวจจับสี วัดแสงรอบข้าง และอื่น ๆ ได้ ลองปรับตั้งค่าต่าง ๆ เพื่อสำรวจความสามารถเต็มรูปแบบของโมดูลที่หลากหลายนี้!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

แสดงความคิดเห็น