"كن شرارة ساطعة ، أطفئ الأنوار حتى الظلام!" في بعض الأحيان ننسى إطفاء الأنوار وإهدار الكهرباء ويجب أن تكون قد شاهدت أيضًا إضاءة الشارع مضاءة في النهار. لقد قمنا بالفعل ببناء بعض الدوائر على كاشف الظلام حيث تنطفئ الأضواء تلقائيًا إذا كانت ساطعة بالخارج ويتم تشغيلها إذا كان الظلام بالخارج. لكن هذه المرة ، في هذه الدائرة ، لا نقوم فقط بتشغيل وإطفاء الأنوار بناءً على ظروف الإضاءة ولكن أيضًا نغير شدة الضوء وفقًا لظروف الإضاءة الخارجية. استخدمنا هنا مفهوم LDR و PWM مع Arduino لتقليل أو زيادة سطوع 1 واط Power LED تلقائيًا.
بشكل أساسي ، يشير PWM إلى Pulse Width Modulation ، وستكون إشارة الخرج عبر دبوس PWM إشارة تمثيلية ويتم الحصول عليها كإشارة رقمية من Arduino. يستخدم دورة عمل الموجة الرقمية لتوليد القيمة التناظرية المتسلسلة للإشارة. ويتم استخدام هذه الإشارة أيضًا للتحكم في سطوع Power LED.
المواد المطلوبة
- اردوينو UNO
- LDR
- المقاوم (510 ، 100 كيلو أوم)
- مكثف (0.1 فائق التوهج)
- الترانزستور 2N2222
- 1 وات طاقة LED
- توصيل الأسلاك
- اللوح
مخطط الرسم البياني
الكود والشرح
يتم تقديم رمز Arduino الكامل لمخفت الإضاءة التلقائي LED في النهاية.
في الكود أدناه ، نحدد دبوس PWM والمتغيرات التي سيتم استخدامها في الكود.
int pwmPin = 2 ؛ // يعين الدبوس 12 لمتغير pwm int LDR = A0 ؛ // يعين المدخلات التناظرية A0 إلى وعاء متغير int c1 = 0 ؛ // يعلن المتغير c1 int c2 = 0 ؛ // يعلن المتغير c2
الآن ، في الحلقة ، نقرأ القيمة أولاً باستخدام الأمر "analogRead (LDR)" ثم نحفظ الإدخال التناظري في متغير باسم "value" . من خلال إجراء بعض الحسابات الرياضية ، نقوم بتوليد إشارة PWM. هنا ، نتحكم في شدة الضوء باستخدام PWM فقط إذا كانت القيمة التناظرية أقل من 500 ، وإذا كانت أكثر من 500 ، فإننا نطفئ الأضواء تمامًا.
قيمة int = analogRead (LDR) ؛ Serial.println (قيمة) ؛ c1 = القيمة ؛ c2 = 500-c1 ؛ // يطرح c2 من 1000 ans يحفظ النتيجة في c1 if (القيمة <500) { digitalWrite (pwmPin، HIGH) ؛ تأخير ميكروثانية (c2) ؛ digitalWrite (pwmPin ، منخفض) ؛ تأخير ميكروثانية (c1) ؛ } if (القيمة> 500) { digitalWrite (2، LOW)؛ } }
يمكنك معرفة المزيد عن PWM في Arduino من هنا.
كيف يتحكم في شدة الضوء تلقائيًا:
وفقًا لمخطط الدائرة ، فقد صنعنا دائرة مقسم جهد باستخدام المقاوم LDR و 100 k. يتم تغذية خرج مقسم الجهد إلى الدبوس التناظري في Arduino. يستشعر الدبوس التناظري الجهد ويعطي بعض القيمة التناظرية لـ Arduino. تتغير القيمة التناظرية وفقًا لمقاومة LDR. لذلك ، إذا كان الظلام فوق LDR ، تزداد مقاومته وبالتالي تنخفض قيمة الجهد (القيمة التناظرية). ومن ثم ، فإن القيمة التناظرية تختلف في إخراج PWM أو دورة العمل ، ودورة العمل تتناسب بشكل أكبر مع شدة ضوء LED للطاقة. لذا فإن الضوء الموجود فوق LDR سوف يتحكم تلقائيًا في شدة Power LED. يوجد أدناه مخطط التدفق لكيفية عمل ذلك ، تشير علامة السهم لأعلى إلى "زيادة" وتشير علامة السهم لأسفل إلى "تناقص".
شدة الضوء (في LDR) - المقاومة - الجهد عند الدبوس التناظري ↓ - دورة التشغيل (PWM) ↑ - سطوع مؤشر الطاقة ↑
إذا كانت الإضاءة الخارجية ساطعة بالكامل (عندما تزيد القيمة التناظرية عن 500) ، ينطفئ مؤشر LED للطاقة.
هذه هي الطريقة التي يمكنك من خلالها التحكم في شدة الضوء تلقائيًا باستخدام LDR.
تحقق كذلك من جميع الدوائر ذات الصلة بـ LDR هنا.