كيفية قياس مستوى الضوء باستخدام الاردوينو و LDR

  • LDR عبارة عن مقاوم يتغير قيمته اعتمادًا على الضوء المتصور.
  • يعتمد مبدأ تشغيل LDR على موصلية المواد شبه الموصلة.
  • يعتمد الإعداد الأساسي في Arduino على مقسم الجهد بين LDR ومقاوم ثابت.
  • تعد LDRs مفيدة لقياس اتجاهات الضوء، ولكنها ليست دقيقة لقياس الاستضاءة باللوكس.

مستشعر الضوء LDR

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

تطبيقات مستشعر الضوء مع Arduino كثيرة: من أنظمة الإضاءة الأوتوماتيكية إلى الروبوتات التي توجه نفسها بناءً على الضوء. وأفضل ما في الأمر أنه مكون ميسور التكلفة وسهل الاستخدام. سنقدم لك هنا جميع المعلومات الضرورية حتى تتمكن من إنشاء نظام قياس الضوء الخاص بك باستخدام Arduino والاستفادة من إمكاناته الكاملة.

ما هو LDR وكيف يعمل؟

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

ويستند عملها على مبدأ الموصلية للمواد شبه الموصلة. عند استقبال الضوء، تقوم الفوتونات بتنشيط الإلكترونات الموجودة في المادة، مما يسهل تدفق التيار وبالتالي تقليل المقاومة. يعد هذا النوع من أجهزة الاستشعار مفيدًا جدًا للتطبيقات التي تتطلب قياسًا نسبيًا للضوء في البيئة.

مميزات ال دي ار

يحظى هذا المكون بشعبية واسعة نظرًا لانخفاض تكلفته وسهولة استخدامه. تتراوح قيم المقاومة النموذجية من 1 ميجا أوم في الظلام الدامس إلى 50-100 أوم في الضوء الساطع . مع ذلك، تجدر الإشارة إلى أن هذه المستشعرات ليست دقيقة تمامًا عند قياس شدة الإضاءة (الضوء بوحدة اللوكس) بدقة، إذ تتأثر بعوامل مثل درجة الحرارة.

يُعدّ تغير المقاومة بطيئًا نسبيًا ، إذ يستغرق ما بين 20 و100 مللي ثانية حسب الطراز. وهذا يعني أنه غير مناسب لرصد التغيرات السريعة في الإضاءة، كتلك الناتجة عن المصابيح التي تعمل بالتيار المتردد، ولكنه يوفر ثباتًا ممتازًا في ظروف الإضاءة الأكثر ثباتًا.

على الرغم من أن المقاومات الضوئية (LDRs) أكثر ملاءمة لقياس اتجاهات الضوء من توفير بيانات دقيقة، إلا أن تكلفتها المنخفضة وسهولة دمجها مع لوحات Arduino تجعلها مستشعرًا مثاليًا لمشاريع DIY.

مخطط الدائرة والاتصال

لكي يتمكن الاردوينو من قياس تغير المقاومة في LDR، من الضروري تركيب المستشعر على ما يعرف بـ مقسم الفولت. هذه دائرة بسيطة جدًا تتكون من LDR ومقاومة ثابتة متصلة على التوالي. يتم وضع LDR بين جهد الدخل (على سبيل المثال 5V على اللوحة Arduino Uno) ودبوس الإدخال التناظري، ويتم توصيل المقاوم الثابت بين الدبوس والأرضي (GND).

عادة ما تكون قيمة المقاومة الثابتة 10 كيلو أوم، على الرغم من أنها يمكن أن تختلف حسب الحساسية التي تريد تحقيقها في قياسك.

أمثلة على التجميع والتعليمات البرمجية

لبناء نظام أساسي باستخدام Arduino وLDR، أول شيء يجب عليك فعله هو توصيل العناصر التالية:

  • أحد طرفي LDR إلى مصدر 5V.
  • الطرف الآخر من LDR إلى الدخل التناظري (A0، على سبيل المثال) وفي نفس الوقت إلى المقاوم الثابت الذي سيتم توصيله بالأرض.

مع هذا الإعداد يمكنك البدء في قراءة القيم التي يوفرها LDR من خلال الإدخال التناظري. الكود أدناه هو مثال أساسي لقراءة هذه القيم:

const int pinLDR = A0;
void setup() {
Serial.begin(9600); // Iniciar monitor serie}
void loop() {
int valorLDR = analogRead(pinLDR); // Leer valor de LDR
Serial.println(valorLDR); // Imprimir valor en monitor
delay(500);
}

سيطبع هذا الرمز قيمًا بين 0 (أي عند عدم وجود ضوء) و1023 (الحد الأقصى للضوء المستلم). تتناسب هذه القيم مع الضوء الذي يراه LDR.

سلوك المقاومة كدالة للضوء

كما ذكرنا سابقاً، تقل مقاومة المقاومة الضوئية (LDR) كلما زاد تعرضها للضوء. وللحصول على قياس دقيق لكمية الضوء ، يجب معرفة قيم مقاومة المقاومة الضوئية في ظروف إضاءة مختلفة.

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

من الخصائص المميزة للمقاومات الضوئية (LDRs) أن حساسيتها تكون في أعلى مستوياتها في الجزء الأخضر من طيف الضوء ، عند أطوال موجية تقارب 540 نانومتر. وهذا يعني أن هذه المقاومات تستجيب بشكل أفضل للضوء الأخضر مقارنةً بأجزاء أخرى من الطيف المرئي.

تطبيقات عملية

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

يمكنك، على سبيل المثال، إنشاء نظام حيث عندما تنخفض مستويات الإضاءة، يضيء مؤشر LED للتعويض عن نقص الضوء. فيما يلي مثال بسيط للكود:

int LDRPin = A0; // Pin para la LDR
int LEDPin = 13; // Pin para el LED
int threshold = 500; // Umbral para encender el LED
void setup() {
pinMode(LEDPin, OUTPUT);
pinMode(LDRPin, INPUT);}
void loop() {
int valorLuz = analogRead(LDRPin);
if (valorLuz < threshold) {
digitalWrite(LEDPin, HIGH); // Enciende el LED
} else {
digitalWrite(LEDPin, LOW); // Apaga el LED
}
delay(100);}

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

القيود والاحتياطات

على الرغم من أن استخدام LDR مناسب جدًا في العديد من المشاريع، إلا أنه من المهم مراعاة بعض قيوده:

  • إنها ليست دقيقة جدًا إذا كنت تريد قياس شدة الضوء بدقة باللوكس.
  • قد يختلف سلوكها حسب درجة الحرارة.
  • إنها تعمل بشكل أفضل لاكتشاف التغيرات الأكبر في الضوء وليس التغيرات السريعة.

أضف كمصدر مفضل في جوجل