بسم الله الرحمن الرحيم والصلاة والسلام على سيد المرسلين وعلى آله وصحبه أجمعين
إخوتي الكرام سأقدم في هذا الموضوع شرحاً عن مشروع بسيط كنت قد نفذته بشكل مصغر وهو مشروع للتحكم في إضاءة غرفة أوتوماتيكياً فعند تواجد شخص واحد في الغرفة على الأقل تعمل إضاءة الغرفة وفي حال عدم تواجد أي شخص على الإطلاق تنطفئ الإنارة بشكل آلي حيث يمكن الاستفادة من هذه الدارة للحد من هدر الطاقة الكهربائية .مكونات الدارة :
1-المايكروكونترولر PIC16F84A وما يتبعها (الهزاز-مقاونة الشد -.....)
2-مقاومتين ضوئيتين
3-مقاومات 1 كيلو/عدد4
4-مقاومتين متغيرتين 100K
5-ترانزستورات BC337عدد3
6-مقاومات 330 اوم عدد 3
7- ليدات عدد4
إليكم صورة لمخطط الدارة النظري:
شرح ألية العمل :
إن الدارة هي عبارة عن ليدين مسلطين على مقاومتين ضوئيتين توضعان عند مدخل الغرفة بشكل متجاور وعلى مسافة لاتتجاوز 5سم من بعضهما البعض فعندما يدخل شخص إلى الغرفة فإنه يقوم بقطع شعاع أحد اليدات المتجه نحو المقاومة الضوئية ثم يقوم بقطع الشعاع الأخر مما يؤدي إلى زياة عداد الأشخاص داخل الPIC والعكس بالعكس في النهاية إذا كانت قيمة العداد أكبر من 0 ستعمل الإضاءة وإذا كانت مساوية للصفر سيطفأ النور تلقائياً والكود سيوضح آلية العمل أكثر :
كود:
void main() {
int y=0;
TRISA=0XFF;
TRISB=0;
portb=0;
delay_ms(500);
while(1){
if(PORTA.f2==1){
while(porta.f3==0){}
y++;
while(porta.f3==1){}
}
if(PORTA.f3==1){
while(porta.f2==0){}
y--;
while(porta.f2==1){}
}
if(y==255){ y=0;}
if(y>0){
portb=0xff;}
else if(y==0){
portb=0; }
}}
شرح الكود:
void main() {
int y=0;
تعريف متحول لتخزين عدد الأشخاص وإسناده بالقيمة0
TRISA=0XFF;
ضبط البورت Aكدخل
TRISB=0;
ضبط البورتBكخرج
portb=0;
جعل البورت Bمساوي للصفر أي أن الإضاءة مطفأة
delay_ms(500);
انتظار نصف ثانية حتى يستقر الجهد الدخل
while(1){
حلقة لاستمرار فحص الحساسات
if(PORTA.f2==1){
اختبار للحساس خارج الغرفة إذا تم قطع الشعاع
while(porta.f3==0){}
بعد أن يتم قطع الشعاع خارج الغرفة انتظر الحساس الثاني ليتم قطعه
y++;
إذا تم قطع الشعاع الثاني أيضا قم بزيادة عدد الأشخاص المتواجدين في الغرفة
while(porta.f3==1){}
}
طالما أن الشعاع داخل الغرفة مقطوع انتظر حتى يمر الشخص إلى داخل الغرفة
if(PORTA.f3==1){
إذا قطع الشعاع داخل الغرفة
while(porta.f2==0){
انتظر طالما أن الشعاع خارج الغرفة لم يقطع
y--;
بعد أن يتم قطع الشعاع خارج الغرفة قم بزيادة العداد بواحد
while(porta.f2==0){}
وانتظر حتى يمر الشخص إلى خارج الغرفة تماماُ
}
if(y==255){ y=0;}
هذه التعليمة تستخدم عند تركيب الدارة لأول مرة أو عند انقطاع الكهرباء حيث سيخرج الشخص من الغرفة وقيمة العداد مساوية للصفر عندها ستصبح قيمة المتحول 255 عندها سنعيده للقيمة صفر
if(y>0){
اذا كان عدد الأشخاص أكبر تماماً من صفر
portb=0xff;}
قم بإضاءة الغرفة
else if(y==0){
وإلا إذا كان عدد الأشخاص مساوي للصفر أي أن الغرفة فارغة
portb=0; }}}
قم بإطفاء الإنارة
وهذه الصور للمجسم الذي نفذته:
إن أهم ميزات هذا المشروع المتواضع :
1-انخفاض التكاليف حيث أن التكلفة الأكبر التي واجهتني كطالب جامعي هي ارتفاع سعر الحساسات فهذه الدارة توفر أكثر من 99% من سعر الحساس الذي يؤدي نفس الوظيفة إلى حد ما
2-موثوقية جيدة جداً وخصوصاً مع اختلاف شدة الإضاءة من وقت لآخر
ملاحظات:
1-المقاومة المتغيرة ((100Kتستخدم في ضبط حساسية الحساس الضوئي لانقطاع الإضاءة
2-يجب وضع الليدات والمقاومات الضوئية بالتبادل أي أن الليد يجاوره مقاومة ضوئية ويقابلهما ليد ومقاومة ضوئية على التعاكس منعاً لتداخل ضوئي الليدين على المقاومة الضوئية
3- يجب عزل المقاومات الضوئية عن الإضاءة المحيطة بها لزيادة الموثوقية .
4- في الدارة الموضحة استخدمت ليد على البورت Bلتشغيل الإنارة يمكن الإستعاضة عنه بترانزستورموصول مع ريليه(RELAY)لتشغيل أحمال كبيرة
أعتذر عن الإطالة وأسعد بملاحظاتكم وتوجيهكم
لاتنسوني من صالح دعائكم
وجزا الله من علمني خيراً
أخوكم وتلميذكم :عبدالله