كود البحث

الدرس 98-6: لعبة سي سو LED مع الأردوينو

الدرس 98-6: لعبة سي سو LED مع الأردوينو

مشروع مصباح LED المتأرجح هو تمرين كلاسيكي للمبتدئين يعلّم أحد أهم المفاهيم في برمجة الأردوينو: جعل مخرجين يتناوبان في إيقاع زمني. باستخدام مصباحي LED فقط، ومقاومتين، وحفنة من أسلاك التوصيل، ستبني دائرة يتناوب فيها مصباح LED أخضر ومصباح LED أحمر في الإضاءة، محاكيةً حركة الصعود والهبوط لأرجوحة في الملعب. إنه بناء بسيط، لكنه يقدّم اللبنات الأساسية — تعريفات المنافذ، وثوابت التوقيت، واستدعاءات digitalWrite() المتتابعة — التي تظهر في كل رسم أردوينو تقريبًا ستكتبه يومًا ما.

مصباحا LED مع مقاوم على لوحة تجارب متصلة بالأردوينو
مصباحا LED مع مقاوم على لوحة تجارب متصلة بالأردوينو

لأن نمط التأرجح هو في الحقيقة مجرد "شغّل شيئًا، أطفئه، شغّل الشيء الآخر، أطفئه، كرّر"، فإن البنية نفسها تتوسع لتشمل العشرات من الاستخدامات العملية. إليك بعض الأفكار لإثارة خيالك:

  • أضواء مؤشرة متناوبة — زوج "آمن / تنبيه" على لوحة تحكم يتبادلان ذهابًا وإيابًا.
  • محاكاة مزلقان السكة الحديدية — مصباحان يومضان بالتناوب مع اقتراب قطار.
  • لافتة اتجاه بمسارين — عرض سهم "اذهب من هنا / اذهب من هناك" لممر أو موقف سيارات.
  • زينة الأعياد — مصابيح LED حمراء وخضراء تتبادل الأماكن لتأثير وميض احتفالي.
  • أساس التعلّم — مهارات التوقيت والتسلسل هنا هي نفسها التي ستستخدمها لاحقًا لإشارات المرور، وأضواء المشي، ورسوم متحركة متعددة المصابيح.

كيف يعمل تأثير التأرجح

مصباح LED هو صمام ثنائي يبعث الضوء، ورمزه مثلث يشير إلى خط. الخط المسطح هو المهبط (القطب السالب)، والجزء الخلفي من المثلث هو المصعد (القطب الموجب). على مصباح LED الفعلي، الساق الأطول هي المصعد والساق الأقصر ذات الجانب المسطح هي المهبط. يتدفق التيار من المصعد إلى المهبط، لذا يتصل المصعد باتجاه منفذ الأردوينو ويتصل المهبط عبر مقاوم بالأرضي (في الفيديو عند 02:29).

المقاومة مهمة. مصباح LED صغير نموذجي يحتاج إلى حوالي 2 فولت عبره وحوالي 10 مللي أمبير من التيار. إذا كان الأردوينو يوفّر 5 فولت، فيجب أن تُسقط المقاومة الـ 3 فولت المتبقية. باستخدام قانون أوم، R = V / I = 3 فولت / 0.01 أمبير = 300 أوم. أي قيمة من حوالي 300 أوم حتى 1000 أوم ستعمل — القيم الأعلى تجعل مصباح LED أخفت فقط (في الفيديو عند 03:49).

بالنسبة للتأرجح، يتم توصيل مصباحي LED بشكل متطابق: كل مصعد يذهب إلى منفذ الأردوينو الخاص به، وكل مهبط يمر عبر مقاومه الخاص إلى قضيب أرضي مشترك. الفرق الوحيد بين الاثنين هو المنفذ الذي يتصلان به.

العتاد والمكونات

  • 1 × لوحة أردوينو (Uno أو Nano أو Mega أو ما شابه)
  • 2 × مصباح LED — واحد أحمر، وواحد أخضر (أي لونين يعملان)
  • 2 × مقاومة، من 300 أوم إلى 1000 أوم (220 أوم أو 330 أوم خيارات شائعة)
  • 1 × لوحة تجارب
  • أسلاك توصيل (أسلاك DuPont)
  • كابل USB للبرمجة والتغذية الكهربائية

هذا كل شيء — لا أزرار ضغط، ولا مقاييس جهد، ولا مستشعرات. هذه قائمة مكونات نحيفة عمدًا إلى أقصى حد حتى تركز بالكامل على منطق الكود.

دليل التوصيل

مخطط أردوينو لمصباحي LED بتأثير التأرجح
مخطط أردوينو لمصباحي LED بتأثير التأرجح
توصيلات أردوينو لمصباحي LED بتأثير التأرجح
توصيلات أردوينو لمصباحي LED بتأثير التأرجح

التوصيل متماثل وسهل المتابعة. أدخل كلا مصباحي LED في لوحة التجارب. وصّل مصعد مصباح LED الأخضر (الساق الأطول) بمنفذ الأردوينو 2 ومصعد مصباح LED الأحمر بمنفذ الأردوينو 3. يتصل كل مهبط (الساق الأقصر) بطرف أحد طرفي مقاومته الخاصة، وينضم الطرف الآخر من كلا المقاومتين إلى قضيب مشترك يمتد إلى منفذ GND في الأردوينو (في الفيديو عند 27:45).

