قبل بضع سنوات ، كانت الأجهزة الإلكترونية التي نستخدمها اليوم مثل الهواتف وأجهزة الكمبيوتر وأجهزة التلفزيون وما إلى ذلك تمثيلية بطبيعتها. ثم تم استبدال الهواتف الأرضية ببطء بالهواتف المحمولة الحديثة ، وتم استبدال أجهزة تلفزيون وشاشات CRT بشاشات LED ، وتطورت أجهزة الكمبيوتر ذات الأنابيب المفرغة لتكون أكثر قوة باستخدام المعالجات الدقيقة ووحدات التحكم الدقيقة بداخلها وما إلى ذلك ..

 

في عصرنا الرقمي اليوم ، جميعنا محاطون بالأجهزة الإلكترونية الرقمية المتقدمة ، وهذا قد يخدعنا أن نعتقد أن كل شيء من حولنا رقمي بطبيعته ، وهذا غير صحيح. لطالما كان العالم تمثيليًا في الطبيعة ، على سبيل المثال ، كل ما نشعر به البشر ونختبره مثل السرعة ودرجة الحرارة وسرعة الهواء وضوء الشمس والصوت وما إلى ذلك ، هو تمثيلي في الطبيعة. لكن أجهزتنا الإلكترونية التي تعمل على ميكروكنترولر والمعالجات الدقيقة لا يمكنها قراءة / تفسير هذه القيم التناظرية مباشرة لأنها تعمل فقط على 0 و 1. لذلك نحن بحاجة إلى شيء يحول كل هذه القيم التناظرية إلى 0 و 1 حتى يتمكن المتحكمون الدقيقون والمعالجات الدقيقة لدينا من فهمها. وهذا ما يسمى المحولات التناظرية الى الرقمية أو ADC لفترة قصيرة. في هذه المقالة سوف نتعلم كل شيء عن ADC وكيفية استخدامها.

 

ما هو ADC وكيف يتم استخدامه؟

كما ذكر سابقًا ، تعني ADC التحويل التناظري إلى الرقمي ، ويتم استخدامه لتحويل القيم التناظرية من العالم الواقعي إلى قيم رقمية مثل 1 و 0. فما هي هذه القيم التناظرية؟

هذه هي التي نراها في حياتنا اليومية مثل درجة الحرارة والسرعة والسطوع وما إلى ذلك ولكن انتظر! هل يمكن ADC تحويل درجة الحرارة والسرعة مباشرة إلى قيم رقمية مثل 0 و 1؟
بالتأكيد لا. يمكن ADC فقط تحويل قيم الجهد التناظرية إلى قيم رقمية. إذاً أي معلمة نرغب في قياسها ، ينبغي تحويلها إلى جهد أولاً ، ويمكن إجراء هذا التحويل بمساعدة المستشعرات. على سبيل المثال ، لتحويل قيم درجة الحرارة إلى جهد ، يمكننا استخدام مقياس حراري بالمثل لتحويل السطوع إلى جهد يمكننا استخدام LDR. بمجرد تحويله إلى جهد ، يمكننا قراءته بمساعدة ADC. لمعرفة كيفية استخدام ADC ، يجب أولاً أن نتعرف على بعض المصطلحات الأساسية مثل دقة القنوات والمدى والجهد المرجعي وما إلى ذلك.

 

القرار (بت) والقنوات في ADC

عند قراءة مواصفات أي متحكم أو ADC IC ، سيتم تقديم تفاصيل ADC باستخدام قنوات القنوات والقرار (البتات). على سبيل المثال ، يحتوي ATmega328 من Arduino UNO على وحدة ADC ذات 8 قنوات من 10 بتات. ليس كل دبوس على متحكم يمكنه قراءة الجهد التناظري ، المصطلح 8 قنوات يعني أن هناك 8 دبابيس على متحكم ATmega328 هذا يمكنه قراءة الجهد التناظري ويمكن لكل دبوس قراءة الجهد بقرار 10 بت. هذا سوف يختلف لأنواع مختلفة من ميكروكنترولر.

دعنا نفترض أن نطاق ADC الخاص بنا يتراوح من 0V إلى 5V ولدينا ADC 10 بت وهذا يعني أن جهد الدخل من 0-5 فولت سيتم تقسيمه إلى 1024 مستوى من القيم التناظرية المنفصلة (210 = 1024). المعنى هو 1024 دقة ADC 10 بت ، وبالمثل لقرار ADC 8 بت سيكون 512 (28) ولقرار ADC 16 بت سيكون 65536 (216).

مع هذا ، إذا كان الجهد الكهربي للإدخال الفعلي هو 0V ، فإن ADC الخاص بـ MCU سوف يقرأها كـ 0 وإذا كان 5V ، فإن MCU ستقرأ 1024 وإذا كان في مكان ما بين 2.5V ثم سوف تقرأ MCU 512. يمكننا استخدام الصيغ أدناه لحساب القيمة الرقمية التي ستتم قراءتها بواسطة وحدة MCU بناءً على قرار ADC والجهد التشغيلي.

 

