الدرس الرابع :التعرف على مستشعر الاضاءة (photocell)
السلام عليكم ورحمة الله وبركاته
الدرس الرابع :التعرف على مستشعر الاضاءة (photocell)
أهداف هذا الدرس :
- أن يعرف القارى ما هو المستشعر .
- أن يدرك القارى الفرق بين analogRead و digitalRead .
- أن يعرف القارى ما هي شاشة المراقب التسلسلي .
نبذة بسيطة :
في هذا الدرس سوف نتعامل مع مستشعر الاضاءة ,
وسوف يكون المشروع عبارة عن قراءة درجة الاضاءة و إظهارها على الكمبيوتر عبر شاشة المراقب التسلسلي .
ما هو المستشعر :
هي أجهزة قادرة على قراءة المتغيرات في المنطقة المحيطة بها كقراءة درجة الحرارة أو الرطوبة أو استشعار الاجسام القربية منها ..... الخ .
متطلبات المشروع :
- أردوينو أونو
- مقاومة 330 أوم (Resistor 330 ohm)
- لوحة تجارب (Bread Board)
- اسلاك توصيل (jumper wire)
- حساس الاضاءة (photocell)
الدائرة الكهربائية :
آليه عمل حساس الاضاءة :
حساس الاضاءة : هو مستشعر لقراءة حساسية الضوء في البيئة المحيطة به .
الكود البرمجي :
int Sensor_Light = A0;
int value = 0;
void setup()
{
pinMode(Sensor_Light,INPUT);
Serial.begin(9600);
}
void loop()
{
value = analogRead(Sensor_Light);
Serial.print("ISO : ");
Serial.println(value);
delay(500);
}
بعد الانتهاء من رفع الكود على الاردوينو
قم بالضغط على
وذلك لرؤية نتائج القراءة من المستشعر عبر شاشة المراقب التسلسلي .
في الصورة التالية شاشة المراقب التسلسلي وهي تظهر القيم :
عندما تكون قيمة القراءة صفر يعني ذلك إنه ليس هناك ضوء .
شرح الكود البرمجي :
سوف نقوم الان بشرح الاوامر الجديدة فقط ويمكن الرجوع للدروس السابقة لفهم الكود بشكل جيد .
int Sensor_Light = A0;
تم تعريف متغير يشير إلى منفذ A0 ويعتبر المنفذ أحدى المنافذ التماثلية (analog).
Serial.begin(9600);
ملاحظة : Serial لعمل اتصال بين الاردوينو و الكمبيوتر أو الاردوينو و جهاز أخر , أما إذ كان بين الاردوينو والكمبيوتر فيتم الاتصال عبر شاشة المراقب التسلسلي ,حيث تستطيع إرسال أو استقبال قيم من و إلى الاردوينو .
وفي هذه الامر يشير إلى بدء عملية الاتصال على تردد 9600 باود .
value = analogRead(Sensor_Light);
في هذه السطر نرى المتغير value لتخزين قيمة القراءة عبر دالة analogRead() والتي تحوي قيمة تتراوح بين 0 و 255 .
Serial.print("ISO : ");
لطباعة نص “ ISO :” على شاشة المراقب التسلسلي .
Serial.println(value);
وهنا نرى أيضا طباعة قيمة المتغير value والاختلاف بين هذا السطر والسطر السابق هو إن هذا السطر بعد الطباعة ينتقل إلى سطر جديد.
الفرق بين دالة digitalRead و analogRead :
دالة digital : كما ذكرنا في الدروس السابقة فهي تستقبل قيمتين HIGH أو LOW .
أما دالة analogRead : فهي تستقبل قيمة تتراوح من 0 وحتى 255 .
تحدي بسيط :
أضف لهذا المشروع لمبة خضراء وأخرى حمراء حيث إذ كانت قيمة القراءة أعلى من 20 تضيء اللمبة الخضراء أما إذا كانت أقل تضيء اللمبة الحمراء .
وفي الختام
وسوف أقوم بحل التحدي في الدرس القادم
وتذكر الاستمتاع بحل المشكلة فن لا يتقنه إلا المبرمجون
وإلى الدرس القادم أستودعكم الله .
التعليقات (3)
درس رائع هل يمكن استخدم مقاومة 220
لان المقاومات العندي في الكيت 220 اوم وواحد كيلو وعشرة كيلو
درس رائع هل يمكن استخدم مقاومة 220
لان المقاومات العندي في الكيت 220 اوم وواحد كيلو وعشرة كيلو
تم تنفيذ التحدي بنجاح بعد محاولات لاتحصي وبسعاده اقول هذا هو الكود والصورة
int Sensor_Light = A0;
int value = 0;
int led = 8;
void setup()
{
pinMode(led, OUTPUT);
pinMode(Sensor_Light,INPUT);
Serial.begin(9600);
}
void loop()
{
value = analogRead(Sensor_Light);
Serial.print(" قيمة الإضاءة : ");
Serial.println(value);
if(value<=40)
{
digitalWrite(led, HIGH);
}
else
{
digitalWrite(led, LOW);
}
delay(500);
}
في النهاية اشكر معاليك على مجهودك شكرا لك
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !