مضى على الشبكة و يوم من العطاء.

[ مشروع ] المشروع الأول من كتاب The Arduino workshop

دكستر العرب

./عضو جديد

السمعة:

اجعل الكتاب صديقًا، والعِلم طريقًا، و مساعدة الغير غايةً، تكن في الحياة عزيزًا، وفي الآخرة سعيدًا.
لا تجعل يومك يمر دون أن تُضيف لعقلك فكرة، ولقلبك نورًا، ولدينك عملًا.
فالعلم بلا عمل كالشجرة بلا ثمر.

project #1: creating a Blinking led Wave​

فكرة هذا المشروع أن لدينا 5 مصابيح من نوع led و يتم تشغيل المصابيح على التوالي, يعمل الأول ثم ينتظر ثم ينطفئ و يعمل الثاني

الخوارزمية​

  1. يعمل المصباح الأول
  2. ينتظر لنصف ثانية (500ms)
  3. ينطفئ المصباح الأول
  4. يعمل المصباح الثاني
  5. ينتظر لنصف ثانية (500ms)
  6. ينطفئ المصباح الثاني
  7. يعمل المصباح الثالث
و تكمل إلى أن ينطفئ المصباح الخامس ثم نعيد تكرار هذه العملية من البداية

القطع التي نحتاجها​

  1. المتحكم الذي سيكون في حالتنا الأردوينو
  2. 5 مصابيح من نوع led
  3. 5 مقاومات بقيمة 220 أو 560 أوم أو اي قيمة بهذه الحدود
  4. لوحة التجارب (bread board)
  5. أسلاك توصيل
و نقوم بعمل هذا التوصيل
1747770449019.webp

و لا تنسى أن لمصابيح ال led طرفين ال (anode, cathod) و لكي يعمل فال anode مع الموجب و ال cathod مع السالب (الأرضي)

و ما قمنا به هنا أننا قمنا بتوصيل كل ليد بمقاومة 220 أوم بجهة ال anode و توصيل ال cathod بالأرضي (السالب) الذي يأتي من الأردوينو

و ما سيحصل الأن أننا من خلال منافذ I/O ال digital سنخرج 5 فولت ستذهب لكي تقوم بتشغيل led معين و تستمر بالعمل و تتوقف عندما نريد نحن ذلك في الكود الخاص بنا

ملاحظة : مكان المقاومة لن يؤثر على عمل المشروع فإن وصلناها بين الموجب و ال anode قبل ال led او بين ال cathod و ال ground فلن يحصل هنا أي تغيير و هذه قاعدة في عالم الكهرباء [مكان المقاومة قبل أو بعد العنصر لا تقوم بعمل أي تغيير]

الكود​

في الأردوينو نستخدم برنامج مجاني يسمى Arduino IDE لوضع الأكواد و رفعها
1747770902147.webp


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 ليد فهل من المنطق أن أعيد نفس الأسطر أو أن هناك شيء قد يسهل عليه هذه العملية و يقلل من وقتي بالبرمجة ؟
  • مثلا أردت تغيير زمن التوقف لكل الليدات بدلا من نصف ثانية أردت جعله ثانية واحدة كيف يمكن أن أغيره بخطوة واحدة ؟
  • هل هناك تغيير على إضاءة الليدات مثلا أن تعمل بدرجات بدلا من درجة واحدة ؟
  • هل هناك أفكار لأجعل الإضاءة مثيرة قليلا و عشوائية بعض الشيء ؟

إن شاء الله هذا سيكون موضوعنا في المشروع القادم, و في هذا الوقت لا تقوموا بالإنتظار بل ابحثوا و تعلموا و شاركونا إلا ماذا وصلتم لأن المشاركة و المناقشات هي ما تؤدي للتعلم الحقيقي
 
بسم الله ما شاء الله لا قوة الا بالله
استمر بش مهندس في العلم وطلب العلم ونشر العلم بين اخوانك المسلمين
البدايات من كل شيء تكون صعبة ولا أحد يُعطيك معنوياً ما تحتاجه
ولكن لا عليك استمر في العطاء ف إن الله يسمع ويرى
وهذا يكفيك
ننتظر مشاريعك القادمة وابداعاتك القادمة
اخوك ستورم
تحياتي
 

project #1: creating a Blinking led Wave​

فكرة هذا المشروع أن لدينا 5 مصابيح من نوع led و يتم تشغيل المصابيح على التوالي, يعمل الأول ثم ينتظر ثم ينطفئ و يعمل الثاني

الخوارزمية​

  1. يعمل المصباح الأول
  2. ينتظر لنصف ثانية (500ms)
  3. ينطفئ المصباح الأول
  4. يعمل المصباح الثاني
  5. ينتظر لنصف ثانية (500ms)
  6. ينطفئ المصباح الثاني
  7. يعمل المصباح الثالث
و تكمل إلى أن ينطفئ المصباح الخامس ثم نعيد تكرار هذه العملية من البداية

القطع التي نحتاجها​

  1. المتحكم الذي سيكون في حالتنا الأردوينو
  2. 5 مصابيح من نوع led
  3. 5 مقاومات بقيمة 220 أو 560 أوم أو اي قيمة بهذه الحدود
  4. لوحة التجارب (bread board)
  5. أسلاك توصيل
و نقوم بعمل هذا التوصيل
مشاهدة المرفق 17437
و لا تنسى أن لمصابيح ال led طرفين ال (anode, cathod) و لكي يعمل فال anode مع الموجب و ال cathod مع السالب (الأرضي)

و ما قمنا به هنا أننا قمنا بتوصيل كل ليد بمقاومة 220 أوم بجهة ال anode و توصيل ال cathod بالأرضي (السالب) الذي يأتي من الأردوينو

و ما سيحصل الأن أننا من خلال منافذ I/O ال digital سنخرج 5 فولت ستذهب لكي تقوم بتشغيل led معين و تستمر بالعمل و تتوقف عندما نريد نحن ذلك في الكود الخاص بنا

ملاحظة : مكان المقاومة لن يؤثر على عمل المشروع فإن وصلناها بين الموجب و ال anode قبل ال led او بين ال cathod و ال ground فلن يحصل هنا أي تغيير و هذه قاعدة في عالم الكهرباء [مكان المقاومة قبل أو بعد العنصر لا تقوم بعمل أي تغيير]

الكود​

في الأردوينو نستخدم برنامج مجاني يسمى Arduino IDE لوضع الأكواد و رفعها
مشاهدة المرفق 17438

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 و نكمل العمل في مشروعنا

و هذه هي النتيجة

مشاهدة المرفق 17439

ملاحظة مهمة, تأكد بأن الأسلاك أو المنافذ التي قمت بتوصيلها لليدات هي نفس المنافذ في كودك, فإن مثلا قلت في الكود أن يخرج المنفذ 8 HIGH و لكننا لم نوصل به شيء فلن يعمل شيء بالنسبة لك و لكن المنفذ حقا أخرج و لكنك لم توصله بشيء يظهر لك أثر

التطوير​

العلم ليس مجرد كلمات و أفكار تحفظ بل هو عبارة عن سلسلة من التطوير و هذا ما يجب عليك أن تنميه فالأن
انظر كيف يمكنك أن تطور المشروع مثلا :
  • أنا لدي 100 ليد فهل من المنطق أن أعيد نفس الأسطر أو أن هناك شيء قد يسهل عليه هذه العملية و يقلل من وقتي بالبرمجة ؟
  • مثلا أردت تغيير زمن التوقف لكل الليدات بدلا من نصف ثانية أردت جعله ثانية واحدة كيف يمكن أن أغيره بخطوة واحدة ؟
  • هل هناك تغيير على إضاءة الليدات مثلا أن تعمل بدرجات بدلا من درجة واحدة ؟
  • هل هناك أفكار لأجعل الإضاءة مثيرة قليلا و عشوائية بعض الشيء ؟

إن شاء الله هذا سيكون موضوعنا في المشروع القادم, و في هذا الوقت لا تقوموا بالإنتظار بل ابحثوا و تعلموا و شاركونا إلا ماذا وصلتم لأن المشاركة و المناقشات هي ما تؤدي للتعلم الحقيقي
مشروع حلو وانا ان شاء الله معك بالمشاريع وبطبقها اول ما اوصل لعدتي وبشاركها معكم اكيد 👏🔥
الله يعطيك العافيه يارب🔥👏
 

آخر المشاركات

عودة
أعلى