في هذا المشروع سنتعلم كيف نستخدم المقاومة الضوئية (LDR (Light Dependent Resistor مع الاردوينو لعمل صندوق امان يقوم بإصدار صوت انذار عند فتحه.
المكونات المطلوبة
Buzzer
هو عبارة عن طنان كهربائي يقوم بتحويل الطاقة الكهربائية إلى صوت مسموع. سنقوم بإستخدامه في هذا المشروع لاصدار صوت انذار عند فتح الصندوق .
المقاومة الضوئية LDR :
هي عبارة عن مقاومة تتأثر وتتغير قيمتها بتغير شدة الاضاءة المعرضة لها. فعند الظلام تكون قيمتها كبيرة جدا تصل الى 2 ميجا اوم، وفي الضوء الساطع تكون قيمتها صغيرة تصل إلى 200 اوم.
سنقوم بإستخدامها في المشروع لمعرفة اذا كان الصندوق مقفل ام مفتوح. فإذا كان مفتوح نقوم بتشغيل الانذار ويتوقف عندما يتم اغلاق الصندوق.
توصيل الدارة
قم بتوصيل الدارة كما هو موضح بالصورة التالية :
يقوم البرنامج بمراقبة شدة الاضاءة في الصندوق عن طريق المقاومة الضوئية. طالما كان الصندوق مقفل تكون شدة الاضاءة ضعيفة جدا فلا يعمل الانذار و بمجرد فتح الصندوق خزانة يعمل الانذار .
الكود البرمجي
#define LED 13 #define BUZZER 3 void setup() { pinMode(LED, OUTPUT); pinMode(BUZZER, OUTPUT); } void loop() { int sensorValue = analogRead(A0); if (sensorValue > 700) { digitalWrite(LED, HIGH); digitalWrite(BUZZER, HIGH); } else{ digitalWrite(LED, LOW); digitalWrite(BUZZER, LOW); } }
شرح الكود :
في البداية، نقوم بتسمية منافذ الأردوينو المستخدمة في المشروع، من أجل تسهيل عملية التعامل معها.
#define LED 13 #define BUZZER 3
وفي الدالة ()setup نقوم بضبط الاعدادات اللازمة فى المشروع مثل ضبط الليد والـ Buzzer كمخرج
void setup() { pinMode(LED, OUTPUT); pinMode(BUZZER, OUTPUT); }
في دالة ()loop نقوم بقياس قراءة المقاومة الضوئية و نختبر القيمة المقاسه، فإذا تعدت قيمة معينة دل ذلك على أن الصندوق مفتوح ويتم تشغيل الانذار.
int sensorValue = analogRead(A0); if (sensorValue > 700) { digitalWrite(LED, HIGH); digitalWrite(BUZZER, HIGH); }
غير ذلك يتم ايقاف الإنذار .
else{ digitalWrite(LED, LOW); digitalWrite(BUZZER, LOW); }