الدرس الثالث :التعرف على المفتاح (Push Button)

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

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

نبارك لكم دخول العشر الأواخر وجعلنا الله وإياكم ممن ربح فيها وأدرك ليلة القدر .

 

20160627_204725.jpg

 

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

أن يدرك القارى الفرق بين المخرجات و المدخلات (Input and Output ) .

 

نبذة بسيطة :

في هذا الدرس سوف نتعامل مع المفتاح

عندما يتم الضغط عليه ولأول مرة

 تضيء اللمبة الحمراء

وعند الضغط عليه مرة أخرى

يضئ اللمبة الصفراء ويطفى الحمراء

والضغط للمرة الثالثة

يطفى الصفراء ويضئ اللمبة الحمراء

وهكذأ .  

 

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

أردوينو أونو

مفتاح ضغاط ((Push Button

2 x لمبة صغيرة ( led ) 

 x 3مقاومة 220 أوم أو 330 أوم (Resistor 220 ohm or 330 ohm)

لوحة تجارب (Bread Board)

اسلاك توصيل (jumper wire)

 

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

57717097ee0b5_.PNG

 

آليه عمل المفتاح (Push Button  ) :

المفتاح هو مشابه لمفتاح تشغيل المكيف في بيوتنا ولكن مفاتيح البيت تبقى التيار متصل بعد الضغط

إلى إن تضغط الزر مرة أخرى ولكن هنا فقط يبقى التيار متصل عند الضعط عليه .

 

57717098a6b6c_.PNG

 

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


int ledR = 12;
int ledY = 13;
int Button = 5;
int counter=1;
void setup(){
pinMode(ledR,OUTPUT);
pinMode(ledY,OUTPUT);
pinMode(Button,INPUT);
Serial.begin(9600);
}

void loop(){
if(digitalRead(Button) == HIGH){
if(counter==1)
{digitalWrite(ledY,LOW);
digitalWrite(ledR,HIGH);
counter=counter+1;
}
else if(counter==2)
{digitalWrite(ledR,LOW);
digitalWrite(ledY,HIGH);
counter=counter-1;}
delay(500);
}
}

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

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


pinMode(Button,INPUT);

 

تم تعريف Button من نوع مدخل أي الاردينو يحتاج لإستقبال البيانات من المتغير لمعالجتها .

 


if(digitalRead(Button) == HIGH)

 

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

HIGH وتعني إن المفتاح يتم الضغط عليه الان .

LOW تعني إن المفتاح في حالته العادية أي غير مضغوط.

ولكن نرى هنا في الشرط إذ كان قيمته HIGH  أي في حالة الضغط عليه

حيث يتحقق الشرط . 

ويقوم بتشغيل اللمبة وذلك بالاعتماد على قيمة العداد (counter) .

 

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

 

Untitled.png

 

وإلى هنا نصل إلى ختام هذه الدرس ,

 و نراكم بالدرس القادم إن شاء الله

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

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

أفنان:

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

turky:

السلام عليكم

انا سجلت في الموقع عشان اشكرك على الطرح الرائع

واستمرر الله يعافيك

وضاح العوني:
في 6/29/2016 at 21:09, أفنان said:

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

أبشري بالدرس القادم راح أشرح طريقة توصيل الدائرة الكهربائية 

في 7/5/2016 at 04:41, turky said:

السلام عليكم

انا سجلت في الموقع عشان اشكرك على الطرح الرائع

واستمرر الله يعافيك

عليكم السلام

الله يجزاك خير 

سليمان:

واجهت مشاكل في البداية :

انا معي لوح Arduino MEGA 2560 لذلك اختلفت المنافذ

كذلك حتى بعد مطابقت المنافذ مع منافذ اردوينو اونو مانجحت المطابقة !

لذلك غيرت فقط ارقام pin في الكود بالشكل التالي

قبل


int ledR = 12;
int ledY = 13;
int Button = 5;
int counter=1;

بعد

int ledB = 5;
int lerR = 6;
int Button = 10;
int counter=1;

بعد كذا ولله الحمد كل شي اشتغل , أشكر الأستاذ على شرحه

 

صور التطبيق ::

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

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