ماژول تشخیص رنگ TCS230/TCS3200

سنسور تشخیص رنگ RGB دقیق برای پروژه‌های رباتیک و صنعتی

ماژول تشخیص رنگ TCS3200: چشم الکترونیکی برای شناسایی دقیق طیف رنگ‌ها

ماژول تشخیص رنگ TCS230/TCS3200 یک سنسور اپتوالکترونیک پیشرفته است که قابلیت تشخیص و تفکیک رنگ‌های مختلف را با دقت بالا فراهم می‌کند. این ماژول با استفاده از یک آرایه فتودیود 8×8 و فیلترهای رنگی RGB، شدت نور قرمز، سبز و آبی را به صورت مجزا اندازه‌گیری کرده و امکان شناسایی دقیق رنگ‌ها را در پروژه‌های رباتیک، کنترل کیفیت، طبقه‌بندی و پردازش تصویر ساده فراهم می‌نماید.


اصول کار هوشمند و تکنولوژی به کار رفته

  • آرایه فتودیود: ۱۶ دیود با فیلتر قرمز، ۱۶ دیود با فیلتر سبز، ۱۶ دیود با فیلتر آبی و ۱۶ دیود بدون فیلتر.

  • فیلترگذاری نوری: استفاده از فیلترهای رنگی برای تفکیک طیف‌های نوری.

  • خروجی فرکانسی: تولید خروجی به صورت فرکانس مربعی (PWM) متناسب با شدت نور هر رنگ.

  • تنظیم حساسیت: قابلیت تغییر حساسیت به نور محیط.


ویژگی‌های منحصر به فرد TCS3200

  • تشخیص دقیق RGB: اندازه‌گیری جداگانه مولفه‌های قرمز، سبز و آبی.

  • خروجی دیجیتال فرکانسی: عدم نیاز به ADC خارجی، ارتباط ساده با میکروکنترلر.

  • تنظیمات نرم‌افزاری: امکان کالیبراسیون سفید و سیاه برای دقت بیشتر.

  • پاسخ سریع: سرعت نمونه‌برداری بالا برای سیستم‌های Real-time.

  • مصرف انرژی کم: مناسب برای سیستم‌های پرتابل.


مشخصات فنی کامل

پارامتر مشخصات فنی
تراشه اصلی TAOS TCS3200 / TCS230
ولتاژ کاری ۲.۷ تا ۵.۵ ولت DC (توصیه: ۵V)
جریان مصرف ≈ ۳ میلی‌آمپر (در حالت فعال)
خروجی فرکانس مربعی (PWM) 50% Duty Cycle
فرکانس خروجی قابل مقیاس‌سازی: 2%, 20%, 100% از فرکانس پایه
فرکانس پایه حدود 600-700 کیلوهرتز (بسته به تنظیمات)
تعداد فتودیود ۶۴ دیود در آرایه ۸×۸
فیلترهای رنگی قرمز، سبز، آبی، شفاف
پاسخ طیفی 400nm تا 700nm (طیف مرئی)
نور محیط توصیه‌شده منبع نور یکنواخت سفید (LED سفید)
پین‌های کنترلی S0, S1 (انتخاب مقیاس خروجی)، S2, S3 (انتخاب فیلتر)، OUT (خروجی)، OE (فعال‌سازی – اختیاری)

کاربردهای صنعتی و تخصصی

  1. ربات مسیریاب پیشرفته: تشخیص مسیر رنگی در مسابقات رباتیک.

  2. سیستم‌های مرتب‌سازی (Sorting): جداسازی قطعات بر اساس رنگ در خط تولید.

  3. کنترل کیفیت: بررسی رنگ محصولات غذایی، دارویی، نساجی.

  4. چاپگرها و اسکنرها: کالیبراسیون رنگ و تشخیص جوهر.

  5. پروژه‌های هنری و خلاقانه: شناسایی رنگ‌های مختلف برای تعامل.

  6. سنجش کیفیت آب: اندازه‌گیری کدری و تغییر رنگ آب.

  7. تشخیص اشیاء: شناسایی اشیاء بر اساس رنگ خاص.

  8. آموزش الکترونیک: آموزش مفاهیم پردازش سیگنال دیجیتال.


اتصال به آردوینو UNO/NANO

پایه ماژول TCS3200 اتصال به آردوینو
VCC 5V
GND GND
S0 پین دیجیتال (مثلاً D8)
S1 پین دیجیتال (مثلاً D9)
S2 پین دیجیتال (مثلاً D10)
S3 پین دیجیتال (مثلاً D11)
OUT پین دیجیتال با قابلیت وقفه (مثلاً D2 یا D3) یا پین معمولی
OE GND یا 5V (بسته به منطق فعال‌سازی)

تنظیمات مقیاس فرکانس خروجی (S0, S1)

S1 S0 مقیاس فرکانس خروجی توضیح
L L پاور داون (خاموش) حالت کم‌مصرف
L H ۲٪ برای محیط‌های بسیار روشن
H L ۲۰٪ حالت معمول (توصیه‌شده)
H H ۱۰۰٪ برای محیط‌های کم‌نور

انتخاب فیلتر رنگی (S2, S3)

S3 S2 فیلتر فعال خروجی متناسب با
L L قرمز شدت نور قرمز
L H آبی شدت نور آبی
H L بدون فیلتر شدت نور کل
H H سبز شدت نور سبز

کد نمونه: خواندن مقادیر RGB

// پین‌های متصل به TCS3200
#define S0 8
#define S1 9
#define S2 10
#define S3 11
#define OUT 2 // پین وقفه (Interrupt)

// متغیرهای زمان برای اندازه‌گیری فرکانس
unsigned long pulseWidth;
int red, green, blue;

void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(OUT, INPUT);
  
  // تنظیم مقیاس فرکانس روی 20%
  digitalWrite(S0, HIGH);
  digitalWrite(S1, LOW);
  
  Serial.begin(9600);
  Serial.println("TCS3200 Color Sensor Ready");
}

void loop() {
  // خواندن مقدار قرمز
  digitalWrite(S2, LOW);
  digitalWrite(S3, LOW);
  pulseWidth = pulseIn(OUT, LOW); // مدت زمان LOW بودن پالس
  red = map(pulseWidth, 0, 2000, 255, 0); // تبدیل به مقدار 0-255
  
  // خواندن مقدار سبز
  digitalWrite(S2, HIGH);
  digitalWrite(S3, HIGH);
  pulseWidth = pulseIn(OUT, LOW);
  green = map(pulseWidth, 0, 2000, 255, 0);
  
  // خواندن مقدار آبی
  digitalWrite(S2, LOW);
  digitalWrite(S3, HIGH);
  pulseWidth = pulseIn(OUT, LOW);
  blue = map(pulseWidth, 0, 2000, 255, 0);
  
  // نمایش نتایج
  Serial.print("R: "); Serial.print(red);
  Serial.print(" G: "); Serial.print(green);
  Serial.print(" B: "); Serial.println(blue);
  
  // تشخیص رنگ بر اساس مقادیر
  detectColor(red, green, blue);
  
  delay(1000);
}

void detectColor(int r, int g, int b) {
  // الگوریتم ساده تشخیص رنگ (نیاز به کالیبراسیون دقیق دارد)
  if (r > 200 && g < 100 && b < 100) {
    Serial.println("رنگ: قرمز");
  } else if (r < 100 && g > 200 && b < 100) {
    Serial.println("رنگ: سبز");
  } else if (r < 100 && g < 100 && b > 200) {
    Serial.println("رنگ: آبی");
  } else if (r > 200 && g > 200 && b < 100) {
    Serial.println("رنگ: زرد");
  } else if (r > 200 && g < 100 && b > 200) {
    Serial.println("رنگ: بنفش");
  } else if (r < 100 && g > 200 && b > 200) {
    Serial.println("رنگ: فیروزه‌ای");
  } else if (r > 200 && g > 200 && b > 200) {
    Serial.println("رنگ: سفید");
  } else if (r < 50 && g < 50 && b < 50) {
    Serial.println("رنگ: سیاه");
  } else {
    Serial.println("رنگ: نامشخص");
  }
}

نکات حیاتی برای دقت اندازه‌گیری

⚠️ نورپردازی یکنواخت: از منبع نور سفید ثابت (ترجیحاً LED سفید) استفاده کنید. نور محیط متغیر باعث خطا می‌شود.
⚠️ فاصله ثابت: فاصله سنسور تا شیء مورد اندازه‌گیری باید همیشه ثابت باشد.
⚠️ کالیبراسیون: حتما کالیبراسیون سفید (White Balance) انجام دهید. یک صفحه سفید را زیر نور ثابت قرار داده و مقادیر را تنظیم کنید.
⚠️ محافظت از نور محیط: از یک لوله تاریک (Light Shield) برای جلوگیری از نفوذ نور محیط استفاده کنید.
⚠️ فرکانس نمونه‌برداری: برای دقت بیشتر، میانگین چندین اندازه‌گیری را بگیرید.


پروژه عملی: ربات مرتب‌کننده مکعب‌های رنگی

