آموزش راه اندازی سنسور تشخیص رنگ 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<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="&#8220;Home&#8221; &#8212; Electropeak" src="https://electropeak.com/learn/embed/#?secret=mgvArMIhAj" data-secret="mgvArMIhAj" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> 
*/ 

#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();
}
Arduino
پس از اجرای کد تصویر زیر را در خروجی سریال مشاهده می کنید.

به عنوان یک مثال پیچیده تر، می توانیم رنگ را با سنسور TCS230 تشخیص دهیم و آن را با نئوپیکسل نمایش دهیم. این کد را می توانید از اینجا دریافت کنید.

آموزش های مشابه

Comments (3)

  • متین Reply

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

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

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

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

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

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

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

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