الجهد المرجعي ل ADC

المصطلح المهم الآخر الذي يجب أن تكون على دراية به هو الجهد المرجعي. أثناء تحويل ADC ، يتم العثور على قيمة الجهد غير المعروف من خلال مقارنتها بجهد معروف ، وهذا ما يسمى الجهد المعروف باسم الجهد المرجعي. عادةً ما يكون لدى كل وحدة MCU خيار لتعيين الجهد المرجعي الداخلي ، مما يعني أنه يمكنك ضبط هذا الجهد داخليًا على بعض القيمة المتاحة باستخدام برنامج (برنامج). في لوحة Arduino UNO ، يتم ضبط الجهد المرجعي على 5 فولت افتراضيًا داخليًا ، إذا كان المستخدم المطلوب يمكنه ضبط هذا الجهد المرجعي خارجيًا من خلال دبوس Vref أيضًا بعد إجراء التغييرات المطلوبة في البرنامج.

تذكر دائمًا أن قيمة الجهد التمثيلي المقاسة يجب أن تكون دائمًا أقل من قيمة الجهد المرجعي وأن تكون قيمة الجهد المرجعي دائمًا أقل من قيمة جهد التشغيل لجهاز التحكم الدقيق.

 

مثال

نحن هنا نأخذ مثالا على ADC التي لديها دقة 3 بت والجهد المرجعي 2V. لذلك يمكن تعيين الجهد التناظري 0-2 فولت مع 8 (23) مستويات مختلفة ، كما هو موضح في الصورة أدناه:

 

إذا كان الجهد التناظري هو 0.25 فإن القيمة الرقمية ستكون 1 في العشرية و 001 بالثنائي. وبالمثل ، إذا كان الجهد التناظري 0.5 ، فستكون القيمة الرقمية 2 بعشري و 010 بالثنائي.
يحتوي بعض المتحكم الدقيق على ADC مثل Arduino ، و MSP430 ، و PIC16F877A ، لكن بعض المتحكم لا يحتوي على مثل 8051 و Raspberry Pi وغيرها ، وعلينا استخدام بعض المرحلية الخارجية لمنافذ تحويل رقمي مثل ADC0804 و ADC0808.

 

أنواع ADC والعمل

هناك العديد من أنواع ADC ، وأكثرها شيوعًا هي Flash ADC و Dual Slope ADC والتقريب المتتابع و Dual Slope ADC. لشرح كيفية عمل كل من هذه ADC والفرق بينهما خارج نطاق هذه المقالة لأنها معقدة إلى حد ما. ولكن لإعطاء فكرة تقريبية ، لدى ADC مكثفًا داخليًا يتم شحنه بواسطة الجهد التماثلي الذي يتم قياسه. ثم نقيس قيمة الجهد عن طريق تفريغ المكثف خلال فترة زمنية.

 

بعض الأسئلة التي تنشأ عادة على ADC

كيفية قياس أكثر من 5V باستخدام ADC الخاص بي؟

كما ناقشنا سابقًا ، لا يمكن لوحدة ADC قياس قيمة الجهد أكثر من جهد التشغيل في المتحكم الدقيق. هذا هو متحكم 5V يمكن قياس فقط 5V بحد أقصى مع دبوس ADC لها. إذا كنت ترغب في قياس أي شيء أكثر من ذلك ، فأنت تريد قياس 0-12V ، ثم يمكنك تعيين 0-12V إلى 0-5V باستخدام دائرة مقسم أو مقسم جهد محتمل. ستستخدم هذه الدائرة زوجًا من المقاومات لتحديد قيم وحدة MCU. على سبيل المثال أعلاه ، يجب أن نستخدم المقاوم 1K و 720 أوم المقاوم في سلسلة لمصدر الجهد وقياس الجهد بين المقاومات على النحو الموضح في الرابط أعلاه.

 

كيفية تحويل القيم الرقمية من ADC إلى قيم الجهد الفعلي؟

عند استخدام محول ADC لقياس الجهد التماثلي ، ستكون النتيجة التي حصلت عليها وحدة MCU رقمية. على سبيل المثال ، في متحكم 10 فولت 5 فولت عندما يكون الجهد الفعلي المراد قياسه هو 4 فولت ، سوف تقرأه وحدة MCU كـ 820 ، ويمكننا مرة أخرى استخدام الصيغ التي تمت مناقشتها أعلاه لتحويل 820 إلى 4V حتى نتمكن من استخدامها في موقعنا العمليات الحسابية. يتيح عبر التحقق من نفسه.

 

(ADC Resolution / Operating Voltage) = (ADC Digital Value / Actual Voltage Value)
Actual Voltage Value = ADC Digital Value * (Operating Voltage / ADC Resolution)
= 820 * (5/1023)
= 4.007
= ~4V