
برمجة نظام إشارة مرورية: إظهار العد التنازلي

قم بالترقية للحصول على المزيد من المحتوى
صحيح أم خطأ؟ نقوم بإظهار عدد الثوان المتبقية على الضوء الأخضر باستخدام المتحكم المصغر.
تقترب حافلة من إشارة مرور تتحول للضوء الأخضر، فلا تحتاج الحافلة للتوقف. ثم تصل إلى إشارة المرور التالية والتي تتحول للأخضر كذلك. يال الحظ! أم أنه ليس حظا؟ لقد خطط أحدهم لتصبح الإشارات خضراء، لا. بحيث لايكون على الحافلة التوقف. يسمى ذلك بالموجة الخضراء. لا... ليس ذلك النوع من الأمواج. إنها موجة من الأضواء الخضراء. تخيل لو أن نظام الإشارات المرورية يمكنه معرفة متوسط السرعة التي تحتاجها الحافلة كي تحصل على موجة خضراء، ولو أن إشارات المرور يمكنها عرض عدد الثوان التي ستمر قبل تحولها للأخضر. عندها يمكن لسائق الحافلة ضبط سرعتها لتتناسب مع توقت وصولها عند كل إشارة مرور. سنقوم الآن ببرمجة إشارة مرور يمكنها إخبارنا بوقت تحولها للأخضر. نحتاج لعدة أشياء قبل أن نبدأ في البرمجة. 1.متحكم مصغر. هذا يتحكم في الشاشة التي تعرض الوقت المتبقى قبل تحولها للأخضر. 2.ثلاث أضواء LED، واحد أحمر وآخران أصفر وأخضر. هذه هي أضواء إشارة المرور. 3.كابلات لتوصيل جميع المكونات. 4.وبرنامج لتشغيل إشارة المرور. يمكننا استخدام البرنامج الذي أنشأناه في فيديو آخر. سنقوم بتوصيل إشارة المرور بنفس الطريقة التي كانت في ذلك الفيديو. يبدو سودوكود البرنامج هكذا: عندما تكون حمراء، فإن على إشارة المرور عرض الوقت المتبقي قبل أن تصبح خضراء. كيف يمكن للبرنامج معرفة ذلك؟ أوقف الفيديو وفكر بنفسك. هذا السطر يصدر تعليمات بإضاءة الأحمر لمدة ثلاثة ثوان، قبل أن يأمر هذا السطر بتشغيل الضوء الأصفر. ثم هناك وقفة لمدة ثانية في السطر التالي قبل أن يُضيء الأخضر. إذا جمعنا الوقفات معا أثناء تحولها للأحمر والأصفر، نحصل على ثلاثة ثوان زائد ثانية واحدة، أي أربعة ثوان في المجمل. لذا ستسغرق الإشارة أربعة ثوان قبل أن تصبح خضراء ثانية من وقت بداية الضوء الأحمر في الإضاءة. في الكود، نُضيف: "إظهار أربعة في العرض" هناك وقفة لمدة ثلاثة ثوان ثم ثانية أخرى قبل الأخضر. نوضح ذلك بإضافة: "إظهار واحد في العرض" قبل وقفة الثانية الواحدة. لنختبر السودوكود. العرض يقفز من أربعة ثوان إلى ثانية واحدة. لكن لن يعرف سائق الحافلة عندما يتبقى ثانيتان أو ثلاثة على الضوء الأخضر. كيف يمكننا تطوير السودوكود ليكون أكثر وضوحا؟ يمكننا تقسيم وقفة الثلاثة ثوان إلى ثلاثة وقفات، مدة كل منها ثانية واحدة. ثم يمكننا إظهار رقم جديد لكل وقفة على الشاشة. هكذا: "إظهار ثلاثة على الشاشة" وقفة لمدة ثانية و"إظهار اثنان على الشاشة" ووقفة لمدة ثانية. لنختبره ثانية. أربعة، ثلاثة، إثنان، واحد، أخضر. إنها تعمل! يحصل السائق الآن على معلومات عن الزمن المتبقي لإضاءة الأخضر كل ثانية. يستطيع السائق استخدام هذه المعلومات لضبط السرعة بحيث تتمكن الحافلة من التنقل عبر البلدة بدون الحاجة للتوقف. لقد قمنا ببرمجة موجة خضراء. إمتطِ الموجة!