جدول المحتويات:

حساب شدة الضوء باستخدام BH1715 و Arduino Nano: 5 خطوات
حساب شدة الضوء باستخدام BH1715 و Arduino Nano: 5 خطوات

فيديو: حساب شدة الضوء باستخدام BH1715 و Arduino Nano: 5 خطوات

فيديو: حساب شدة الضوء باستخدام BH1715 و Arduino Nano: 5 خطوات
فيديو: شدة الإضاءة 2024, يوليو
Anonim
Image
Image

بالأمس كنا نعمل على شاشات LCD ، وأثناء العمل عليها أدركنا أهمية حساب شدة الضوء. شدة الضوء ليست مهمة فقط في المجال الفيزيائي لهذا العالم ولكن لها دورها الجيد في المجال البيولوجي أيضًا. يلعب التقدير الدقيق لشدة الضوء دورًا محوريًا في نظامنا البيئي ، وفي نمو النباتات ، وما إلى ذلك ، لذلك ، لخدمة هذا الغرض ، درسنا هذا المستشعر BH1715 ، وهو مستشعر إضاءة محيطة من نوع الإخراج التسلسلي 16 بت.

في هذا البرنامج التعليمي ، سوف نوضح عمل BH1715 مع Arduino Nano.

الأجهزة التي ستحتاجها لهذا الغرض هي كما يلي:

1. BH1715 - مستشعر الضوء المحيط

2. اردوينو نانو

3. كابل I2C

4. I2C Shield لاردوينو نانو

الخطوة 1: نظرة عامة على BH1715:

ماذا تحتاج..!!
ماذا تحتاج..!!

بادئ ذي بدء ، نود أن نطلعك على الميزات الأساسية لوحدة المستشعر BH1715 وبروتوكول الاتصال الذي تعمل عليه.

BH1715 هو مستشعر رقمي للضوء المحيط بواجهة ناقل I²C. يتم استخدام BH1715 بشكل شائع للحصول على بيانات الإضاءة المحيطة لضبط طاقة الإضاءة الخلفية لشاشات الكريستال السائل ولوحة المفاتيح للأجهزة المحمولة. يوفر هذا الجهاز دقة 16 بت ونطاق قياس قابل للتعديل ، مما يسمح بالكشف من 0.23 إلى 100000 لوكس.

بروتوكول الاتصال الذي يعمل عليه المستشعر هو I2C. I2C تعني الدائرة المتكاملة. إنه بروتوكول اتصال يتم فيه الاتصال من خلال خطوط SDA (البيانات التسلسلية) و SCL (الساعة التسلسلية). يسمح بتوصيل أجهزة متعددة في نفس الوقت. إنه أحد أبسط بروتوكولات الاتصال وأكثرها كفاءة.

الخطوة الثانية: ماذا تحتاج..

ماذا تحتاج..!!
ماذا تحتاج..!!
ماذا تحتاج..!!
ماذا تحتاج..!!
ماذا تحتاج..!!
ماذا تحتاج..!!

تشمل المواد التي نحتاجها لتحقيق هدفنا مكونات الأجهزة التالية:

1. BH1715 - مستشعر الضوء المحيط

2. اردوينو نانو

3. كابل I2C

4. I2C Shield لاردوينو نانو

الخطوة 3: ربط الأجهزة:

ربط الأجهزة
ربط الأجهزة
ربط الأجهزة
ربط الأجهزة

يشرح قسم توصيل الأجهزة بشكل أساسي اتصالات الأسلاك المطلوبة بين المستشعر و raspberry pi. يعد التأكد من التوصيلات الصحيحة ضرورة أساسية أثناء العمل على أي نظام للإخراج المطلوب. إذن ، الاتصالات المطلوبة هي كما يلي:

سيعمل BH1715 على I2C. فيما يلي مثال على مخطط الأسلاك ، يوضح كيفية توصيل كل واجهة من أجهزة الاستشعار.

خارج الصندوق ، تم تكوين اللوحة لواجهة I2C ، لذلك نوصي باستخدام هذا التوصيل إذا كنت غير مدرك. كل ما تحتاجه هو أربعة أسلاك!

مطلوب أربعة اتصالات فقط دبابيس Vcc و Gnd و SCL و SDA ويتم توصيلها بمساعدة كابل I2C.

هذه الوصلات موضحة في الصور أعلاه.

الخطوة 4: كود اردوينو لقياس شدة الضوء:

