نعلم جميعًا أن Microcontrollers لا تعمل إلا مع القيم الرقمية ولكن في العالم الواقعي علينا التعامل مع الإشارات التناظرية. هذا هو السبب في وجود ADC (محولات التناظرية إلى الرقمية) لتحويل قيم النظير في العالم الحقيقي إلى شكل رقمي حتى تتمكن المتحكمات الدقيقة من معالجة الإشارات. ولكن ماذا لو احتجنا إلى إشارات تناظرية من القيم الرقمية ، لذلك يأتي هنا DAC (محول رقمي إلى تناظري).

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

يمكن استخدام DAC في العديد من التطبيقات مثل التحكم في المحركات ، وسطوع التحكم في مصابيح LED ، ومكبر الصوت ، وأجهزة تشفير الفيديو ، وأنظمة الحصول على البيانات ، إلخ.

في العديد من ميكروكنترولر هناك DAC الداخلية التي يمكن استخدامها لإنتاج الناتج التناظرية. لكن معالجات Arduino مثل ATmega328 / ATmega168 لا تحتوي على DAC. يحتوي Arduino على ميزة ADC (محول تناظري رقمي) ولكن لا يحتوي على DAC (محول رقمي إلى تناظري). يحتوي على DAC 10 بت في ADC داخلي ولكن لا يمكن استخدام DAC هذا كقائمة بذاتها. حتى هنا في هذا البرنامج التعليمي Arduino DAC ، نستخدم لوحة إضافية تسمى MCP4725 DAC Module مع Arduino.

 

وحدة DAC MCP4725 (محول رقمي إلى تناظري)

MCP4725 IC عبارة عن وحدة تحويل رقمي تناظري 12 بت والتي يتم استخدامها لتوليد جهد إخراج تمثيلي من (0 إلى 5 فولت) ويتم التحكم فيه باستخدام اتصال الدوائر المتكاملة I2C. كما يأتي مع ذاكرة غير متطايرة EEPROM. هذا IC لديه قرار 12 بت. هذا يعني أننا نستخدم (0 إلى 4096) كمدخلات لتوفير خرج الجهد فيما يتعلق بالجهد المرجعي. الجهد المرجعي الأقصى هو 5V.

صيغة لحساب الجهد الناتج

O/P Voltage = (Reference Voltage / Resolution) x Digital Value

 

دبابيس MCP4725

يوجد أدناه صورة MCP4725 مع الإشارة بوضوح إلى أسماء الدبوس.

  • OUT: النواتج الجهد التناظرية
  • GND: GND للإخراج
  • SCL: اتصال الدوائر المتكاملة (serial clock line) I2C
  • SDAاتصال الدوائر المتكاملة (serial data line) I2C
  • VCC: المدخلات المرجعية الجهد 5V أو 3.3V
  • GND: GND للمدخلات

 

اتصالات I2C في MCP4725 DAC

يمكن ربط DAC IC مع أي متحكم باستخدام اتصال I2C. يتطلب اتصال I2C سلكين فقط SCL و SDA. بشكل افتراضي ، يكون عنوان I2C لـ MCP4725 هو 0x60 أو 0x61 أو 0x62. بالنسبة لي 0x61 لها. باستخدام ناقل I2C ، يمكننا توصيل عدة MCP4725 DAC IC. الشيء الوحيد هو أننا بحاجة إلى تغيير عنوان I2C IC. تم شرح اتصال I2C في الأردوينو بالفعل بالتفصيل في البرنامج التعليمي السابق.

 

في هذا البرنامج التعليمي ، سوف نقوم بتوصيل MCP4725 DAC IC مع Arduino Uno ونوفر قيمة إدخال تمثيلية إلى Arduino pin A0 باستخدام مقياس الجهد. ثم سيتم استخدام ADC لتحويل القيمة التناظرية إلى شكل رقمي. بعد ذلك يتم إرسال هذه القيم الرقمية إلى MCP4725 عبر ناقل I2C لتحويلها إلى إشارات تمثيلية باستخدام DAC MCP4725 IC. يستخدم Arduino pin A1 للتحقق من الناتج التمثيلي لـ MCP4725 من طرف OUT وأخيراً عرض كل من قيم ADC و DAC والجهد في شاشة LCD مقاس 16 × 2.

 

القطع المطلوبة

  • اردوينو نانو / اردوينو اونو
  • شاشة عرض LCD مقاس 16 × 2
  • MCP4725 DAC IC
  • الجهد 10k
  • اللوح
  • أسلاك العبور

 

التوصيل

 

يتم استخدام مقياس الجهد مع دبوس مركز متصل المدخلات التناظرية A0 من اردوينو نانو ، دبوس الأيسر متصلا GND ومعظم دبوس متصل إلى 5V من اردوينو.

 

انقر هنا لتحميل التعليمات البرمجية.

 

بعد الانتهاء من جميع توصيلات الدوائر وتحميل الكود في Arduino ، قم بتغيير الجهد وشاهد الإخراج على شاشة LCD. سيُظهر السطر الأول من شاشة LCD القيمة والجهد المدخلة DAC ، بينما يعرض الخط الثاني القيمة والجهد الناتج عن DAC.

 

 

يمكنك أيضًا التحقق من جهد الخرج عن طريق توصيل جهاز قياس متعدد إلى دبوس OUT و GND الخاص بـ MCP4725.