لأن كلا مصباحي LED يتشاركان نفس قضيب الأرضي، فلا حاجة إلا لسلك أرضي واحد من لوحة التجارب عائدًا إلى الأردوينو. سلكا الإشارة — واحد إلى المنفذ 2 وواحد إلى المنفذ 3 — هما التوصيلان الوحيدان اللذان يتغيران بين مصباحي LED.

شرح الكود

الرسم قصير عمدًا بحيث يكون كل سطر ذا معنى. إليك الأجزاء التي سترغب فعلاً في تعديلها:

تعريفات المنافذ

const int greenLEDPin = 2;//define a pin for green LED
const int redLEDPin = 3;//define a pin for red LED

يخبر هذان الثابتان الأردوينو بالمنافذ التي تتصل بها مصابيح LED. إذا وصّلت مصابيح LED بمنافذ مختلفة — لنقل المنفذ 8 والمنفذ 9 — فهذا هو المكان الوحيد الذي تحتاج إلى تغييره. تعني الكلمة المفتاحية const أن القيمة ثابتة طوال عمر البرنامج ولا يمكن الكتابة فوقها عن طريق الخطأ لاحقًا.

ثابت التوقيت

const int ON_TIME = 500;

تتحكم هذه القيمة الواحدة في المدة التي يبقى فيها كل مؤشر LED مضاءً، بالمللي ثانية. القيمة الافتراضية 500 تعني أن كل مؤشر LED يبقى مضاءً لنصف ثانية، لذا تستغرق دورة كاملة من الأخضر ثم الأحمر ثانية واحدة. خفّضها إلى 200 للحصول على وميض سريع، أو ارفعها إلى 1000 للحصول على إيقاع بطيء ومتعمّد بمقدار ثانية واحدة لكل مؤشر LED (في الفيديو عند 30:17). ولأن كلا المؤشرين يتشاركان هذا الثابت، فإنهما يبقيان دائماً متزامنين — وتبقى الأرجوحة متوازنة.

الإعداد

داخل setup()، يتم تعريف الطرفين كمخرجات باستخدام pinMode()، ويتم تشغيل شاشة المراقبة التسلسلية عند 9600 باود حتى تتمكن من مشاهدة رسائل حالة مؤشر LED وهي تتحرك. يعمل هذا مرة واحدة، عند تشغيل اللوحة.

الحلقة

دالة loop() هي حيث تحدث حركة الأرجوحة. تنفذ أربعة إجراءات بالتسلسل: تشغيل مؤشر LED الأخضر، والانتظار ON_TIME مللي ثانية، وإطفائه، ثم فعل الشيء نفسه مع مؤشر LED الأحمر. عندما تصل الحلقة إلى النهاية، تبدأ من الأعلى تلقائياً — هذا هو سلوك "الأرجوحة" بأكمله. لا يوجد متغير حالة ولا شرط للتحقق، لأن النمط تسلسلي بحت.

المشروع المباشر والعرض التوضيحي

بمجرد رفع الكود، سترى مؤشر LED الأخضر يضيء لنصف ثانية، ثم مؤشر LED الأحمر، ثم الأخضر مرة أخرى، بلا نهاية. فتح شاشة المراقبة التسلسلية (Tools → Serial Monitor، أو Ctrl+Shift+M) يعرض "Green LED ON" و"Red LED ON" مطبوعتين أثناء تشغيل النمط، وهي طريقة مفيدة لتأكيد أن التوقيت يطابق ما قمت بتعيينه.

جرّب تغيير ON_TIME إلى 200 وإعادة الرفع — ستبدّل مؤشرات LED بشكل ملحوظ أسرع. اضبطها على 1000 وستصبح الأرجوحة تناوباً بطيئاً ومتعمّداً. يمكنك أيضاً فصل الأردوينو عن USB وتشغيله من بطارية أو محول 5 V؛ يعمل الرسم البرمجي بشكل مماثل لأنه مخزّن بالفعل في ذاكرة اللوحة.

مشاريع ذات صلة من هذا الفيديو

الفصول

  • [00:00] نظرة عامة على مشاريع الأردوينو العشرة لمؤشرات LED
  • [01:22] مقدمة عن دورة الأردوينو خطوة بخطوة
  • [02:29] فهم مؤشرات LED: الرمز، والمصعد، والمهبط
  • [03:49] حساب مقاومة السلسلة لمؤشر LED باستخدام قانون أوم
  • [27:32] تقديم مشروع مؤشر LED الأرجوحة
  • [27:45] مخطط التوصيل لمشروع الأرجوحة
  • [28:28] شرح كود الأرجوحة
  • [30:06] عرض توضيحي للأرجوحة بتوقيتات مختلفة
  • [30:47] نظرة عامة على مشروع الضوء المتنقل
  • [36:41] الضوء المتنقل الذي يتحكم به زر ضغط
  • [42:25] شريط قياس جهد LED مع مقياس الجهد
  • [49:25] مشروع إشارة المرور بالأردوينو

الصور

Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
330_ohm_resistor
330_ohm_resistor
مصباحا LED مع مقاومة على لوحة توصيل موصولان بـ Arduino
مصباحا LED مع مقاومة على لوحة توصيل موصولان بـ Arduino
938-Lessson 98-LED-6: Arduino code two LED, See-saw
اللغة: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

الأشياء التي قد تحتاجها

ملفات📁

مكتبات أردوينو (ملف مضغوط)

دليل المستخدم