كود اردوينو لقياس شدة الضوء
كود اردوينو لقياس شدة الضوء
كود اردوينو لقياس شدة الضوء
كود اردوينو لقياس شدة الضوء

لنبدأ برمز Arduino الآن.

أثناء استخدام وحدة الاستشعار مع Arduino ، نقوم بتضمين مكتبة Wire.h. تحتوي مكتبة "Wire" على الوظائف التي تسهل اتصال i2c بين المستشعر ولوحة Arduino.

يتم تقديم كود Arduino بالكامل أدناه لراحة المستخدم:

#يشمل

// BH1715 I2C address is 0x23 (35) #define Addr 0x23 void setup () {// Initialise I2C communication as MASTER Wire.begin ()؛ // تهيئة الاتصال التسلسلي ، تعيين معدل الباود = 9600 Serial.begin (9600) ؛ // ابدأ I2C Transmission Wire.beginTransmission (Addr) ؛ // إرسال الطاقة على الأمر Wire.write (0x01) ؛ // Stop I2C Transmission Wire.endTransmission () ؛ // ابدأ I2C Transmission Wire.beginTransmission (Addr) ؛ // إرسال أمر القياس المستمر Wire.write (0x10) ؛ // Stop I2C Transmission Wire.endTransmission () ؛ تأخير (300) ؛ } void loop () {unsigned int data [2]؛ // طلب 2 بايت من البيانات Wire.requestFrom (Addr، 2)؛ // قراءة 2 بايت من البيانات // ALS msb، ALS lsb if (Wire.available () == 2) {data [0] = Wire.read ()؛ البيانات [1] = Wire.read () ، } تأخير (300)؛ // تحويل إضاءة تعويم البيانات = ((البيانات [0] * 256) + البيانات [1]) / 1.20 ؛ // إخراج البيانات إلى جهاز العرض التسلسلي Serial.print ("إضاءة محيط الضوء:") ؛ Serial.print (النصوع) ؛ Serial.println ("لوكس") ؛ }

يبدأ الجزء التالي من الكود الاتصال i2c والاتصال التسلسلي بمساعدة وظيفة Wire.begin () و Serial.begin ().

// تهيئة اتصال I2C باعتباره MASTER

Wire.begin () ؛ // تهيئة الاتصال التسلسلي ، تعيين معدل الباود = 9600 Serial.begin (9600) ؛ // ابدأ I2C Transmission Wire.beginTransmission (Addr) ؛ // إرسال الطاقة على الأمر Wire.write (0x01) ؛ // Stop I2C Transmission Wire.endTransmission () ؛ // ابدأ I2C Transmission Wire.beginTransmission (Addr) ؛ // إرسال أمر القياس المستمر Wire.write (0x10) ؛ // Stop I2C Transmission Wire.endTransmission () ؛ تأخير (300) ؛

يتم قياس شدة الضوء في القسم التالي من الكود.

بيانات int غير الموقعة [2] ؛

// طلب 2 بايت من البيانات Wire.requestFrom (Addr، 2)؛ // قراءة 2 بايت من البيانات // ALS msb، ALS lsb if (Wire.available () == 2) {data [0] = Wire.read ()؛ البيانات [1] = Wire.read () ، } تأخير (300)؛ // تحويل إضاءة تعويم البيانات = ((البيانات [0] * 256) + البيانات [1]) / 1.20 ؛ // إخراج البيانات إلى جهاز العرض التسلسلي Serial.print ("إضاءة محيط الضوء:") ؛ Serial.print (النصوع) ؛ Serial.println ("لوكس") ؛

كل ما عليك فعله هو نسخ الكود في اردوينو والتحقق من قراءاتك على المنفذ التسلسلي. يظهر الإخراج في الصورة أعلاه أيضًا للرجوع إليها.

الخطوة 5: التطبيقات:

التطبيقات
التطبيقات

BH1715 عبارة عن مستشعر إضاءة محيطة رقمي يمكن دمجه في الهاتف المحمول وتليفزيون LCD وجهاز كمبيوتر الملاحظات وما إلى ذلك ، ويمكن استخدامه أيضًا في آلة الألعاب المحمولة ، والكاميرا الرقمية ، وكاميرا الفيديو الرقمية ، و PDA ، وشاشة LCD والعديد من الأجهزة الأخرى التي تتطلب تطبيقات فعالة لاستشعار الضوء.

موصى به: