مقاومات الرفع
لقد وصلت زر و ثنائي ضوئي إلى متحكم وبرمجته ليضيء ويطفئ عند كبسه. ولكن ما إن قمت بتشغيله حتى بدأ الثنائي بالإضاءة عشوائيا ويبدو أنّه لا يستجيب للزر! فما المشكلة هل هي أن الـPin متضرر أم أن أسلاك التوصيل فيها قصر أم المتحكم لا يستجيب !
في الحقيقة المشكلة ليست أيّا من هذه. إليك هذه التجربة البسيطة التي تبين لنا ما الذي يحصل:
إذا قمنا ببرمجة الـPin ليكون دخل (Input) ولم نقم بوصل أي شي إليه ثم قمنا بقياس الجهد بالنسبة للأرضي باستخدام الآفو فسنجد أنّ الخرج هو صفر أو قريب من الصفر هذا جيد ولكن لنقم الآن ببرمجة المتحكم ليظهر حالته باستخدام بوابة تسلسلية هل تستطيع تخمين ما سيظهر ؟
إن كان تخمينك هو 0 فيؤسفني أن أخبرك أن ليس هذا ما سيحدث وإنما ستظهر أصفار وواحدات بشكل عشوائي وبتغير سريع وسيظهر هذا الأمر بشكل أكثر فيما لو قمنا هذه المرة بوصل راسم إشارة إلى الـPin عوضا عن الآفو الاعتيادي فتظهر هذه المرة إشارات بتشويش كبير وإن تفقدنا ترددها سنجده بين 50 و60 هرتز فمن أين تأتي هذه الإشارة؟
حسناً بمجرد أن تنظر إلى التردد أول ماسيخطر على بالك هو تيار التغذية وبالفعل هذا صحيح سواء كنت تقوم بتطبيق المشروع في غرفتك في المنزل أو في مختبر فإنّ العديد من مصادر التشويش ستتواجد هذه الطاقة التي ستكوّن أمواجاً كهرطيسية ستجد طريقها إلى الـPin والذي نسميه في هذه الحالة المغرز العائم “Floating Pin” – وهو يشبه إلى حدّ ما هوائي الراديو – سيستقبلها وبالتالي سيقرأها المتحكم الصغري على أنّها تغيرات من 0 إلى 1 وبالعكس.
حتى عند وصل الزر ففي الحالة التي يكون فيها غير مضغوط فإنّه سيتحول إلى مغرز عائم.
فما الحل ؟
هنا يأتي دور مقاومات الرفع بوصلها كما في الشكل. لن يكون الـPin عائماً ولكن سيكون موصولاً إلى جهد التغذية عندما يكون الزر مرفوع وعند ضغطه فإنّ التيار سيجد طريقه إلى الأرض وبالتالي سيصبح الـPin في حالة الصفر.
ندعوا هذه المقاومة بمقاومة الرفع إذ أنّها ترفع جهد الـPin إلى 5 فولت بدلاً من أن يكون صفراً. هذه المقاومات متوافرة بشكل داخلي في المتحكمات وكل ما نحتاجه هو أمر برمجي بسيط لتشغيلها (والذي يختلف بحسب المتحكم ولغة البرمجة المستخدمة) ويمكن تركيبها بشكل خارجي ويُنصح باستخدام مقاومة بين الـ10K والـ100K وباستطاعة ربع واط.
يجب الانتباه إلى أنّه في هذه الحالة عدم ضغط الزر سيكون هو الحالة واحد وضعطه سيكون الحالة صفر وبالتالي يجب مراعاة الأمر عند كتابة الكود البرمجي. أيضاً حتى مع مقاومات الرفع لا يزال هنالك مشكلة تواجهنا مع الأزرار وهي مشكلة الاهتزاز الميكانيكي للزر وهو ما سناقشه في مقال لاحق.
تعليق واحد