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

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

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

لن أنتظر تصفيق أو حافز بل إن شاء الله سأعمل و أستمر إلى أن يشاء الله

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

و وفقك الله أخي ستورم لما تحبه و ترضاه و ثبتنا و ثبتكم على طريق رفعة مجتمعاتنا و منفعة الناس
 
  • Love
التفاعلات: STORM
مشروع حلو وانا ان شاء الله معك بالمشاريع وبطبقها اول ما اوصل لعدتي وبشاركها معكم اكيد 👏🔥
الله يعطيك العافيه يارب🔥👏
الله يسعدك أخي, هو حرفيا يعد من أبسط المشاريع في المجال
و لكن سررت لأنه نال إعجابك و إن احتجت لمساعدة في أمر ما فتواصل معي
 

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

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

بارك الله فيك على مشاركة ما تعرف من علم يا بشمهندس
وإن شاء الله تتخطى حتى ديكستر

نورت المنتدى أخي الكريم
 

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

عودة
أعلى