اصلاح التمرين الثاني
حول
الجملة التالية الى كود برمجي :
" إذا كان x=1 فإن
Y=0 وإلا فإن Y=1 " |
if ((digitalRead (x)) = = 1){
digitalWrite (Y,0);
}
else{
digitalWrite (Y,1);
}
اصلاح التمرين الثالث
في أحد المؤسسات الصناعية تم تجهيز باب دخول الموظفين بنظام حماية و مراقبة يعتمد على بطاقة أردوينو.
يتكون هذا النظام من زرين يكون الأول (a) في غرفة الحارس و الثاني (b) عند مدير المؤسسة و يتم التحكم في الباب بمحركين M1 للفتح و M2 للإغلاق.
طريقة الاشتغال : عند الضغط على احد الزرين يضيء مصباح (V) باللون الأخضر و يرتفع في ذات الوقت باب الحماية و بعد 3 ثواني يشتغل مصباح (R) باللون الأحمر لمدة ثانيتين ثم يغلق الباب من جديد.
أكتب كود برمجي للتحكم في هذا الباب مع العلم انه تم ربط
المكونات بالمنافذ التالية :
الزرa المنفذ 2 |
المحرك M1 المنفذ 6 |
المصباح V المنفذ 10 |
الزر b المنفذ 3 |
المحرك M2 المنفذ 7 |
المصباح R المنفذ 11 |
ملاحظة هامة : يمثل الكود البرمجي التالي أحد الحلول للتمرين السابق و بالتالي يوجد كودات أخرى تؤدي نفس الوظيفة حسب اجتهاد التلميذ و فهمه للنشاط
يمكن في الكود ايضا التخلي عن الـ else
int a = 2;
int b = 3;
int M1 = 6;
int M2 = 7;
int V = 10;
int R = 11;
void setup(){
pinMode (a , INPUT);
pinMode (b , INPUT);
pinMode (M1 , OUTPUT);
pinMode (M2 , OUTPUT);
pinMode (V , OUTPUT);
pinMode (R , OUTPUT);
}
void loop (){
if (((digitalRead(a))==1) || ((digitalRead (b))==1)) {
digitalWrite (V , 1);
digitalWrite (M1 , 1);
delay (3000);
digitalWrite (V , 0);
digitalWrite (M1 , 0);
digitalWrite (R , 1);
delay (2000);
digitalWrite ( M2 , 1);
delay (3000);
digitalWrite ( R , 1);
digitalWrite ( M2 , 0);
}
else {
digitalWrite ( V , 0);
digitalWrite ( M1 , 0);
digitalWrite ( R , 0);
digitalWrite ( M2 , 0);
}
}