قطعات مورد نیاز:

  • آردوینو UNO/MEGA

  • ماژول TCS3200

  • سروو موتور (برای هدایت شیء)

  • نوار نقاله کوچک یا سیستم مکانیکی

  • منبع نور LED سفید یکنواخت

  • مکعب‌های پلاستیکی رنگی (قرمز، آبی، سبز)

نحوه کار: مکعب روی نوار قرار گرفته، زیر سنسور رنگ‌خوانی می‌شود، سپس سروو آن را به سمت سبد مربوطه هدایت می‌کند.


مقایسه با سایر تکنولوژی‌های تشخیص رنگ

تکنولوژی TCS3200 سنسور RGB ساده دوربین دیجیتال
دقت ⭐⭐⭐⭐ (خوب) ⭐⭐ (پایین) ⭐⭐⭐⭐⭐ (عالی)
سرعت ⭐⭐⭐⭐ (سریع) ⭐⭐⭐ (متوسط) ⭐⭐ (کند – نیاز به پردازش)
هزینه ⭐⭐⭐⭐ (مناسب) ⭐⭐⭐⭐⭐ (بسیار کم) ⭐ (بسیار زیاد)
پیچیدگی ⭐⭐⭐ (متوسط) ⭐⭐⭐⭐ (ساده) ⭐ (بسیار پیچیده)
مصرف انرژی ⭐⭐⭐⭐ (کم) ⭐⭐⭐⭐⭐ (بسیار کم) ⭐⭐ (زیاد)

سوالات متداول (FAQ)

✅ چگونه کالیبراسیون سفید انجام دهم؟
یک صفحه سفید زیر نور ثابت قرار دهید. مقادیر خوانده شده برای R، G، B را یادداشت کنید. در کد، این مقادیر را به عنوان مرجع 255 در نظر بگیرید و سایر اندازه‌گیری‌ها را نسبت به آن نرمالایز کنید.

✅ آیا می‌توانم رنگ‌های مشکی و سفید را تشخیص دهم؟
بله. رنگ سیاه مقادیر بسیار پایین در همه کانال‌ها دارد. رنگ سفید مقادیر بالا و تقریباً مساوی در همه کانال‌ها دارد (البته به نورپردازی بستگی دارد).

✅ تفاوت TCS230 با TCS3200 چیست؟
عملکرد یکسان دارند. TCS3200 نسخه به‌روز شده TCS230 است و معمولاً در ماژول‌های موجود در بازار از TCS3200 استفاده می‌شود.

✅ چرا مقادیر خوانده شده نوسان دارند؟
۱. نور محیط ناپایدار. ۲. فاصله سنسور تا شیء تغییر می‌کند. ۳. نیاز به میانگین‌گیری بیشتر. ۴. ممکن است نیاز به خازن فیلتر روی پایه OUT داشته باشید.

✅ آیا می‌توانم از این سنسور در فضای باز استفاده کنم؟
به شدت توصیه نمی‌شود. نور خورشید متغیر و شدید باعث خطای زیاد می‌شود. حتما از محفظه ایزوله استفاده کنید.

✅ حداکثر سرعت تشخیص چقدر است؟
با تنظیم فرکانس روی 100% و استفاده از وقفه‌ها، می‌توان تا حدود 100 نمونه در ثانیه گرفت.

✅ آیا برای تشخیص سایه‌های رنگی (مثلاً طیف قرمز) مناسب است؟
بله، با کالیبراسیون دقیق و الگوریتم مناسب می‌توان تفاوت سایه‌های یک رنگ را هم تشخیص داد.


چرا ماژول TCS3200 را از ما بخرید؟

✅ سنسور اورجینال: استفاده از تراشه اصلی TAOS TCS3200.
✅ لنز با کیفیت: مجهز به لنز متمرکزکننده برای دقت بیشتر.
✅ کیت کامل توسعه: برخی پکیج‌ها شامل منبع نور سفید LED، پایه قابل تنظیم و لوله محافظ نور.
✅ پشتیبانی فنی: ارائه کدهای کالیبراسیون کامل، کتابخانه آماده و الگوریتم‌های تشخیص رنگ.
✅ تست کیفیت: تست کامل با چارت رنگ استاندارد.


پکیج پیشنهادی برای شروع حرفه‌ای

  1. ماژول تشخیص رنگ TCS3200 با کیفیت بالا

  2. منبع نور LED سفید 5V با دیفیوزر

  3. پایه قابل تنظیم ارتفاع برای سنسور

  4. لوله محافظ نور (Light Shield)

  5. چارت رنگ کالیبراسیون (کارت رنگی)

  6. کابل‌های رابط ۱۰ پین