- المكونات المطلوبة
- وحدة PCF8591 ADC / DAC
- دبابيس I2C في Raspberry Pi
- ربط وحدة PCF8591 ADC / DAC مع Raspberry Pi
- برنامج Python للتحويل التناظري إلى الرقمي (ADC)
يعد التحويل التناظري إلى الرقمي مهمة مهمة للغاية في الإلكترونيات المضمنة ، حيث توفر معظم المستشعرات مخرجات كقيم تناظرية ولإدخالها في متحكم دقيق لا يفهم سوى القيم الثنائية ، يتعين علينا تحويلها إلى قيم رقمية. حتى تتمكن من معالجة البيانات التناظرية ، تحتاج المتحكمات الدقيقة إلى المحول التناظري إلى الرقمي.
تحتوي بعض وحدات التحكم الدقيقة على 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 مع Raspberry Pi.
المكونات المطلوبة
- فطيرة التوت
- وحدة PCF8591 ADC
- 100 كيلو وعاء
- كابلات العبور
من المفترض أن يكون لديك Raspberry Pi مع أحدث نظام تشغيل Raspbian مثبت فيه وأنت تعرف كيفية SSH في Pi باستخدام برنامج طرفي مثل المعجون. إذا كنت جديدًا على Raspberry Pi ، فاتبع هذه المقالة لتبدأ مع Raspberry Pi. إذا كنت تواجه أي مشكلة ، فهناك الكثير من دروس Raspberry Pi التعليمية التي يمكن أن تساعدك.
وحدة PCF8591 ADC / DAC
PCF8591 عبارة عن وحدة محول تناظري 8 بت إلى رقمي أو وحدة محول تناظري 8 بت ، مما يعني أن كل دبوس يمكنه قراءة القيم التناظرية حتى 256. تحتوي هذه الوحدة على أربعة مدخلات تناظرية ومخرج تناظري واحد. إنه يعمل على اتصال I 2 C ، لذلك هناك دبابيس SCL و SDA للساعة التسلسلية وعنوان البيانات التسلسلية. يتطلب جهد إمداد 2.5-6 فولت وله تيار احتياطي منخفض. يمكننا أيضًا معالجة جهد الدخل عن طريق ضبط مقبض مقياس الجهد على الوحدة. يوجد أيضًا ثلاثة وصلات عبور على السبورة. J4 متصل لتحديد دائرة الوصول إلى الثرمستور ، J5 متصل لتحديد دائرة الوصول إلى المقاوم LDR / الصورةو J6 متصل لتحديد دائرة الوصول للجهد القابل للتعديل. يوجد مصباحان LED على اللوحة D1 و D2- D1 يوضحان شدة جهد الخرج ويظهر D2 شدة جهد الإمداد. كلما زاد الجهد الناتج أو العرض ، زادت شدة LED D1 أو D2. يمكنك أيضًا اختبار مصابيح LED هذه باستخدام مقياس جهد على VCC أو على دبوس AOUT.
دبابيس I2C في Raspberry Pi
من أجل استخدام PCF8591 مع Raspberry Pi ، فإن أول شيء يجب فعله هو معرفة دبابيس منفذ Raspberry Pi I2C وتكوين منفذ I2C في Raspberry Pi.
يوجد أدناه مخطط Pin لـ Raspberry Pi 3 Model B + ، ويتم استخدام دبابيس I2C GPIO2 (SDA) و GPIO3 (SCL) في هذا البرنامج التعليمي.
تكوين I2C في Raspberry Pi
افتراضيًا ، يتم تعطيل I2C في Raspberry Pi. لذلك يجب أولاً تمكينه. لتمكين I2C في Raspberry Pi
1. اذهب إلى المحطة واكتب sudo raspi-config.
2. تظهر الآن أداة تكوين برنامج Raspberry Pi.
3. حدد خيارات Interfacing ثم قم بتمكين I2C.
4. بعد تمكين I2C ، أعد تشغيل Pi.
مسح I2C لعنوان PCF8591 باستخدام Raspberry Pi
الآن لبدء الاتصال بـ PCF8591 IC ، يجب أن يعرف Raspberry Pi عنوان I2C الخاص به. للعثور على العنوان ، قم أولاً بتوصيل دبوس SDA و SCL الخاص بـ PCF8591 بمسمار SDA و SCL الخاص بـ Raspberry Pi. قم أيضًا بتوصيل دبابيس + 5V و GND.
افتح الآن Terminal واكتب الأمر أدناه لمعرفة عنوان جهاز I2C المتصل ،
sudo i2cdetect –y 1 أو sudo i2cdetect –y 0
بعد العثور على عنوان I2C حان الوقت الآن لبناء الدائرة وتثبيت المكتبات اللازمة لاستخدام PCF8591 مع Raspberry Pi.
ربط وحدة PCF8591 ADC / DAC مع Raspberry Pi
مخطط الدائرة للتواصل بين PCF8591 و Raspberry Pi بسيط. في مثال التفاعل هذا ، سنقرأ القيم التناظرية من أي من المسامير التناظرية ونعرضها على محطة Raspberry Pi. يمكننا تغيير القيم باستخدام وعاء 100 ألف.
قم بتوصيل VCC و GND بـ GPIO2 و GPIO الخاصين بـ Raspberry Pi. بعد ذلك ، قم بتوصيل SDA و SCL بـ GPIO3 و GPIO5 على التوالي. أخيرًا ، قم بتوصيل وعاء 100K بـ AIN0. يمكنك أيضًا إضافة شاشة LCD مقاس 16 × 2 لعرض قيم ADC بدلاً من عرضها على الجهاز. تعرف على المزيد حول توصيل شاشة LCD مقاس 16 × 2 مع Raspberry Pi هنا.
برنامج Python للتحويل التناظري إلى الرقمي (ADC)
يتم تقديم البرنامج الكامل وفيديو العمل في نهاية هذا البرنامج التعليمي.
أولاً ، قم باستيراد مكتبة smbus لاتصالات ناقل I 2 C ومكتبة الوقت لإعطاء وقت سكون بين طباعة القيمة.
استيراد وقت استيراد smbus
الآن حدد بعض المتغيرات. يحتوي المتغير الأول على عنوان ناقل I 2 C ويحتوي المتغير الثاني على عنوان دبوس الإدخال التمثيلي الأول.
العنوان = 0x48 A0 = 0x40
بعد ذلك ، قمنا بعمل كائن للدالة SMBus (1) لمكتبة smbus
الحافلة = smbus.SMBus (1)
الآن ، بينما يخبر السطر الأول IC بإجراء القياس التناظري عند أول دبوس إدخال تناظري. يخزن السطر الثاني العنوان الذي تمت قراءته عند الطرف التمثيلي بقيمة متغيرة. أخيرًا اطبع القيمة.
بينما صحيح: bus.write_byte (العنوان ، A0) القيمة = bus.read_byte (العنوان) print (value) time.sleep (0.1)
الآن أخيرًا احفظ كود python في ملف ما مع إدخال.py وقم بتشغيل الكود في محطة raspberry Pi باستخدام الأمر أدناه "
python filename.py
قبل تشغيل الكود ، تأكد من أنك قمت بتمكين اتصال I 2 C وأن جميع المسامير متصلة كما هو موضح في الرسم التخطيطي ، وإلا فسوف تظهر أخطاء. يجب أن تبدأ القيم التناظرية في الظهور على الجهاز كما هو موضح أدناه. اضبط مقبض القدر ، وسترى التغيير التدريجي في القيم. تعرف على المزيد حول تشغيل البرنامج في
أكمل كود و فيديو بيثون أدناه.