ویژگی های سنسور تشخیص رنگTCS230
تراشه ی TSC230 دارای یک آرایه ی 8×8 از فوتو دیود های سیلیکونی است که از آن ها برای تشخیص رنگ استفاده می کند. از این 64 فوتو دیود، 16 عدد دارای فیلتر رنگ قرمز، 16 عدد دارای فیلتر رنگ سبز، 16 عدد دارای فیلتر رنگ آبی و 16 عدد بدون فیلتر هستند.
ماژول TCS230 دارای چهار LED سفید رنگ است. فوتو دیود ها، بازتاب نور این LED ها را از سطح جسم دریافت می کنند و بسته به رنگی که دریافت کرده اند، یک جریان الکتریکی تولید می کنند.
در داخل این سنسور علاوه بر فوتودیودها، یک مبدل جریان به فرکانس نیز وجود دارد. این مبدل، جریان تولید شده توسط فوتودیود ها را به فرکانس تبدیل می کند.
توجه
دیتاشیت سنسور تشخیص رنگ TCS230 را می توانید از اینجا دانلود کنید.
TCS230 Color Recognition Sensor Datasheet
معرفی پایه ها (Pinout) سنسور رنگ TCS230
سنسور TCS230 دارای 8 پایه به شرح زیر است:
- VCC: تغذیه ماژول – 5 ولت
- GND: زمین
- S0: تنظیم فرکانس خروجی
- S1: تنظیم فرکانس خروجی
- S2: انتخاب نوع فوتودیود
- S3:انتخاب نوع فوتودیود
- OUT: خروجی ماژول
پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی ماژول تشخیص رنگ TCS230 با آردوینو
گام اول: سیم بندی
گام دوم: کد
ابتدا کتابخانه زیر را بر آردوینوی خود نصب کنید.
توجه
اگر نیاز به راهنمایی بیشتر برای نصب کتابخانه بر روی آردوینو دارید، می توانید به آموزش نصب کتابخانه بر آردوینو مراجعه کنید.
نکته
کتابخانه FreqCount فقط یک پین مشخص را به عنوان ورودی قبول می کند که در بردهای مختلف متفاوت است. مثلا برای آردوینو UNO باید الزاما از پین 5 استفاده کنید. اگر از آردوینو UNO استفاده نمی کنید، از طریق این لینک پین صحیح را برای برد خود پیدا کنید.
/*
modified on Sep 12, 2020
Modified by MohammedDamirchi from https://github.com/MajicDesigns/MD_TCS230
Home
*/
#include <MD_TCS230.h>
#include <FreqCount.h>
// Pin definitions
#define S0_OUT 8
#define S1_OUT 9
#define S2_OUT 6
#define S3_OUT 7
#define OE_OUT 12 // LOW = ENABLED
MD_TCS230 CS(S2_OUT, S3_OUT, S0_OUT, S1_OUT, OE_OUT);
void setup()
{
Serial.begin(57600);
Serial.println("[TCS230 Simple NON_BLOCKING Example]");
Serial.println("\nMove the sensor to different color to see the RGB value");
Serial.println("Note: These values are being read in without sensor calibration");
Serial.println("and are likely to be far from reality");
CS.begin();
}
void readSensor()
{
static bool waiting;
if (!waiting)
{
CS.read();
waiting = true;
}
else
{
if (CS.available())
{
colorData rgb;
CS.getRGB(&rgb);
Serial.print("RGB [");
Serial.print(rgb.value[TCS230_RGB_R]);
Serial.print(",");
Serial.print(rgb.value[TCS230_RGB_G]);
Serial.print(",");
Serial.print(rgb.value[TCS230_RGB_B]);
Serial.println("]");
waiting = false;
}
}
}
void loop()
{
readSensor();
}
به عنوان یک مثال پیچیده تر، می توانیم رنگ را با سنسور TCS230 تشخیص دهیم و آن را با نئوپیکسل نمایش دهیم. این کد را می توانید از اینجا دریافت کنید.
Comments (3)
سلام.ببخشید من وقتی سریال مانیتور رو باز می کنم چیز های نامفهموم می نویسه.باودریت هم درست تنطیم کردم.می شه راهنماییم کنید؟ با تشکر
سلام.
این مشکلیه که همیشه دارید یا موقع اجرای این برنامه اینطوری میشه؟
سلام.خیر فقط موقع اجرای برنامه این طوری می شه.