دكستر العرب
./عضو جديد


السمعة:
- إنضم20 مايو 2025
- المشاركات 1
- مستوى التفاعل 4
- النقاط 3
اجعل الكتاب صديقًا، والعِلم طريقًا، و مساعدة الغير غايةً، تكن في الحياة عزيزًا، وفي الآخرة سعيدًا.
لا تجعل يومك يمر دون أن تُضيف لعقلك فكرة، ولقلبك نورًا، ولدينك عملًا.
فالعلم بلا عمل كالشجرة بلا ثمر.
project #1: creating a Blinking led Wave
فكرة هذا المشروع أن لدينا 5 مصابيح من نوع led و يتم تشغيل المصابيح على التوالي, يعمل الأول ثم ينتظر ثم ينطفئ و يعمل الثانيالخوارزمية
- يعمل المصباح الأول
- ينتظر لنصف ثانية (500ms)
- ينطفئ المصباح الأول
- يعمل المصباح الثاني
- ينتظر لنصف ثانية (500ms)
- ينطفئ المصباح الثاني
- يعمل المصباح الثالث
القطع التي نحتاجها
- المتحكم الذي سيكون في حالتنا الأردوينو
- 5 مصابيح من نوع led
- 5 مقاومات بقيمة 220 أو 560 أوم أو اي قيمة بهذه الحدود
- لوحة التجارب (bread board)
- أسلاك توصيل
و لا تنسى أن لمصابيح ال led طرفين ال (anode, cathod) و لكي يعمل فال anode مع الموجب و ال cathod مع السالب (الأرضي)
و ما قمنا به هنا أننا قمنا بتوصيل كل ليد بمقاومة 220 أوم بجهة ال anode و توصيل ال cathod بالأرضي (السالب) الذي يأتي من الأردوينو
و ما سيحصل الأن أننا من خلال منافذ I/O ال digital سنخرج 5 فولت ستذهب لكي تقوم بتشغيل led معين و تستمر بالعمل و تتوقف عندما نريد نحن ذلك في الكود الخاص بنا
ملاحظة : مكان المقاومة لن يؤثر على عمل المشروع فإن وصلناها بين الموجب و ال anode قبل ال led او بين ال cathod و ال ground فلن يحصل هنا أي تغيير و هذه قاعدة في عالم الكهرباء [مكان المقاومة قبل أو بعد العنصر لا تقوم بعمل أي تغيير]
الكود
في الأردوينو نستخدم برنامج مجاني يسمى Arduino IDE لوضع الأكواد و رفعها
C++:
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
delay(500);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
delay(500);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(500);
digitalWrite(6, LOW);
}
void setup
هذه تستخدم لتعريف المنافذ و المتغيرات و هنا عرفنا 5 منافذ و هي المنافذ من 2 إلى 6 على أنها output لكي تجهز نفسها أنها ستخرج إشارة (تساوي 5 فولت)ثم من خلال
digitalWrite
نقول إطبع على المنفذ رقم 2 على سبيل المثال HIGH (خرج عالي 5 فولت)ثم في
delay
نقول انتظر على الحالة التي انت عليها لمدة 500ms أي نصف ثانيةو الأن في الخطوة التالية
digitalWrite
على نفس المنفذ 2 و لكن هذه المرة LOW أي سيخرج 0 فولت (لا يعمل) فسيتوقف الليد عن العملو هنا نقوم بتشغيل الليد المتصل بالمنفذ 3 و نكمل العمل في مشروعنا
و هذه هي النتيجة
ملاحظة مهمة, تأكد بأن الأسلاك أو المنافذ التي قمت بتوصيلها لليدات هي نفس المنافذ في كودك, فإن مثلا قلت في الكود أن يخرج المنفذ 8 HIGH و لكننا لم نوصل به شيء فلن يعمل شيء بالنسبة لك و لكن المنفذ حقا أخرج و لكنك لم توصله بشيء يظهر لك أثر
التطوير
العلم ليس مجرد كلمات و أفكار تحفظ بل هو عبارة عن سلسلة من التطوير و هذا ما يجب عليك أن تنميه فالأنانظر كيف يمكنك أن تطور المشروع مثلا :
- أنا لدي 100 ليد فهل من المنطق أن أعيد نفس الأسطر أو أن هناك شيء قد يسهل عليه هذه العملية و يقلل من وقتي بالبرمجة ؟
- مثلا أردت تغيير زمن التوقف لكل الليدات بدلا من نصف ثانية أردت جعله ثانية واحدة كيف يمكن أن أغيره بخطوة واحدة ؟
- هل هناك تغيير على إضاءة الليدات مثلا أن تعمل بدرجات بدلا من درجة واحدة ؟
- هل هناك أفكار لأجعل الإضاءة مثيرة قليلا و عشوائية بعض الشيء ؟
إن شاء الله هذا سيكون موضوعنا في المشروع القادم, و في هذا الوقت لا تقوموا بالإنتظار بل ابحثوا و تعلموا و شاركونا إلا ماذا وصلتم لأن المشاركة و المناقشات هي ما تؤدي للتعلم الحقيقي