يعد التحويل التناظري إلى الرقمي مهمة مهمة للغاية في الإلكترونيات المضمنة ، حيث توفر معظم المستشعرات مخرجات كقيم تناظرية ولإدخالها في متحكم دقيق لا يفهم سوى القيم الثنائية ، يتعين علينا تحويلها إلى قيم رقمية. حتى تتمكن من معالجة البيانات التناظرية ، تحتاج المتحكمات الدقيقة إلى المحول التناظري إلى الرقمي.
تحتوي بعض وحدات التحكم الدقيقة على ADC يحمل في ثناياه عوامل مثل Arduino و MSP430 و PIC16F877A ولكن بعض وحدات التحكم الدقيقة لا تحتوي عليها مثل 8051 و Raspberry Pi وما إلى ذلك ، وعلينا استخدام بعض المحولات الخارجية التناظرية إلى الرقمية المرحلية مثل ADC0804 و ADC0808. أدناه يمكنك العثور على أمثلة مختلفة من ADC مع ميكروكنترولر مختلفة:
- كيفية استخدام ADC في Arduino Uno؟
- دروس Raspberry Pi ADC
- ربط ADC0808 مع متحكم 8051
- 0-25 فولت الفولتميتر الرقمي باستخدام متحكم AVR
- كيفية استخدام ADC في STM32F103C8
- كيفية استخدام ADC في MSP430G2
- كيفية استخدام ADC في ARM7 LPC2148
- استخدام وحدة ADC لوحدة التحكم الدقيقة PIC مع MPLAB و XC8
في هذا البرنامج التعليمي ، سوف نتحقق من كيفية واجهة وحدة PCF8591 ADC / DAC مع Arduino.
المكونات المطلوبة
- اردوينو UNO
- وحدة PCF8591 ADC
- 100 كيلو وعاء
- كابلات العبور
وحدة PCF8591 ADC / DAC
PCF8591 عبارة عن وحدة محول تناظري 8 بت إلى رقمي أو وحدة محول تناظري 8 بت ، مما يعني أن كل دبوس يمكنه قراءة القيم التناظرية حتى 256. تحتوي هذه الوحدة على أربعة مدخلات تناظرية ومخرج تناظري واحد. إنه يعمل على اتصال I 2 C ، لذلك هناك دبابيس SCL و SDA للساعة التسلسلية وعنوان البيانات التسلسلية. يتطلب جهد إمداد 2.5-6 فولت وله تيار احتياطي منخفض. يمكننا أيضًا معالجة جهد الدخل عن طريق ضبط مقبض مقياس الجهد على الوحدة. يوجد أيضًا ثلاثة وصلات عبور على السبورة. J4 متصل لتحديد دائرة الوصول إلى الثرمستور ، J5 متصل لتحديد دائرة الوصول إلى المقاوم LDR / الصورة و J6 متصل لتحديد دائرة الوصول للجهد القابل للتعديل. للوصول إلى هذه الدوائر ، يجب عليك استخدام عناوين وصلات العبور هذه: 0x50 لـ J6 و 0x60 لـ J5 و 0x70 لـ J4. يوجد مصباحان LED على اللوحة D1 و D2- D1 يوضحان شدة جهد الخرج ويظهر D2 شدة جهد الإمداد. كلما زاد الجهد الناتج أو العرض ، زادت شدة LED D1 أو D2. يمكنك أيضًا اختبار مصابيح LED هذه باستخدام مقياس جهد على VCC أو على دبوس AOUT.
ربط وحدة PCF8591 ADC / DAC مع Arduino
يتم تقديم البرنامج الكامل وفيديو العمل في نهاية هذا البرنامج التعليمي.
أولاً ، نحتاج إلى تعريف المكتبة لاتصالات I 2 C وشاشة LCD.
#تضمن
ثم حدد بعض وحدات الماكرو. الماكرو الأول مخصص لتحديد عنوان ناقل البيانات لـ IC والماكرو الثاني لتحديد عنوان دبوس الإدخال الأول للوحدة النمطية ، حيث يتم إعطاء الإدخال من وعاء.
#define PCF8591 (0x90 >> 1) #define AIn0 0x00
بعد ذلك ، حدد توصيلات LCD مع Arduino وقم بتهيئة القيمة التي نحصل عليها عند الطرف التناظري.
const int rs = 12 ، en = 11 ، d4 = 5 ، d5 = 4 ، d6 = 3 ، d7 = 2 ؛ LiquidCrystal LCD (rs، en، d4، d5، d6، d7) ؛ قيمة int = 0 ؛
الآن ، دعنا نصل إلى وظيفة الإعداد . هنا ، في السطر الأول ، قمنا بتهيئة الاتصال I 2 C. وفي السطر الثاني ، قمنا بتهيئة شاشة LCD التي نطبع عليها القيم التناظرية. تعرف على المزيد حول توصيل شاشة LCD مقاس 16 × 2 مع Arduino هنا.
إعداد باطل () { Wire.begin () ؛ lcd.begin (16.2) ؛ }
في وظيفة الحلقة ، يكون السطر الأول هو بدء الإرسال ، أي أنه يبدأ في PCF8591. يخبر السطر الثاني IC بإجراء القياس التناظري عند أول دبوس إدخال تناظري. ينهي الخط الثالث الإرسال ويحصل الخط الرابع على البيانات المقاسة من الدبوس التناظري.
حلقة باطلة () { Wire.beginTransmission (PCF8591) ؛ Wire.write (AIn0) ؛ Wire.endTransmission () ؛ Wire.request From (PCF8591، 1) ؛
في الجزء التالي ، ضع القيمة المقروءة من الدبوس التمثيلي إلى متغير القيمة المحدد مسبقًا. وفي السطور التالية ، اطبع هذه القيمة على شاشة LCD.
القيمة = Wire.read () ؛ lcd.print ("قيمة ADC =") ؛ lcd.print (القيمة) ؛ تأخير (500) ؛ lcd.clear () ؛}
أخيرًا قم بتحميل الكود في Arduino وقم بتشغيله. ستبدأ القيم التناظرية في الظهور على شاشة LCD. اضبط مقبض القدر ، وسترى التغيير التدريجي في القيم.