
برمجة نظام إشارة مرورية: مقدمة

قم بالترقية للحصول على المزيد من المحتوى
صحيح أم خطأ؟ يمكن برمجة ضوء الـ LED.
أوه، كم من الوقت ستنتظر لينا عند هذه الإشارة المرورية. يبدو أنها ستظل حمراء لوقت طويل. تتسائل لينا: كيف تعمل الإشارات المرورية بالضبط؟ ربما هكذا؟ أخضر... أصفر... أحمر... أصفر... أخضر... أصفر... أحمر... حافلة آتية! تحول للأخضر. أو ربما لا. لكن هذا يشبه ما يحدث: شيء ما يخبرك عندما تضيء الأضواء والتوقف، والتعرف على حافلة قادمة، لكن هذا الشيء ليس أناس صغيروا الحجم، وإنما شيء يمكننا برمجته. لنستخدم متحكما مصغرا للبرمجة، وصمامات LED لتمثيل أضواء الإشارة المرورية. نحتاج كابلات لتوصيل هذه القطع معا. ليُضيء الـ LED، نحتاج لتيار، ونحتاج لدائرة كهربائية مغلقة للتيار، بقطب موجب، وآخر سالب، لجعل الإلكترونات ترغب في التحرك. نستخدم المتحكم المصغر لتوجيه التيار إلى الـ LED. لنلقي نظرة أقرب على المتحكم المصغر. للمتحكم المصغر زِران: A وB. هناك وصلات بأسماء مختلفة، مثل: 0، 1، 2، 3V وGND. لكل وصلة فجوة مصممة لتوصيل الكابلات بمشبك كهربائي أو قابس. نحتاج للجهد لنحصل على التيار. يقاس الجهد بالفولت. أها! 3V تعني 3 فولت. هذا هو القطب الموجب في المتحكم المصغر. لكن ماذا تعني GND؟ إنه اختصار لـ ground بالإنجليزية و السويدية. إنه القطب السالب في المتحكم المصغر. للـ LED ساقان. أحدهما أطول من الآخر. نوصل الساق الطويلة بالقطب الموجب، لكي يتدفق التيار وتُضيءَ الـ LED. نباعد بين الساقين برفق، لكي لا تتصل كلتا الساقين بالقطب الموجب، وإلا سيسلك التيار المسار الأقصر، وتحدث دائرة قصر من أحد الساقين للأخرى. نوصل كابلا من الساق القصيرة للـ LED بالقطب السالب للمتحكم المصغر، وهكذا نكون قد أغلقنا الدائرة، وتُضيء الـ LED. توقف قوة إضائتها على الجهد. لدينا هنا 3 فولت. المزيد من الجهد يؤدي لتحطم الـ LED، حيث يصبح التيار عبر الـ LED مرتفعا جدا. يمكننا تحديدَ التيار بتوصيل مقاوم بالتتابع مع الـ LED. بما أننا اخترنا LED ثلاثة فولت، والمتحكم المصغر يستخدم ثلاثة فولت، فليست هناك خطورة. تُضيء الـ LED الآن ما دامت الدائرة مغلقة. لكن هذا غير كاف للإشارة المرورية: ضوء واحد مُضيء باستمرار؟ أي أن تظل الإشارة حمراء فقط! علينا التحكم في وقت إضاءة الـ LED وانطفائها. علينا برمجة المتحكم المصغر لفتح وغلق الدائرة. نوصل الكابل الذي يمتد من الساق الأطول للـ LED بأي من الوصلات المرقمة. يمكن برمجة الوصلات المرقمة لغلق أو فتح الدائرة. لنستخدم الوصلة رقم صفر. ننقل الكابل الموجب من 3V إلى صفر. لنشرح بخطوات صغيرة أولا ما نريد إخبار المتحكم المصغر القيامَ به. نستخدم ما يسمى بالسودوكود، والذي يمكن بعدها ترجمته إلى كود برمجة. ما نريد من المتحكم المصغر القيام به هو: "تشغيل الـ LED" "الانتظار" "إطفاء الـ LED" "الانتظار" "تشغيل الـ LED"، وهكذا... عندما نريد لشيء ما أن يتكرر في البرمجة، فإننا نستخدم الحلقة: الـ loop. تُنفذ الـ loop طالما كان الشرط مُتحققا. إذا أردنا أن لا تتوقف الـ loop أبدا، فعلينا التأكد من أن يكون الشرط متحققا دائما. مثلا، "طالما أن اثنان أكبر من واحد". لذا نُضيف سطر مُدَّة: "مدةَ تحقق الشرط" فوق السودوكود الذي كتبناه سابقا. لتوضيح الصفوف الداخلة في الـ loop، ثم نُبوِّب تلك الصفوفَ تحت صف "المدة" هكذا: حان الوقت لتقوم بتحويل هذا السودوكود إلى كود برمجة. إنطلق!