راه اندازی ماژول نور محیط TSL25911 با آردوینو

محتویات
امروز خیلی از مکان ها به سنسور های تشخیص نور محیط مجهز هستند. حسگر هایی که میزان روشنایی را میسنجند، سنسور نور یا سنسور روشنایی نامیده میشوند. اگر بخواهید از ساده ترین نمونه سنسور های تشخیص روشنایی استفاده کنید، باید از یک LDR استفاده کنید. اما در حال حاضر سنسور های خیلی زیادی برای تشخیص روشنایی خانه وجود دارد که پیشرفته و هوشمند هستند. این سنسور ها در گوشی های هوشمند و … استفاده میشوند. مرسوم ترین نمونه تنظیم خودکار روشنایی صفحه موبایل هوشمند است که باعث میشوند در محیط های مختلف مردمک چشم ما اذیت نشود و تصویر به خوبی دیده شود.
در این آموزش میخواهیم سنسور روشنایی محیط TSL25911 را با آردوینو راه اندازی کنیم.
ماژول سنسور نور محیطی TSL25911
این ماژول یک حسگر نور محیط دیجیتالی با حساسیت بالا بر اساس تراشه TSL25911fn از شرکت ams است. TSL25911 می تواند شدت نور محیط اطراف را حس کند و از طریق پروتکل I2C آن را به بیرون منتقل کند. داده خروجی از فرمولی برای استخراج روشنایی در لوکس (شدت نور محیط) استفاده می کند. همچنین ما قبلاً از سنسور BH1750 با آردوینو استفاده کردهایم که میتوانست شدت نور را در واحد LUX نیز اندازهگیری کند.
ویژگی های سنسور TSL25911
- از TSL25911FN استفاده می کند، نور مادون قرمز و نور مرئی را اندازه گیری می کند.
- ADC داخلی تعبیه شده، خروجی سیگنال شدت نور مستقیم به رابط I2C و پارازیت نویز کمتر
- حساسیت بالا تا 188uLux، محدوده دینامیکی گسترده تا 600M:1
- فوتودیود پاسخگوی مادون قرمز تعبیه شده امکان اندازه گیری دقیق را حتی در محیط با نویز مادون قرمز می دهد.
- خروجی وقفه با آستانه های HIGH و LOW قابل برنامه ریزی را ارائه می دهد.
- سازگار با ولتاژ 3.3V و 5V
ماژول سنسور TSL25911 در مجموع دارای 5 پین است. دو پایه تغذیه، یک پایه وقفه و دو پایه I2C. لیست پین های ماژول به شرح زیر است:
- VCC – برق ماژول را تامین می کند، به پین 5 ولت آردوینو متصل می شود
- GND – اتصال GND به پایه GND آردوینو
- SCL – کلاک سریال برای ارائه پالس ساعت برای ارتباطات I2C استفاده می شود
- SDA – داده سریال که برای انتقال داده از طریق ارتباط I2C استفاده می شود
- INT – پین وقفه
ماژول TSL25911 چگونه کار می کند؟
TSL25911 شامل دو مبدل آنالوگ به دیجیتال یکپارچه (ADC) است که جریان های دو فوتودیود را ادغام می کند. ادغام هر دو کانال به طور همزمان اتفاق می افتد. پس از انتقال، دستگاه به طور خودکار چرخه ادغام بعدی را آغاز می کند. هیچ مدار خارجی برای تجزیه سیگنال مورد نیاز نیست. از آنجایی که خروجی دستگاه دیجیتال است، در مقایسه با سیگنال آنالوگ، در برابر نویز مقاومت بالایی دارد.
TSL2591 همچنین از ویژگی وقفه پشتیبانی می کند که کارایی سیستم را ساده و بهبود می بخشد. هدف اصلی تابع وقفه تشخیص یک تغییر معنی دار در شدت نور است. مفهوم تغییر معنادار را کاربر میتواند از نظر شدت نور و زمان یا تداوم آن تغییر در شدت تعریف کند. این دستگاه توانایی تعریف دو مجموعه آستانه (هم بالاتر و هم زیر سطح نور فعلی) را دارد. وقفه زمانی ایجاد می شود که مقدار تبدیل از هر یک از این محدودیت ها فراتر رود.
مدار اتصالTSL25911 به آردوینو
اکنون که به طور کامل متوجه شده ایم که سنسور نور محیطی TSL25911 چگونه کار می کند، می توانیم تمام سیم های مورد نیاز را به آردوینو متصل کرده و کد را بنویسیم تا داده ها از سنسور دریافت شود. تصویر زیر شماتیک مدار اتصال ماژول سنسور نور محیط TSL25911 با آردوینو را نشان می دهد.
اتصالات بسیار ساده هستند و شما فقط به 4 سیم نیاز دارید. VCC و GND ماژول را به پایه های 5 ولت و GND آردوینو وصل کنید. سپس پایه های SDA و SCL را به ترتیب به A4 و A5 آردوینو متصل کنید.
کد آردوینو برای سنسور TSL25911
کد کامل در انتهای صفحه قرار داده شده است. بعد از برقراری اتصالات کد را روی آردوینو آپلود کنید. در اینجا قسمت های مهم کد را توضیح میدهیم.
#include "DEV_Config.h" #include "TSL2591.h" UWORD Lux = 0; void setup() { DEV_ModuleInit(); Serial.print("TSL2591_Init\r\n"); TSL2591_Init(); }
ابتدا فایل های هدر را برای کتابخانه TSL2591 فراخوانی میکنیم. پس از آن، در تابع setup، با فراخوانی تابع DEV_ModuleInit() سنسور را مقداردهی اولیه میکنیم.
void loop() { Lux = TSL2591_Read_Lux(); Serial.print("Lux = "); Serial.print(Lux); Serial.print("\r\n"); TSL2591_SET_LuxInterrupt(50,200); }
در تابع Loop، ما به طور مداوم داده های سنسور را می خوانیم و آن را در سریال مانیتور چاپ می کنیم.
موارد موجود در فایل : فایل سورس کامل
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود