آموزش راه اندازی سنسور تشخیص رنگ TCS230 با آردوینو

فهرست مطالب

ویژگی های سنسور تشخیص رنگTCS230

تراشه ی TSC230 دارای یک آرایه ی 8×8 از فوتو دیود های سیلیکونی است که از آن ها برای تشخیص رنگ استفاده می کند. از این 64 فوتو دیود، 16 عدد دارای فیلتر رنگ قرمز، 16 عدد دارای فیلتر رنگ سبز، 16 عدد دارای فیلتر رنگ آبی و 16 عدد بدون فیلتر هستند.


ماژول TCS230 دارای چهار LED سفید رنگ است. فوتو دیود ها، بازتاب نور این LED ها را از سطح جسم دریافت می کنند و بسته به رنگی که دریافت کرده اند، یک جریان الکتریکی تولید می کنند.

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

توجه
بهترین بازه ی اندازه گیری این سنسور حدود 1 تا 4 سانتی متر است.

دیتاشیت سنسور تشخیص رنگ TCS230 را می توانید از اینجا دانلود کنید.

معرفی پایه ها (Pinout) سنسور رنگ TCS230

سنسور TCS230 دارای 8 پایه به شرح زیر است:

  •  VCC: تغذیه ماژول – 5 ولت
  • GND: زمین
  • S0: تنظیم فرکانس خروجی
  • S1: تنظیم فرکانس خروجی
  •  S2: انتخاب نوع فوتودیود
  • S3:انتخاب نوع فوتودیود
  •  OUT: خروجی ماژول

پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

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

آردوینو UNO R3 × 1
سنسور تشخیص رنگ TCS230 × 1
سیم جامپر نری به مادگی × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی ماژول تشخیص رنگ TCS230 با آردوینو

گام اول: سیم بندی

مطابق مدار زیر، ماژول را به آردوینو وصل کنید.

گام دوم: کد

ابتدا کتابخانه زیر را بر آردوینوی خود نصب کنید.

https://github.com/PaulStoffregen/FreqCount

https://github.com/MajicDesigns/MD_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)

  • متین Reply

    سلام.ببخشید من وقتی سریال مانیتور رو باز می کنم چیز های نامفهموم می نویسه.باودریت هم درست تنطیم کردم.می شه راهنماییم کنید؟ با تشکر

    دسامبر 28, 2020 at 11:21 ق.ظ
    • مهران ملکی Reply

      سلام.
      این مشکلیه که همیشه دارید یا موقع اجرای این برنامه اینطوری میشه؟

      دسامبر 28, 2020 at 11:43 ق.ظ
  • متین Reply

    سلام.خیر فقط موقع اجرای برنامه این طوری می شه.

    ژانویه 1, 2021 at 10:26 ق.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.