امروزه سنسورهای نور محیط جزئی از گوشی های هوشمند، نوت بوک ها، سایر دستگاه های تلفن همراه، نمایشگرهای خودرو و تلویزیون های LCD هستند. از این سنسورها برای تشخیص میزان نور موجود در محیط استفاده می شود ، همچنین در دستگاه هایی مثل گوشی های هوشمند و نوت بوک ها، از این سنسورها برای تنظیم اتومات نور صفحهی نمایشگر، باتوجه به نور محیط، استفاده میشود، در نتیجه هم در مصرف انرژی صرفه جویی میشود و هم طول عمر دستگاه افزایش میابد.
به طور کلی سه نوع متداول سنسور نور محیط وجود دارد: ترانزیستورهای نوری، فوتودیودها، و ICهای فوتونی که از ترکیب یک فوتو دیتکتور (photodetector) و یک تقویت کننده تشکیل شده اند.
در میان سنسورهای نوری ، سنسورهایی که سه رنگ اصلی قرمز، سبز و آبی را تشخیص می دهند، سنسور رنگ نامیده می شوند.
سنسورهای رنگی مقادیر RGB(RED,GREEN,BLUE) را با دریافت نور محیط با استفاده از فتودیود تشخیص می دهند.
هنگامی که نوری حاوی نورهای سبز،آبی و قرمز به جسمی تابیده میشود، رنگ نور منعکس شده بسته به رنگ جسم تغییر می کند.
به عنوان مثال، اگر جسم قرمز باشد، قسمت قرمز نور را منعکس میکند. برای یک جسم زرد، نور بازتاب شده قرمز و سبز خواهد بود و اگر جسم سفید باشد، هر سه جزء منعکس می شوند. به این ترتیب، رنگ جسم از نسبت اجزای رنگهای آبی،سبز و قرمز (RGB) در نور بازتاب شده تعیین می شود.
به طور مشابه، چشم انسان با دریافت این اجزای نور منعکس شده، رنگ را تعیین می کند. دیدن در تاریکی غیرممکن است و دلیل آن این است که هیچ تابش نوری وجود ندارد و این به این معنیست که بازتاب نوری نیز وجود ندارد، بنابراین همه چیز کاملاً سیاه به نظر می رسد.
همانند چشم انسان، سنسورهای رنگی میتوانند با تشخیص نور (با استفاده از دیودهای نوری) و سپس محاسبه نسبت R، G و B دریافتی، رنگ را تعیینکنند.
مروری بر APDS9960
سنسور APDS9960 از چهار فتودیود جهت دار برای تشخیص انرژی IR منعکس شده و تبدیل اطلاعات حرکت فیزیکی به دیتاهای دیجیتال استفاده می کند و همچنین میتواند به کمک فوتودیود تعبیه شده در آن و با اندازهگیری انرژی IR منعکس شده از سوی جسم، حرکت اجسام و دور یا نزدیک شدن آنها را نیز تشخیص دهد. علاوه بر این، این سنسور دارای ویژگی تشخیص رنگ و ALS نیز میباشد که بخش مربوط به سنسور رنگ و سنسور نورمحیط این قطعه، درای فیلتر IR و UV میباشد.
مشخصات فنی
کاربردها
- Output type: Digital-I2C
- Resolution: 16 Bit
- Peak Wavelength: 950nm
- Wavelength Range: ~360 to ~1100 nm
For more specifications, please refer to datasheet
- Gesture Detection
- Color Sense
- Ambient Light Sensing
- Cell Phone Touch Screen Disable
- Mechanical Switch Replacement
ویژگیهای ماژول GebraBit APDS9960
- On Board, ON/OFF LED indicator
- I2C interface for reading data and configuring the sensor
- LED indicator for Dedicated Interrupt Pin
- Pin Compatible with GEBRABUS
- It can be used as a daughter board of GEBRABIT MCU Modules
- Featuring Castellated pad (Assembled as SMD Part)
- Separatable screw parts to reduce the size of the board
- Package: GebraBit small (36.29mm x 32.72mm)
ماژول GebraBit APDS9960
GebraBit APDS9960 دارای قابلیت تشخیص حالت پیشرفته، تشخیص مجاورت، تشخیص نور محیط دیجیتال (ALS) و تشخیص رنگ (RGBC) با فیلترهای مسدودکننده UV و IR میباشد که با ولتاژ تغذیه “3V3” کار می کند . همچنین یک پین اختصاصی به نام “VLD” نیز برای تغذیه LED روی ماژول در نظرگرفته شده است.
GebraBit APDS9960 با پروتکل I2C ارتباط برقرار می کند و دارای یک LED اختصاصی برای پین وقفه است.
با توجه به دشواری دستسرسی به پین های سنسور، کاربران برای توسعه سخت افزاری و البته توسعه نرم افزاری سنسور،نیاز به یک مدار راه انداز و درایور دارند.GebraBit برای راحتی کاربران این امر را با پیاده سازی مدار سنسور APDS9960 و ارایه دسترسی به پین های آن، محق ساخته است.
برای راه اندازی این ماژول کافیست ماژول GebraBit APDS9960 را در BreadBoard قرار داده سپس با اعمال ولتاژ مورد ، ماژول GebraBit APDS9960 را با هریک از برد های اردوینو، رزبری پای ، دیسکاوری و مخصوصا ماژول GebraBit STM32F303 یا GebraBit ATMEGA32 که پیشنهاد ما استفاده از ماژول های توسعه میکروکنترلری GebraBit هست،راه اندازی و دیتا را دریافت کنید.
دلیل پیشنهاد ما در راه اندازی ماژول GebraBit APDS9960 با ماژول های توسعه میکروکنترلری GebraBit مانند GebraBit STM32F303 یا GebraBit ATMEGA32 ،وجود رگولاتور داخلی 3V3 در آنها و سازگاری ترتیب پین های همه ماژول های GebraBit با هم بوده(استاندارد GEBRABUS) که فقط کافیست ماژول GebraBit APDS9960 را مانند تصویر بالا در سوکت مربوطه قرار داده و بدون نیاز به سیم کشی ،ماژول سنسور مورد نظر را توسعه دهید.
معرفی بخش های ماژول
سنسور APDS9960
ای سی اصلی این ماژول بوده که در مرکز ماژول قرار گرفته و مدار آن طراحی شده است.
LED وقفه
یکLED اختصاصی برای پین وقفه روی ماژول در نظر گرفته شده است که با تغییر وضعیت وقفه با توجه به دیتاشیت سنسور، وضعیت این LED نیز تغییر میکند.
LED تغذیه
با اعمال ولتاژ توسط پین “3v3” LED تغذیه ماژول روشن می شود.
پینهای ماژول GebraBit APDS9960
پین های تغذیه
- 3V3 : این پین، تغذیه اصلی سنسور و سطح منطق(Logic Level) ارتباط دییجیتال(I2C ) سنسور را تامین میکند.
- GND : این پین زمین مشترک برای تغذیه و سطح منطق(Logic Level) سنسور می باشد.
پینهای I2C
- SDA : این پین، پین دیتای ارتباط I2C می باشد، که به پین دیتای متناظر در میکروکنترلر(پردازنده) ، متصل می شود.
- SCL : این پین، پین کلاک ارتباط I2C می باشد، که به پین کلاک متناظر در میکروکنترلر(پردازنده) ، متصل می شود.
دیگر پینها
- INT: پین Interrupt (وقفه) سنسور APDS9960 بوده که با توجه به دیتاشیت سنسور، کاربر می تواند شرایط وقوع وقفه،حالات و روش های وقوع وقفه و … را تنظیم کند.
- VLD: این پین، پین اختصاصی برای تغذیه LED سنسور است. این LED هم میتواند به طور جداگانه از طریق پین VLD توسط کاربر تغذیه شود و هم میتواند از طریق پین 3V3 تغذیه شود.
اتصال به پردازنده
اتصال I2C با GebraBit STM32F303
برای اتصال I2C ماژول GebraBit APDS9960 به ماژول میکروکنترلرGebraBit STM32F303 بعد از تعریف کردن SDA و SCL روی پین های PB9 و PB8 (برای راحتی کار در STMCUBEMX)مراحل زیر را دنبال کنید:
- پین “3V3” ماژول GebraBit APDS9960 را به پین “3V3” خروجی ماژول میکروکنترلر متصل کنید.(سیم قرمز)
- پین “GND” ماژول GebraBit APDS9960 را به پین “GND” ماژول میکروکنترلر متصل کنید.(سیم سیاه)
- پین “SCL” ماژول GebraBit APDS9960 را به پین PB8 ماژول میکروکنترلر (SCL) متصل کنید.(سیم آبی)
- پین “SDA” ماژول GebraBit APDS9960 را به پین PB9 ماژول میکروکنترلر (SDA) متصل کنید.(سیم زرد)
نحوه اتصال موارد ذکر شده در بالا،در این تصویر مشاهده می شود:
توجه: با توجه به اینکه پین PA14 ماژول میکروکنترلرGebraBit STM32F303 برای پروگرام کردن میکروکنترلر استفاده میشود،تنظیم I2C بر روی پین های PA14 و PA15 در این ورژن مقدور نمی باشد،لذا در اتصال I2C به ماژول میکروکنترلرGebraBit STM32F303 در این ورژن ، ماژول GebraBit APDS9960نمی تواند به صورت Pin to Pin بر روی آن قرار گیرد
اتصال I2C با GebraBit ATMEGA32A
با توجه به اینکه پین های I2C میکروکنترلر ATMEGA32A بر اساس استاندارد GEBRABUS متناظر با پین های I2C دیگر ماژول های GEBRABIT می باشد، ماژول GebraBit APDS9960 را به صورت Pin to Pin بر روی ماژول GebraBit ATMEGA32A قرار داده و به راحتی با ماژول GebraBit APDS9960 از طریق I2C ارتباط برقرار کنید:
در اینجا برای درک بهتر، اتصال جداگانهی این دو ماژول نمایش داده شده است.
اتصال I2C با ARDUINO UNO
برای اتصال I2C ماژول GebraBit APDS9960 به ARDUINO UNO مراحل زیر را دنبال کنید:
- پین “3V3” ماژول GebraBit APDS9960 را به پین “3V3” خروجی برد ARDUINO UNO متصل کنید.(سیم قرمز)
- پین “GND” ماژول GebraBit APDS9960 را به پین “GND” برد ARDUINO UNO متصل کنید.(سیم سیاه)
- پین “SCL” ماژول GebraBit APDS9960 را به پین A5 برد ARDUINO UNO( (SCLمتصل کنید.(سیم آبی)
- پین “SDA” ماژول GebraBit APDS9960 را به پین A4 برد ARDUINO UNO( (SDAمتصل کنید.(سیم نارنجی)
نحوه اتصال موارد ذکر شده در بالا،در این تصویر مشاهده می شود: