كيفيّة استخدام المقاومات الضّوئيّة (حسّاسات الضّوء\شدّةالإنارة) مع الرّاسبيري باي:

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

القطع المطلوبة:

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

حسّاس الضّوء\شدّةالإنارة.

                                                      الشّكل (2):حسّاس الضّوء\شدّةالإنارة.

تمتلك المقاومة الضّوئيّة الملحومة إلى دارة مطبوعة مقاومة متغيّرة تعمل كمقسّم جهد تسمح بضبط قيمة العتبة.

القطع المطلوبة لتنفيذ هذا المشروع:

  • لوح راسبيري باي 3 أو ما يماثله.
  •  مقاومة ضوئيّة.
  •  وحدة حسّاس ضوئيّ بديلة.
  •  دارة MCP3008 للتّحويل من إشارة تماثليّة إلى رقميّة.
  •  مقاومة 10kΩ.
  • لوح اختبار.
  • أسلاك توصيل.

في حال أردنا أن نعرف أكثر عن مبدأ عمل المقاومات الضّوئيّة يمكن أن نقرأ أكثر عن هذا الموضوع هنا، بشكل عام يمكن  القول أنّ المقاومة الضّوئيّة هي مقاومة تتغيّر قيمتها حسب شدّة الإضاءة المحيطة.

توصيل حسّاس الإضاءة إلى لوح الرّاسبيري باي:

قبل أن نقوم بتوصيل المقاومة وأخذ القراءات منها، سنحتاج إلى توصيل دارة تحويل من إشارة تماثليّة إلى إشارة رقميّة، وهنا سنستخدم الدّارة MCP3008 الموضّحة في الشّكل 3.

رة تحويل من إشارة تماثليّة إلى إشارةرقميّة.

                                              الشّكل (3):دارة تحويل من إشارة تماثليّة إلى إشارةرقميّة.

يوجد على الجهة اليمنى من الدّارة ثمان أرجل لقراءة الدّخل التّماثلي.

من المهمّ أن نقوم بتوصيل حسّاس شدّة الإضاءة مع مقاومة 10kΩ إلى الأرضيّ، وإلّا فإنّ قيمة القراءة لن تكون صحيحة.
في حال لم يمرّ التّيار عبر المقاومة فهذا يعني أنّ القراءة صفر، وفي حال تطبيق الجهد عليها سيمرّ تيّار عبر مقاومة رفع الجهد 10kΩ، ولكنّه سيكون ضئيلاً بسبب كبر قيمتها، وكما هو الحال مع باقي أنواع المقاومات فليس من المهمّ على أيّ طرف من أطراف المقاومة الضّوئيّة نطبّق الجهد الموجب.
يوضّح الشّكل 4 مخطّط الدّارة.

                                                                  الشّكل (4): مخطّط الدّارة المطلوبة.

إذا كانت قيم القراءات مرتفعة حتّى في ظروف الإنارة المنخفضة يمكننا إضافة مقاومة بين القطب الموجب وطرف المقاومة الضّوئيّة.
أمّا إذا كنّا نستخدم مقاومة ضوئيّة ملحومة سنحتاج إلى جهد 3.3V فقط (على القطب 1) من لوح الرّاسبيري باي للتّوصيل مع القطب VCC ، وتوصيل الأرضيّ GND إلى قطب أرضيّ (القطب 6)، يتمّ توصيل القطب A0 مباشرة إلى دارة  التّحويل وبالتّالي لا حاجة لاستخدام مقاومة رفع الجهد 10kΩ.
إنّ الميزة في استخدام المقاومة الملحومة هي القدرة على تعديل المقاومة الموصولة على التّسلسل مع المقاومة الضّوئيّة عن طريق تعديل المقاومة المتغيّرة مباشرة حسب شدّة الإضاءة العظمى.

قراءة شدّة الإضاءة على الرّاسبيري باي:

سنستخدم الكلاس المبيّن في الكود البرمجيّ التّالي لقراءة القيم التّمتثليّة باستخدام الدّارة MCP3008 .

الكود البرمجي 1: التحميل من هنا

في حال كان الكلاس موجود سابقاً يمكن أن نشغّل موجّه أوامر البايثون Python console بكتابة الأمر:
Sudo python
ثمّ ندخل الكود البرمجيّ التّالي:

from MCP3008 import MCP3008
adc() = MCP3008
print( adc.read( channel = 0 ) ) # if necessary perform several times

عند تجريب الدّارة أعطت قيمة 600 تقريباً عند الظّلام التّام (الأصبع موضوع على المقاومة الضّوئيّة لحجب الضّوء)، وهو ما يعني وصول جهد يقارب 1.95V إلى دارة التّحويل من الجهد الأصلي 3.3V، وفي حال تواجد الإضاءة أعطت الدّارةالقيمة 1023 كقراءة دائمة.
تتفاوت قيم المقاومة العظمى بشكل بسيط اعتماداً على المقاومة الضّوئيّة، فإذا كانت الإنارة شديدة (كضوء النّهار) يفضّل أن نقوم بتوصيل مقاومة أخرى على التّسلسل أو مقاومة رفع جهد أخرى (10kΩ).


المصدر: هنا
ترجمة: لؤي ديب ، مراجعة: محمد مرتكوش ، تدقيق لغوي: سلام أحمد ، تصميم: علي العلي ، تحرير: قحطان غانم