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

مصباح LED لاسلكي متوافق مع ضوء Arduino باستخدام المقاوم الضوئي: 4 خطوات
مصباح LED لاسلكي متوافق مع ضوء Arduino باستخدام المقاوم الضوئي: 4 خطوات

فيديو: مصباح LED لاسلكي متوافق مع ضوء Arduino باستخدام المقاوم الضوئي: 4 خطوات

فيديو: مصباح LED لاسلكي متوافق مع ضوء Arduino باستخدام المقاوم الضوئي: 4 خطوات
فيديو: Introduction to Heltec LoRa CubeCell Development Board HTCC-AB01 2024, يوليو
Anonim
مصباح LED لاسلكي متطابق مع ضوء اردوينو باستخدام مقاوم ضوئي
مصباح LED لاسلكي متطابق مع ضوء اردوينو باستخدام مقاوم ضوئي
مصباح LED لاسلكي متطابق مع ضوء اردوينو باستخدام مقاوم ضوئي
مصباح LED لاسلكي متطابق مع ضوء اردوينو باستخدام مقاوم ضوئي
مصباح LED لاسلكي متطابق مع الضوء من Arduino باستخدام المقاوم الضوئي
مصباح LED لاسلكي متطابق مع الضوء من Arduino باستخدام المقاوم الضوئي

يوضح هذا التوجيه بالتفصيل الخطوات اللازمة لإنشاء مصباح LED لاسلكي بدائي مستشعر للضوء باستخدام Arduino Unos ومقاوم ضوئي. قد يكون أحد التطبيقات الممكنة لهذا الجهاز هو إضاءة غرفة لا تحتوي على نوافذ بأشعة الشمس الاصطناعية ، بحيث تتوافق مع ظروف الإضاءة الفعلية بالخارج في الوقت الفعلي. هيا بنا نبدأ!

قائمة الدعم:

اردوينو اونو x2

NRF24L01 جهاز الإرسال والاستقبال اللاسلكي x2 (اختياري - حقيبة ظهر NRF24L01 x2)

ترانزستور دارلينجتون TIP120

مقاوم ضوئي

5 ملم المصابيح x3

اضغط الزر

مقاوم 100 أوم x3

10 كيلو أوم المقاوم x3

أسلاك توصيل مختلفة

الخطوة 1: توصيل الأسلاك لوحدات ودائرة NRF24L01

توصيل الأسلاك في وحدات ودائرة NRF24L01
توصيل الأسلاك في وحدات ودائرة NRF24L01
توصيل الأسلاك في وحدات ودائرة NRF24L01
توصيل الأسلاك في وحدات ودائرة NRF24L01
توصيل الأسلاك في وحدات ودائرة NRF24L01
توصيل الأسلاك في وحدات ودائرة NRF24L01

في هذا المشروع ، سيعمل أحد Arduino كجهاز إرسال ، ويرسل بيانات مستوى الضوء من المقاوم الضوئي عند الضغط على زر الضغط. سيعمل Arduino الآخر كمستقبل ، حيث يأخذ تلك البيانات ويحولها إلى إشارة إلى مصابيح LED. تُظهر الصورة الأولى مخطط جهاز الإرسال ، بينما تُظهر الصورة الثانية جهاز الاستقبال.

ملاحظة: في صور مشروعي ، ستلاحظ أن أجهزة الإرسال والاستقبال NRF24L01 متصلة بثنائي الفينيل متعدد الكلور آخر. هذه وحدة ظهر لأجهزة الإرسال والاستقبال ، والتي تعمل كمنظم للطاقة. بالإضافة إلى جعل الأسلاك أسهل ، تنظم حقائب الظهر هذه مدخلات الطاقة لـ NRF24L01 ، مما يسمح باستخدام مصدر طاقة 5 فولت. لقد حذفت حقائب الظهر هذه في رسومي التخطيطي من أجل الوضوح.

(إذا قررت استخدام حقائب الظهر ، فيرجى الرجوع إلى هذا الرابط للحصول على رسم تخطيطي لمواقع الدبوس في إشارة إلى المخزون NRF24L01).

مرفق أدناه نسخة PDF من الدائرة لتسهيل التكبير / التصغير / العرض التفصيلي.

الخطوة 2: تشفير جهاز الإرسال

