الدرس 98-8: المشي الخفيف مع زر الضغط ومصابيح LED باستخدام الأردوينو
يوضح لك هذا المشروع كيفية بناء "ضوء متحرك" يتقدم خطوة واحدة في كل مرة تضغط فيها على زر ضغط. فبدلاً من ضوء يعمل بمؤقت خاص به، تحصل على تحكم مباشر وملموس: كل ضغطة تنقل مؤشر LED المضيء موضعًا واحدًا إلى الأمام، وبعد آخر مؤشر LED يعود إلى الأول. يُعد هذا أحد أكثر اللبنات الأساسية فائدة في تعلم الأردوينو، لأنه يعلّمك كيفية الجمع بين مدخل رقمي (الزر) وآلة حالة دوّارة (أي مؤشر LED مضيء حاليًا) — وهو نمط ستستخدمه باستمرار.
بمجرد أن تفهم هذا النمط، ستشغّل المنطق نفسه مجموعة واسعة من المشاريع الحقيقية. إليك بعض الأفكار العملية التي يمكنك بناؤها به:
- محدد قوائم في جهاز حيث تُبرز كل ضغطة الخيار التالي.
- مؤشر خطوات تسلسلي لآلة أو عملية (الخطوة 1، الخطوة 2، الخطوة 3...).
- عرض نتيجة أو مستوى تتقدم فيه يدويًا بزر.
- مؤشر "القناة التالية" أو "الوضع التالي" لوحدة تحكم في الإضاءة.
- لعبة بسيطة أو جرس اختبار يتناوب فيه اللاعبون على إضاءة المصباح التالي.
- مُرتّب مرحّلات أو أحمال حيث تُفعّل كل ضغطة الخرج التالي بالترتيب.
الميزة الأساسية مقارنة بالضوء المتسلسل التلقائي هي التحكم: لا شيء يحدث حتى تضغط، لذا لا يتقدم الضوء إلا عندما تقرر أنت ذلك. يلاحظ الفيديو أيضًا أن فكرة التبديل والتسلسل نفسها يمكن أن تشغّل مرحّلًا لتبديل ضوء تيار متردد أو التحكم في محرك، وليس فقط مؤشرات LED (في الفيديو عند 19:52).
العتاد والمكونات
قائمة الأجزاء قصيرة وغير مكلفة:
- لوحة أردوينو (Uno أو Nano أو Mega أو أي لوحة متوافقة).
- خمسة مؤشرات LED — 5 مم أو 3 مم، بأي ألوان تريدها.
- خمس مقاومات محددة للتيار، من 200 Ω إلى 1000 Ω (يستخدم الفيديو 1 كيلو Ω).
- مفتاح زر ضغط واحد (مفتاح لمسي لحظي مثالي).
- لوحة تجارب وبعض أسلاك التوصيل DuPont.
ملاحظة سريعة عن مؤشرات LED: الكاثود هو الطرف الأقصر والجانب ذو الحافة المسطحة، بينما الأنود هو الطرف الأطول (في الفيديو عند 03:13). قيمة المقاومة ليست حرجة — فالمقاومة الأعلى تجعل مؤشر LED أخفت فقط، لذا أي قيمة من حوالي 300 Ω حتى 1000 Ω ستعمل بشكل جيد (في الفيديو عند 05:33).
دليل التوصيل
التوصيل هو أساسًا نفس توصيل ضوء متحرك قياسي بخمسة مؤشرات LED، مع إضافة زر ضغط واحد. يتصل أنود كل مؤشر LED بمنفذ الأردوينو الخاص به، ويتصل كل كاثود عبر مقاومته الخاصة بقضيب الأرضي المشترك على لوحة التجارب. في هذا البناء، تُوصَّل مؤشرات LED بالمنافذ 3 و4 و5 و6 و7 (في الفيديو عند 31:37). يُوضع زر الضغط على لوحة التجارب بحيث يتصل أحد طرفيه بالأرضي والطرف الآخر بالمنفذ 2 — وهو نفس المنفذ الذي يستخدمه الكود للزر (في الفيديو عند 37:04).
ولأن الكود يفعّل مقاومة السحب الداخلية في الأردوينو، فلا حاجة إلى مقاومة خارجية على الزر. عندما لا يكون الزر مضغوطًا يقرأ المنفذ HIGH، وعندما تضغطه يُسحب المنفذ إلى الأرضي ويقرأ LOW (في الفيديو عند 14:02).
شرح الكود
البرنامج الكامل متاح أسفل هذا المقال. هنا نركز على الأجزاء التي سترغب فعليًا في تغييرها.
في أعلى Sketch، يُسنَد كل مؤشر LED والزر إلى منفذ. هنا تخصص البناء ليتوافق مع توصيلك الخاص:
const int pushButtonPin = 2; // push button pin
const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int LED_ON = LED1; // which LED is currently lit
متغير LED_ON هو قلب المشروع. فهو يتذكر أي مؤشر LED مضيء حاليًا، بدءًا من LED1. في كل مرة تضغط الزر، يقدّم الكود LED_ON إلى مؤشر LED التالي في التسلسل ويطفئ السابق، بحيث لا يضيء إلا مؤشر LED واحد في أي وقت.
هناك أيضًا تأخير صغير بعد كل ضغطة:
delay(200); // debounce / give the user time between presses
تمنع هذه الوقفة البالغة 200 مللي ثانية تسجيل ضغطة فيزيائية واحدة كضغطات متعددة. إذا اهتز إصبعك أو بدا الزر حساسًا جدًا، فزد هذا الرقم؛ وإذا أردت استجابة أسرع، فخفّضه. انتبه إلى أن ضبطه منخفضًا جدًا قد يجعل الضوء يتخطى إلى الأمام بشكل غير متوقع (في الفيديو عند 41:20).
المنطق الرئيسي موجود في loop(). يقرأ الزر، وفقط عند الضغط على الزر (قراءة LOW) يقدم الضوء. تستخدم التسلسلة سلسلة من فحوصات if / else if للانتقال من LED1 إلى LED2 إلى LED3، وهكذا، مع العودة إلى LED1 بعد الأخير. إذا كنت تريد تغيير الاتجاه أو ترتيب مصابيح LED، فهذه هي الكتلة التي يجب تعديلها — ببساطة أعد تعيين أي دبوس يتبع أي دبوس.
المشروع المباشر والعرض التوضيحي
بعد رفع الكود، يؤدي الضغط على الزر إلى إضاءة أول LED؛ ويؤدي تحريره إلى إبقاء ذلك LED مضاءً. تنقل الضغطة التالية الضوء إلى LED الثاني، ثم الثالث والرابع والخامس، وتعود الضغطة التالية إلى الأول — دوران مستمر (في الفيديو عند 40:22).
من الآثار الجانبية الجميلة لتأخير 200 مللي ثانية أنه إذا أبقيت الزر مضغوطًا، يستمر الضوء في التقدم من تلقاء نفسه كل 200 مللي ثانية، مما يحول المشروع فعليًا إلى ضوء متحرك تلقائي أثناء الضغط على الزر (في الفيديو عند 42:07). حرر الزر ويتوقف عند LED الحالي. يمنحك هذا كلاً من التقدم اليدوي والتشغيل بدون استخدام اليدين من زر واحد.
إذا كنت تفضل تشغيل الضوء تلقائيًا دون أي زر على الإطلاق، فهذا بناء منفصل. النسخة التلقائية مشمولة في الدرس 98-7: الضوء المتحرك باستخدام الأردوينو و5 مصابيح LED.
مشاريع ذات صلة من هذا الفيديو
- الدرس 98-1: كيفية تشغيل وإطفاء LED باستخدام الأردوينو
- الدرس 98-2: كيفية تشغيل وإطفاء LED باستخدام زر ضغط مع الأردوينو
- الدرس 98-3: كيفية تشغيل/إطفاء LED تبديلي باستخدام زر ضغط مع الأردوينو
- الدرس 98-4: تلاشي ضوء LED باستخدام الأردوينو: التحكم في السطوع
- الدرس 98-5: تلاشي الضوء عند الضغط على زر باستخدام الأردوينو
- الدرس 98-6: لعبة LED الأرجوحة مع الأردوينو
- الدرس 98-7: الضوء المتحرك باستخدام الأردوينو و5 مصابيح LED
- الدرس 98-9: مقياس مستوى جهد LED باستخدام الأردوينو أو الضوء المتحرك مع مقياس الجهد
- الدرس 98-10: إشارة المرور بالأردوينو
الفصول
- [00:00] نظرة عامة على 10 مشاريع LED بالأردوينو
- [01:22] مقدمة إلى دورة الأردوينو خطوة بخطوة
- [02:29] فهم مصابيح LED: الرموز والقطبية والدبابيس
- [03:49] حساب مقاومة تحديد تيار LED
- [30:47] الضوء المتحرك مع 5 مصابيح LED: التوصيلات والمبدأ
- [32:52] كود الضوء المتحرك: الدبابيس والتوقيت والحلقة
- [36:41] تقديم الضوء باستخدام زر ضغط
- [37:44] الضوء المتحرك مع زر ضغط: شرح الكود
- [40:22] العرض التوضيحي وضبط تأخير الضغط
- [57:16] ملاحظات ختامية وخاتمة الدورة
This code has not been parsed yet. Please return to the admin panel to parse it.
الأشياء التي قد تحتاجها
-
أمازونSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
أمازون
-
أمازون
-
أمازون
الموارد والمراجع
-
توثيقوثائق لمجموعة SunFounder 3 في 1 لإنترنت الأشياء/السيارات الذكية/التعلمdocs.sunfounder.com
-
خارجي
-
خارجي
ملفات📁
مكتبات أردوينو (ملف مضغوط)
-
شفرة المصدر لمجموعة تعلم السيارة الذكية 3 في 1 من صن فاوندر
3in1-kit-main-v2.zip12.80 MB
دليل المستخدم
-
دليل تجميع سيارة SunFounder الذكية 3 في 1 مع Arduinoيوضح هذا المستند خطوة بخطوة تجميع سيارة SunFounder الذكية 3 في 1 مع Arduino
SunFounder_car_assembly_manual.pdf1.20 MB