التعامل مع المدخلات الرقمية في أردوينو

2013-06-25

ذكرنا في موضوع سابق بعض أساسيات الدارات الإلكترونية وسنذكر الآن طرق تمرير مدخلات رقمية بسيطة إلى المتحكم الدقيق مثل الموجود في أردوينو.

ربما فاتني أن أذكر في مقالتي السابقة ما يلي

  • يستخدم جهاز الفولتميتر لقياس فرق الجهد بين نقطتين ويوصل معهما على التوازي
  • يستخدم الأميتر لقياس شدة التيار (بوحدة أمبير) المار بنقطة ما يوصل مع النقطة على التسلسل

وقد ذكرنا سابقا أننا نمثل الصفر عبر تمرير جهد منخفض على أحد أسنان المتحكم الدقيق ونمثل الواحد عبر تمرير جهد فوق قيمة معينة (أكثر من 3 فولت مثلا) لكن كيف وقد قلنا أن فرق الجهد يحتاج نقطتين وليس نقطة واحدة.

لو حصلنا القيمة التي يقرأها أردوينو في سن ما عبر digitalRead ثم أظهرناها عبر ضوء LED الموصول على سن رقم 13 مثلا أو عبر Serial.println أو بأي وسيلة أخرى

الآن نريد أن نفعل شيء ما يجعله يقرأ القيمة واحد. لو أخذنا الطرف الموجب من بطارية خارجية ووصلناه بذلك السن فلن نحصل على القيمة واحد.

المفتاح لفهم ذلك هو أن نتخيل أن هناك فولتميتر موصول داخل المتحكم الدقيق وراء ذلك السن. لكن لدينا سن واحد والفولتميتر له طرفان؟ مبدئيا لنتخيل أن الطرف الآخر موصول بالأرض بمعنى أنه المتحكم الدقيق يقيس فرق الجهد بين ذلك السن والأرض

في مثالنا السابق فرق الجهد بين السن الموصول مع الطرف الموجب للبطارية الخارجية والأرض هو صفر لأن الدارة مفتوحة (لا يوجد دارة تجمعهما) لو قمنا بوصل الطرف السالب للبطارية الخارجية بالأرض عبر GND هنا يصبح لدينا دارة مكتملة وسنحصل على القيمة واحد. لكن لحظة!

لم هذا التعقيد وإدخال بطارية خارجية وخلافه. لنأخذ مخرج الطاقة 5 فولت الذي يغذي المتحكم الدقيق (في أردوينو يمر على منظم فولتية) ونمرره إلى سن المدخلات. لكن لحظة أليس هذه دارة دارة قصر short circuit ? ماذا نفعل. نحتاج مقاومة

لنعمل دارة بسيطة مكونة من يطارية ومقاومة ومفتاح كهربائي لكن عوضا عن وضع فولتميتر حول المقاومة نوصله بالسن الذي نريده للمتحكم الدقيق كما في الصورة وبهذا نكون انتهينا!

مخطط الدارة المبسط

تلك الدارة البسيطة تصبح بهذا الشكل عند تطبيقها عمليا

مخطط الدارة العملي

نسمي المقاومة التي وضعناها في الدارة السابقة مقاومة خفض/خافضة pull down resistor والقيمة الشائعة للمقاومة هي 10 كيلوأوم وينصح دائما بعمل مثل ذلك في أغلب الحالات لأنه إن لم تفعل ذلك فإن أقل تيار (من الضجيج في البيئة المحيطة) يغيير حالة السن من صفر إلى واحد وبالعكس أقتبس

This also means however, that input pins with nothing connected to them, or with wires connected to them that are not connected to other circuits, will report seemingly random changes in pin state, picking up electrical noise from the environment, or capacitively coupling the state of a nearby pin.

If you have your pin configured as an INPUT, you will want the pin to have a reference to ground, often accomplished with a pull-down resistor (a resistor going to ground) as described in the Digital Read Serial tutorial.

مقاومة خفض

لننظر إلى الدارة التالية (للتبسيط لا يتم رسم البطارية ولا المتحكم الدقيق وقد وضعتهم بلون فاتح حتى تتعود)

دارة توضح المقاومة الخافضة والرافعة

المفتاح الكهربائي العلوي إن كان موصولا (مغلقا) وكان السفلي مفتوحا (أي أن المقاومة السفى غير موصولة) نسميها مقاومة رافعة للجهد حيث أنها موصولة مع Vin ذي 5 فولت أما لو عكسنا المفاتيح ووصلنا المقاومة السفلى الموصولة بالأرض وفصلنا العلوية نسمي المقاومة السفلى مقاومة خافضة.

تحتوي المتحكمات الدقيقة Atmega على مقاومة رافعة بمقدار 20 كيلوأوم يمكن تفعيلها برمجيا عبر

pinMode(pin, INPUT_PULLUP);

إن عملت ذلك يظل السن يقرأ القيمة واحد ما لم يتم وصله بالأرض دون الحاجة لأي مقاومات خارجية

اضف وصف الصورة هنا

هناك الكثير من التطبيقات لهذه المعلومات منها

للمزيد من المعلومات انظر مرجع أردوينو عن الأسنان الرقمية

3


محمد عنيني
محمد عنينيمنذ 3 سنوات

مشكور أخ مؤيد على الموضوع الممتاز والمجهود الرائع.

0

alivx
alivxمنذ 3 سنوات

شكراً مؤيد، معلومات مفيدة :)

0

Test User