نمایش نتایج: از 1 به 9 از 9
Like Tree1 لایک
  • 1 Post By e.rasekh

موضوع: ماژول سنسور رنگ - سنسور تشخیص رنگ tcs230

  1. #1
    Junior Member
    تاریخ عضویت
    Jul 2013
    نوشته ها
    13

    ماژول سنسور رنگ - سنسور تشخیص رنگ tcs230

    سنسور رنگ مدل TCS230، فتودیودهای سیلیکونی قابل تنظیم را با یک مبدل جریان به فرکانس ترکیب کرده و آن را در یک مدار مجتمع CMOS به شکل یک ماژول یکپارچه ارائه می نماید. فرکانس خروجی full-scale این سنسور را می توان توسط یکی از سه مقدار از پیش تعیین شده از طریق پین های ورودی کنترلی، درجه بندی نمود. این سنسور شامل ورودی و خروجی دیجیتال است که امکان ارتباط مستقیم با برد آردوینو . یا سایر میکروکنترلرها و مدارات منطقی را فراهم می نماید.

    خروجی این سنسور یک موج مربعی (50% duty cycle) می باشد و فرکانس آن مستقیماً با شدت (درخشندگی) نور متناسب است.

    مشخصات:

    • تراشه : TCS230
    • ولتاژ عملیاتی: 3 ولت ~ 5 ولت
    • بهترین محدوده تشخیص: 10 میلی متر
    • تبدیل شدت نور به فرکانس با وضوح بسیار بالا
    • ارتباط مستقیم با میکروکنترلر
    • اندازه PCB: تقریباً. 1.2 در 0.95 اینچ



    کاربرد:

    • تشخیص رنگ



    نحوه عملکرد:

    این سنسور، رنگ جسمی که در مقابل آن قرار دارد را تحلیل کرده و فرکانس هر یک از سه رنگ قرمز (R)، سبز(G) و آبی (B) موجود در آن را، به صورت عددی در محدوده 0 تا 255 اعلام می نماید.

    شماتیک مدار:
    tcs230.jpg

    مثال آردوینو:
    کد:
    /*
     # Be name Khoda!
     # Example code for the TCS230 Color sensor 
     # Company    : AftabRayaneh
     # Website    : http://shop.aftabrayaneh.com
     # Editor     : Elham Rasekh
     # Date       : 31.08.2013
     # Version    : 2.0
     
     # s0 -> digital pin 3
     # s1 -> digital pin 4
     # s2 -> digital pin 5
     # s3 -> digital pin 6
     # out-> digital pin 2
     # OE -> digital pin GND
     
     */
    
    int tcs_s0 = 3, tcs_s1 = 4, tcs_s2 = 5, tcs_s3 = 6;
    int tcs_out = 2;
    int flag = 0;
    int my_timer = 0;
    byte counter = 0;
    byte countR = 0, countG = 0, countB = 0;
    void setup()
    {
      Serial.begin(9600);
      pinMode(tcs_s0,OUTPUT);
      pinMode(tcs_s1,OUTPUT);
      pinMode(tcs_s2,OUTPUT);
      pinMode(tcs_s3,OUTPUT);
    }
    void TCS()
    {
      flag=0;
      digitalWrite(tcs_s1,HIGH);
      digitalWrite(tcs_s0,HIGH);
      digitalWrite(tcs_s2,LOW);
      digitalWrite(tcs_s3,LOW);
      attachInterrupt(0, ISR_INTO, LOW);
      timer0_init();
    }
    void ISR_INTO()
    {
      counter++;
    }
    void timer0_init(void)
    {
      TCCR2A=0x00;
      TCCR2B=0x07; //the clock frequency source 1024 points
      TCNT2= 10000; //10 ms overflow again
      TIMSK2 = 0x01; //allow interrupt
    }
    
    int i=0;
    ISR(TIMER2_OVF_vect)//the timer 2, 10ms interrupt overflow again. Internal overflow interrupt executive function
    { 
      if (my_timer > 100)
      {
        Serial.print("red=");
        Serial.println(countR,DEC);
        Serial.print("green=");
        Serial.println(countG,DEC);
        Serial.print("blue=");
        Serial.println(countB,DEC);
        Serial.println("\n");
        my_timer=0;
      }
      my_timer++; 
      TCNT2=100;
      flag++;
      if(flag==1)
      {
        countR=counter;
    
        digitalWrite(tcs_s2,HIGH);
        digitalWrite(tcs_s3,HIGH);
      }
      else if(flag==2)
      {
        countG=counter;
    
        digitalWrite(tcs_s2,LOW);
        digitalWrite(tcs_s3,HIGH);
      }
      else if(flag==3)
      {
        countB=counter;
        digitalWrite(tcs_s2,LOW);
        digitalWrite(tcs_s3,LOW);
      }
      else if(flag==4)
      {
        flag=0;
      }
      counter=0;
    }
    void loop()
    {
      TCS();
      while(1);
    }
    جهت سفارش این کالا، به این بخش در فروشگاه آفتاب رایانه مراجعه نمایید.
    فایل های پیوست شده فایل های پیوست شده
    ویرایش توسط e.rasekh : 09-11-2013 در ساعت 06:11 AM
    لایک کردن

  2. #2
    Junior Member
    تاریخ عضویت
    Jan 2015
    نوشته ها
    1
    سلام
    با تشکر از برنامه ای که نوشتین
    می خواستم خواهش کنم کتابخانه مربوط به این سنسور رو اگه ممکنه بذارید تا دیگه لازم نباشه در برنامه ها این همه کد رو ما اضافه کنیم. ممنون

  3. #3
    Senior Member
    تاریخ عضویت
    Jan 2015
    محل سکونت
    ایران
    نوشته ها
    238
    سلام دوست من خو.دتون میتونید این کر را تبدیل یه کتابخونه کنید و بعد فقط صداش بزنید در loop

  4. #4
    Junior Member
    تاریخ عضویت
    Sep 2015
    نوشته ها
    1
    سلام خسته نباشید
    لطف میکنید در رابطه با 4 پایه خروجی ماژول اطلاعاتی بزارین
    کدوم وصل میشه ب gnd میکرو و...

  5. #5
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,059
    واقعا؟
    بالای صفحه رو نگاه کنید

  6. #6
    Junior Member
    تاریخ عضویت
    Oct 2015
    نوشته ها
    1
    سلام
    من این سنسور را مطابق کدهای شما بستم ولی اصلا مقادیر درست را نشون نمیده.
    میشه لطفا راهنمایی کنید که مشکل از چیه؟

  7. #7
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,059
    در این موارد ما سیم بندی رو یک بار دیگه چک می کنیم

  8. #8
    مدیر ویژه
    تاریخ عضویت
    Mar 2014
    نوشته ها
    586
    سلام
    با اینکه زمان زیادی از نتایج دوستان گذشته ...
    برای استفاده از TCS230 باید تاجایی که میشه
    وابستگی سنسور رو به نورهایی که براتون مهم نیست حذف کنید.
    یعنی ؛ دور سنسور رو یک قاب مشکی یا پوشش مشکی بذارید و اجازه بدید نور مستقیم از انعکاس
    نقطه مورد نظر برسه.

    ضمن توضیحات دوستانمون ؛
    S0>VCC
    S1>VCC
    این باعث میشه فرکانس خروجی هیچ تقسیم نشه .چون با SET و RESET کردن S0 وS1 میتونید فرکانس خروجی و با درصدی(خاموش-2%-20%-100%) از خروجی ؛ تنظیم کرد ...
    OE>GND
    تا سنسور اکتیو شه
    OUT
    خروجی هست که بر اساس نوری که دیده فرکانسی متناسب در خروجی قرار می ده.
    S2 و S3
    توسط SET و RESET کردن این دو پین ؛ فیلتر های قرمز -سبز -آبی - بدون فیلتر
    رو انتخاب می کنید.
    tcs230table.jpg
    L یعنی RESET
    H یعنی SET
    نحوه عملکرد:
    وقتی که
    سنسور در مد قرمز قرار میگیره
    باید بیاید خروجی رو فرکانسش اندازه بگیرید.مثلا در مدت زمان 10 میلی ثانیه تعداد پالس ها رو بشمارید.
    مجددا سنسور در مد رنگ های سبز و آبی قرار بدید و به همین منوال فرکانس رو اندازه بگیرید.(پروسه ای در 30 میلی ثانیه)
    نتیجتا اعدادی از تعداد پالس ها در مد های قرمز سبز آبی خواهید داشت.
    حالا برای تفکیک رنگها کمی خلاقیت میطلبه با داشتن ااین مقادیر رنگها رو به یک عدد واحد تفکیک کنید.

    من پیشنهادی در این مورد برای دوستان دارم
    به این ترتیب که معادله ای باشه که مقادیر فرکانس در مد های سبز قرمز آّبی درونش بذارید و یک عدد بگیرید به طوریکه اون یک عدد معرف رنگ باشه.
    مثلا از 0 تا 30 قرمز -30 تا 70 آبی -70 تا 100 سبز (درصدی)

    به این نحو:
    متغیر A و B از نوع SINGLE هست.برای محاسبات اعشاری
    RوGوB متغیر های معمولی هستند که تعداد پالس رو مثلا در چند میلی ثانیه شمارش کردن.
    حالا :
    b.jpg
    که با آزمون و خطا تست کنید و میبینید که با رابطه ای پادار و خطی رنگ مورد نظرتون به صورت عدد معنا شده


    و
    یک لینک دیگه مربوط
    موفق و سربلند باید ...
    ویرایش توسط shobeir90 : 04-18-2016 در ساعت 11:02 AM

  9. #9
    Junior Member
    تاریخ عضویت
    Feb 2017
    نوشته ها
    1
    چجوری پالس های این سنسور رو بخونم ؟؟؟ یعنی با چه دستوری میتونم تعداد پالس ها رو بخونم؟؟؟؟؟؟؟؟؟؟؟؟؟ کمک کنید لطفا ::::: تلگرام @eco76

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO