الدرس الرابع :التعرف على مستشعر الاضاءة (photocell)

وضاح العونيمنذ 7 سنوات

السلام عليكم ورحمة الله وبركاته

الدرس الرابع :التعرف على مستشعر الاضاءة (photocell)

5779492820400_.jpg

أهداف هذا الدرس :

  1. أن يعرف القارى ما هو المستشعر .
  2. أن يدرك القارى الفرق بين analogRead  و digitalRead .
  3. أن يعرف القارى ما هي شاشة المراقب التسلسلي .

 

نبذة بسيطة :

في هذا الدرس سوف نتعامل مع مستشعر الاضاءة ,

وسوف يكون المشروع عبارة عن قراءة درجة الاضاءة و إظهارها على الكمبيوتر عبر شاشة المراقب التسلسلي .

 

ما هو المستشعر :

هي أجهزة قادرة على قراءة المتغيرات في المنطقة المحيطة بها  كقراءة درجة الحرارة أو الرطوبة أو استشعار الاجسام القربية منها ..... الخ .

 

متطلبات  المشروع :

  1. أردوينو أونو
  2. مقاومة 330 أوم (Resistor 330 ohm)
  3. لوحة تجارب (Bread Board)
  4. اسلاك توصيل (jumper wire)
  5. حساس الاضاءة (photocell)

 

الدائرة الكهربائية :

Capture.PNG

 

آليه عمل حساس الاضاءة :

حساس الاضاءة : هو مستشعر لقراءة حساسية الضوء في البيئة المحيطة به .

CDS.png

الكود البرمجي :


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);
}
 

بعد الانتهاء من رفع الكود على الاردوينو

قم بالضغط على Capture11.PNG

وذلك لرؤية نتائج القراءة من المستشعر عبر شاشة المراقب التسلسلي .

في الصورة التالية شاشة المراقب التسلسلي وهي تظهر القيم :

577948787f334_.PNG

 

عندما تكون قيمة القراءة صفر يعني ذلك إنه ليس هناك ضوء .

 

شرح الكود البرمجي :

سوف نقوم الان بشرح الاوامر الجديدة فقط ويمكن الرجوع للدروس السابقة لفهم الكود بشكل جيد .


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 تضيء اللمبة الخضراء أما إذا كانت أقل تضيء اللمبة الحمراء .

 

وفي الختام 

وسوف أقوم بحل التحدي  في الدرس القادم

وتذكر الاستمتاع بحل المشكلة فن لا يتقنه إلا المبرمجون

وإلى الدرس القادم أستودعكم الله .

كلمات دليلية:
1
إعجاب
9920
مشاهدات
0
مشاركة
1
متابع
متميز
محتوى رهيب

التعليقات (3)

Kabtod:

درس رائع هل يمكن استخدم مقاومة 220

لان المقاومات العندي في الكيت 220 اوم وواحد كيلو وعشرة كيلو

Kabtod:

درس رائع هل يمكن استخدم مقاومة 220

لان المقاومات العندي في الكيت 220 اوم وواحد كيلو وعشرة كيلو

IMG_20170310_081133.jpg

IMG_20170310_080750.jpg

سليمان:

تم تنفيذ التحدي بنجاح بعد محاولات لاتحصي وبسعاده اقول هذا هو الكود والصورة

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);
}

في النهاية اشكر معاليك على مجهودك شكرا لك

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !