المدخلات التماثلية Analog inputs July 28, 2017 – Posted in: Arduino, Learn arduino

في هذا الدرس ، سنقوم باستخدام الاتصال التسلسلي (Serial Monitor) لعرض قراءات المدخلات  التماثلية “Analog Inputs” ومن ثم اضافة مصباح LED لنتمكن من التحكم بشكل أكبر ولتقليل درجة اضاءة الـLEDS عبر المقاومة المتغيرة (Variable resister)

القطع المستخدمة

للقيام بهذه التجربة تحتاج الى كل من القطع التالية  5mm red LED ،0 Ω Resistor،  10 kΩ variable resistor ،مقاومة متغيرة ،  Half-size Breadboard لوحة توصيل ، Arduino Uno R3 ،و .Jumper wires

 
ليد مقاومة متغيرة 10 كيلو اوم
 
اردوينو اونو لوحة توصيل
 
مقاومة 220اوم أسلاك

التجربة

قبل البدء باستخدام مصباح الـLED ، تستطيع القيام بالتجربة التالية عبر استخدام المقاومة المتغيرة (potentiometer) و تفعيل خاصية شاشة الاتصال التسلسلي (Serial Monitor) في الأردوينو

قم بتوصيل لوح التجارب كالصورة التالي

قم برفع الكود التالي الى قطعة الأردوينو

والآن ، قم بفتح شاشة الاتصال التسلسلي (Serial Monitor)

قم بتحريك وتغيير المقاومة وسوف تلاحظ التغيّر في القراءات ما بين 0 و 1023

شاشة الاتصال التسلسلي (Serial Monitor) تقوم بعرض القراءات من A3  بوساطة السطر التالي

الجهد (Voltage) في A3 يتم تحويله إلى رقم ما بين 0 و 1023.

المقاومة المتغيرة (Variable Resistors)

المقاومات المتغيرة تدعى “potentiometers” وتختصر بـ pot

في التجربة التي تم اجراؤها مستخدمين شاشة الاتصال التسلسلي (Serial Monitor) تقوم المقاومة بتغيير الجهد على منفذ A3 ، كما يقوم الكود البرمجي  بتحويل هذا الجهد عبر ال ADC  إلى قيم  بين ال 0 و 1023.

في المقاوم المتغير “pot” يوجد مسار يمثل المقاومة وتتكون المقاومة من ٣ ارجل, احد الارجل نوصلها  في ال٥ فولت, اما الرجل الأخرى نوصلها ب GND  او المنفذ الأرضي,  اما الرجل التي في المنتصف تكون متصلة مع جزء متحرك على هذه المقاومة تسمى ” Slider” وظيفتها تغيير مقدار المقاومة ما بين 0 وحتى 5V

طريقة التوصيل

والآن دعونا نقوم باستخدام المقاومة المتغيرة “pot” للتحكم في سطوع  الـLED, سوف نقوم بتوصيل اليد مع منفذ رقم ٣ بواسطة مقاومة قيمتها ٢٢٠ اوم كما في الشكل التالي الى الدائرة التي قمنا بتوصيلها سابقا

شرح الكود البرمجي

قم برفع الكود التالي إلى متحكم الأردوينو

 

الجزء الجديد من الكود وهو تعريف منفذ المدخل التناظري “Analog inputs” والتي سنقوم بربط المقاومة المتغيرة بها

لاحظ بأننا لم نقم بإضافة أي جديد في دالة ‘setup’ لتعريف حالة المنفذ للمدخل التناظري.

في دالة ‘loop’ نقوم بقراءة القيمة التناظرية “Analog value” بالطريقة التالية

القيمة التماثلية التي سوف تخزن في المتغير sensorValue سوف تكون من 0 الى 1023 وذلك لان الاردوينو يستخدم 10  بت في ال adc  وسوف نستحدم امر map لتحويل القيمة من 0 الى 255  وتخزينها في المتغير outputValue بالطريقة التالية:

واخير سوف نغير الطاقة على منفذ الليد و نقوم بطباعة القيمة على الserial menitor