الخطوة الأخيرة هي الترميز. ستحتاج إلى تثبيت مكتبة RadioHead أو مكتبة مكافئة لاستخدامها مع وحدات NRF24L01.

بالنسبة لهذا المشروع ، يستخدم جهاز الإرسال والاستقبال Arduinos رمزًا مختلفًا في كل منهما. هذا هو رمز جهاز الإرسال:

لقد أرفقت أيضًا ملف.ino (NRF_Send) للراحة.

#يشمل

#يشمل

RH_NRF24 nrf24 ؛ // تهيئة جهاز الإرسال والاستقبال كـ nrf24

زر int = 5 ؛ // تعيين قيم الدبوس للزر والمقاوم الضوئي

int p المقاوم = A0 ؛ قيمة int = 0 ؛ // قيمة الضوء من 0-1023

الإعداد باطل()

{Serial.begin (9600) ، pinMode (زر ، الإدخال) ؛ pinMode (المقاوم ، المدخلات) ؛ if (! nrf24.init ()) // ينبه المستخدم إذا فشلت تهيئة الوحدة النمطية Serial.println ("فشل init") ؛ // الافتراضيات بعد التهيئة هي 2.402 جيجاهرتز (القناة 2) ، 2 ميجابت في الثانية ، 0 ديسيبل إذا (! nrf24.setChannel (1)) Serial.println ("فشل setChannel") ؛ إذا (! nrf24.setRF (RH_NRF24:: DataRate2Mbps، RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF فشل")؛ }

حلقة فارغة()

{if (digitalRead (button)) {// أرسل رسالة إذا تم الضغط على الزر value = analogRead (pResistor) ؛ // اقرأ قيمة المقاوم الضوئي (0-1023) بيانات uint8_t = {value} ؛ // يعين مصفوفة تسمى "data " تحتوي على قيمة الضوء nrf24.send (data، sizeof (data))؛ // أرسل المصفوفة إلى المتلقي nrf24.waitPacketSent () ؛ // انتظر حتى يتم إرسال الحزمة Serial.println ("Light Value:" + String (value)) ؛ // اطبع قيمة الضوء في الشاشة التسلسلية}}

الخطوة 3: تشفير جهاز الاستقبال

بالنسبة لجهاز الاستقبال ، يستخدم الرمز أيضًا مكتبة RadioHead.

#يشمل

#يشمل

RH_NRF24 nrf24 ؛

كثافة العمليات LEDPin = 3 ؛

قيمة int = 0 ؛ // قيمة الضوء من 0-1023

الإعداد باطل()

{Serial.begin (9600) ، pinMode (LEDPin ، الإخراج) ؛ if (! nrf24.init ()) Serial.println ("فشل init")؛ // الافتراضيات بعد التهيئة هي 2.402 جيجاهرتز (القناة 2) ، 2 ميجابت في الثانية ، 0 ديسيبل إذا (! nrf24.setChannel (1)) Serial.println ("فشل setChannel") ؛ إذا (! nrf24.setRF (RH_NRF24:: DataRate2Mbps، RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF فشل")؛ }

حلقة فارغة()

{// انتظر رسالة uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN] ؛ // قم بتخزين الرسالة المستلمة كمصفوفة تسمى "buf " uint8_t len = sizeof (buf) ؛ // تخزين حجم buf كـ "len" while (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf، & len)) // يتلقى الرسالة لمدة 200 مللي ثانية أو حتى يتم استلام الرسالة بأكملها {value = buf [0] ؛ // يعين القيمة للفهرس الأول من buf ، وهو int من analogWrite المقاوم للضوء (LEDPin ، الخريطة (القيمة ، 0 ، 1023 ، 0 ، 255)) ؛ // يعين دبوس PWM لإخراج قيمة مقاسة بين 0-255 لسطوع LED Serial.println (سلسلة (قيمة)) ؛ } analogWrite (LEDPin، 0) ؛ }

الخطوة 4: تم

استمتع باللعب بمستويات إضاءة مختلفة ومشاهدة مصابيح LED تتطابق معها! يمكن أن يكون المقاوم الضوئي صعبًا في بعض الأحيان ، ويعمل بشكل أفضل في غرفة مظلمة مع مصدر ضوء محلي (ولكن يمكن أن يعمل بالخارج مع الشمس أيضًا).

موصى به: