ใช้ TCS34725 กับ Arduino

Using the TCS34725 with the Arduino

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


สิ่งที่คุณต้องการ

  1. บอร์ด Arduino (เช่น uno, mega, nano)
  2. โมดูลเซ็นเซอร์สี TCS34725
  3. เครื่องหั่นขนมปังและสายจัมเปอร์
  4. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
  5. ห้องสมุด: ห้องสมุด Adafruit TCS34725

ขั้นตอนที่ 1: การทำความเข้าใจเซ็นเซอร์สี TCS34725

TCS34725 เป็นเซ็นเซอร์ที่เข้ากันได้กับ I2C ที่ให้ข้อมูลสีและแสง มันรวมถึง:

  • เซ็นเซอร์ RGBC: วัดความเข้มแสงสีแดงสีเขียวสีน้ำเงินและใส
  • ตัวกรองการปิดกั้น IR: ปรับปรุงความแม่นยำของสีภายใต้สภาวะแสงต่างๆ
  • นำ: LED สีขาวในตัวสำหรับการส่องสว่างที่สอดคล้องกัน (เป็นตัวเลือกที่จะใช้)

ขั้นตอนที่ 2: เดินสาย TCS34725 ไปยัง Arduino

TCS34725 สื่อสารกับ Arduino ผ่านโปรโตคอล I2C

การเชื่อมต่อ

พินเซ็นเซอร์ พิน Arduino
vin 5V
gnd gnd
SDA A4
SCL A5

บันทึก: สำหรับบอร์ด Arduino ที่มีหมุด SDA และ SCL เฉพาะ (เช่น Mega) ให้เชื่อมต่อพิน SDA/SCL ของเซ็นเซอร์เข้ากับที่แทน


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

ในการใช้เซ็นเซอร์ TCS34725 คุณต้องใช้ไลบรารี Adafruit TCS34725

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

  1. เปิด Arduino IDE
  2. ไป ร่าง> รวมไลบรารี> จัดการไลบรารี.
  3. ค้นหา "Adafruit TCS34725"
  4. คลิก ติดตั้ง.

ขั้นตอนที่ 4: อัปโหลดรหัสตัวอย่าง

นี่คือตัวอย่างพื้นฐานในการอ่านและแสดงค่าสีจากเซ็นเซอร์ TCS34725

รหัสตัวอย่าง

#include <Wire.h>
#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. การปรับเซ็นเซอร์

ปรับเปลี่ยนอัตราขยายและเวลาการรวมของเซ็นเซอร์สำหรับสภาพแสงที่แตกต่างกัน:

  • เวลารวม: กำหนดระยะเวลาสำหรับการวัดแสง ตัวเลือก: 2.4ms ถึง 700ms
  • ได้รับ: ขยายสัญญาณ ตัวเลือก: 1x, 4x, 16x, 60x

ตัวอย่าง:

tcs.setIntegrationTime(TCS34725_INTEGRATIONTIME_154MS);
tcs.setGain(TCS34725_GAIN_4X);

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

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

การแก้ไขปัญหา

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

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

    • ตรวจสอบแสงที่เหมาะสมและหลีกเลี่ยงเงา
    • ปรับเวลารับและการรวม
  3. ค่าผันผวน:

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

แอปพลิเคชันของเซ็นเซอร์ TCS34725

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

บทสรุป

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.