پروژه الکترونیکپروژه های پایتونپروژه های رزبری پای

راه اندازی مبدل دیجیتال به آنالوگ 12 بیت با رزبری پای

سلام. راه اندازی دیجیتال به آنالوگ 12 بیت با رزبری پای و MCP4725 را آماده کردیم.

راه اندازی Digital به Analog با Raspberry pi

میکروکنترلرها فقط با مقادیر دیجیتال کار می کنند اما در دنیای واقعی ما باید با سیگنال های آنالوگ کار کنیم. به همین دلیل ADC (مبدل های آنالوگ به دیجیتال) برای تبدیل مقادیر آنالوگ در دنیای واقعی به فرم دیجیتال وجود دارند تا میکروکنترلرها بتوانند سیگنال ها را پردازش کنند. اما اگر به سیگنالآنالوگ از مقادیر دیجیتال نیاز داشته باشیم باید از DAC ها یا مبدل های دیجیتال به آنالوگ استفاده کنیم.

راه اندازی Digital به Analog با Raspberry pi

DAC را می توان در بسیاری از برنامه ها مانند کنترل موتور ، کنترل روشنایی چراغ های ال ای دی، تقویت کننده صوتی ، انکدر ویدیویی ، سیستمهای اکتساب داده و … استفاده کرد.

فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.

ما قبلا ماژول دیجیتال به آنالوگ MCP4725 با استفاده از STM32 را راه اندازی کرده ایم. امروز ما از همین قطعه برای طراحی مبدل دیجیتال به آنالوگ با استفاده از Raspberry pi استفاده خواهیم کرد. فرض بر این است که شما آخرین سیستم عامل را بر روی Raspberry PI خود نصب کرده اید و از طریق SSH به آن دسترسی دارید.

پین های I2C در رزبری پای

به منظور استفاده از MCP4725 با Raspberry Pi ، اولین کاری که باید انجام دهید ، دانستن پین های پورت I2C در رزبری پای و پیکربندی پورت I2C در Raspberry pi است.  پین های I2C GPIO2 (SDA) و GPIO3 (SCL) در این آموزش استفاده شده است.

پیکربندی I2C در Raspberry Pi

به طور پیش فرض ، I2C در Raspberry Pi غیرفعال است. بنابراین ابتدا باید فعال شود. برای فعال کردن I2C در رزبری پای مراحل زیر را طی کنید.

1. به ترمینال بروید و sudo raspi-config را تایپ کنید.

2. اکنون تنظیمات نرم افزار Raspberry Pi ظاهر می شود.

3. گزینه Interfacing را انتخاب کنید و سپس I2C را فعال کنید.

پیکربندی I2C در Raspberry Pi

4. پس از فعال کردن I2C رزبری پای را ریستارت کنید.

اسکن آدرس I2C MCP4725 با Raspberry Pi

حال برای شروع ارتباط با MCP4725 IC ،باید آدرس I2C برد Raspberry Pi را بدانیم. برای یافتن آدرس ابتدا پین SDA و SCL MCP4725 را به پین ​​SDA و SCL رزبری پای متصل کنید. همچنین پین های +5V و GND را وصل کنید.

اکنون ترمینال را باز کرده و فرمان زیر را تایپ کنید تا آدرس دستگاه I2C متصل را بدانید،

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.
sudo i2cdetect –y 1 or sudo i2cdetect –y 0

پس از پیدا کردن آدرس I2C ، اکنون زمان آن رسیده است که کتابخانه های لازم جهت استفاده از MCP4725 با Raspberry Pi را نصب کنید.

حتما ببینید :  ارسال و دریافت SMS با میکروکنترلر STM32 و ماژول Sim800

نصب كتابخانه MCP4725 Adafruit در رزبری پای

به منظور استفاده از MCP4725 DAC در رزبری پای، از کتابخانه Adafruit MCP4725 استفاده شده است. برای بارگیری و نصب کتابخانه این مراحل را دنبال کنید:

1. اطمینان حاصل کنید که Raspberry Pi به یک اینترنت فعال وصل شده است.

2. بعد ترمینال را باز کنید و خطوط زیر را یک به یک اجرا کنید.

sudo apt-get install git build-essential python-dev
git clone https://github.com/adafruit/Adafruit_Python_MCP4725.git
cd Adafruit_Python_MCP4725
sudo python setup.py install

3. پس از نصب موفقیت آمیز ، اکنون کتابخانه Adafruit MCP4725 می تواند با استفاده از خط ، در هر اسکریپت پایتون وارد شود.

Import Adafruit_MCP4725

نصب کتابخانه نمایشگر Adafruit LCD

از LCD در این پروژه برای نمایش مقادیر DAC و ولتاژ آنالوگ استفاده می شود ، بنابراین برای بارگیری و نصب کتابخانه LCD در Raspberry Pi این مراحل را دنبال کنید:

1. پنجره ترمینال را باز کنید و خطوط زیر را یک به یک اجرا کنید.

apt-get install git
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git
cd Adafruit_Python_CharLCD
sudo python setup.py install

2. پس از نصب كتابخانه LCD ، اکنون Adafruit_python_CharLCD در هر نوع اسكریپت پایتون با استفاده از خط زیر قابل استفاده است.

import Adafruit_CharLCD as LCD​

مبدل دیجیتال به آنالوگ MCP4725

MCP4725 IC یک ماژول مبدل دیجیتال 12 بیتی به آنالوگ است که برای تولید ولتاژ آنالوگ خروجی از (0 تا 5 ولت) استفاده می شود و با استفاده از ارتباط I2C کنترل می شود. همچنین با حافظه  EEPROM همراه است.

این آی سی دارای وضوح 12 بیتی است. این بدان معنی است که ما از (0 تا 4096) به عنوان ورودی استفاده می کنیم تا خروجی ولتاژ را با توجه به ولتاژ مرجع تأمین کنیم. حداکثر ولتاژ مرجع 5 ولت است.

فرمول برای محاسبه ولتاژ خروجی

فرمول زیر برای محاسبه ولتاژ خروجی استفاده میشود.

ولتاژ خروجی = (ولتاژ مرجع / وضوح ) * مقدار دیجیتال

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

به عنوان مثال اگر ما از 5 ولت به عنوان ولتاژ مرجع استفاده می کنیم و فرض می کنیم مقدار دیجیتال 2048 است. بنابراین برای محاسبه خروجی DAC داریم :

O/P Voltage = (5/ 4096) x 2048 = 2.5V

پین های MCP4725

در زیر تصویر MCP4725 با نام های پین به وضوح نشان داده شده است.

پین های MCP4725

پین های MCP4725عملکرد
OUTولتاژ آنالوگ خروجی
GNDGND برای خروجی
SCLسریال ساعت I2C
SDAسریال داده I2C
VCCولتاژ مرجع (5 یا 3.3 ولت)
GNDGND برای ورودی

این IC دیجیتال به آنالوگ با استفاده از ارتباطات I2C با هر میکروکنترلری قابل ارتباط است. ارتباط I2C فقط به دو سیم SCL و SDA نیاز دارد. به طور پیش فرض ، آدرس I2C برای MCP4725 برابر با 0x60 است.

اکنون Raspberry Pi آماده کدگذاری مبدل دیجیتال به آنالوگ است ، بنابراین اجازه دهید مدار را وصل کنیم.

مدار پروژه دیجیتال به آنالوگ با رزبری پای

شماتیک مدار برای پروژه راه اندازی DAC IC MCP4725 با Raspberry Pi در تصویر زیر آورده شده است.

مدار پروژه دیجیتال به آنالوگ با رزبری پای

اتصالات بین 16×2 LCD و Raspberry Pi

LCDRaspberry Pi 3 B+
VSSGND
VDD+5V
V0پتانسیومتر
RSGPIO25
RWGND
EGPIO24
D4GPIO23
D5GPIO17
D6GPIO18
D7GPIO22
A+5V
KGND

اتصالات بین MCP4725 و رزبری پای

MCP4725Raspberry Pi 3 B+مولتی متر
GNDGNDمیله منفی
VCC+5V
SDAGPIO2 (SDA)
SCLGPIO3 (SCL)
OUTمیله مثبت
حتما ببینید :  پروژه شناسایی چهره با OpenCV و رزبری پای + فیلم عملکرد

قطعات مورد نیاز

  1. برد رزبری پای 3
  2. IC دیجیتال به آنالوگ MCP4725
  3. ال سی دی کاراکتری 16*2
  4. پتانسیومتر 10 کیلو اهم

برنامه نویسی Raspberry Pi برای تبدیل دیجیتال به آنالوگ

کد کامل پایتون برای Raspberry Pi در پایان صفحه آورده شده است. در اینجا بعضی از قسمت های کد را بررسی میکنیم.

در این برنامه مقدار دیجیتالی 0-4096 از رزبری پای به MCP4725 از طریق I2C ارسال می شود تا ولتاژ خروجی آنالوگ از 0 تا 5 ولت را تولید کند که با مولتی متر تأیید می شود. مقادیر دیجیتال و آنالوگ هر دو در LCD 16×2 نمایش داده می شوند. در برنامه ما مقدار دیجیتالی هر بار 150 عدد افزایش پیدا میکند (0،150،300،450…4050).

در ابتدای کد ما کتابخانه های مورد نیاز را فراخوانی میکنیم. در اینجا از کتابخانه LCD ، MCP4725 و زمان استفاده می شود.

import Adafruit_CharLCD as LCD   
import Adafruit_MCP4725
import time

سپس پین های LCD را با شماره تعریف میکنیم. سطر و ستون می دانیم LCD دارای 2 ردیف و 16 ستون است. در مورد اتصال LCD کاراکتری به رزبری پای اطلاعات بیشتری کسب کنید.

lcd_rs        = 25
lcd_en        = 24
lcd_d4        = 23
lcd_d5        = 17
lcd_d6        = 18
lcd_d7        = 22
lcd_backlight = 4

# تعریف ستون و ردیف ال سی دی
lcd_columns = 16
lcd_rows    = 2
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7,lcd_columns, lcd_rows, lcd_backlight)

در مرحله بعد پیام مقدمه را به مدت پنج ثانیه روی LCD نمایش میدهیم.

lcd.message('Irenx')
time.sleep(2.0)
lcd.message('\nDAC using Rpi')
time.sleep(5.0)
lcd.clear()

در خط بعدی ، یک نمونه DAC با آدرس I2C از MCP4725 ایجاد می شود. برای من آدرس 0x60 است، آن را مطابق شرایط خود تغییر دهید.

dac = Adafruit_MCP4725.MCP4725(address=0x60)

برای تغییر مقدار دیجیتالی x که از طریق I2C به MCP4725 ارسال می شود از while loop استفاده می شود. دامنه حلقه (0,4095,150) است. مقادیر x از 0 تا 4050 با افزایش 150 متغیر است.

while True:
    for x in range(0,4097,150):

مقدار دیجیتال با استفاده از خط زیر به MCP4725 ارسال می شود.

dac.set_voltage(x)

بسته به مقدار دیجیتال ، مقدار آنالوگ با استفاده از فرمول زیر محاسبه می شود. 5 ولتاژ مرجع و x مقدار دیجیتالی است.

voltage = x/4096.0*5.0

سپس مقدار دیجیتال و مقدار آنالوگ با تاخیر 2 ثانیه ای با استفاده از خطوط زیر روی LCD نمایش داده می شوند.

           lcd.cursor_pos = (0,0)
           lcd.message("DAC Value: " + str(x))
           lcd.message("\nAnalogVolt: %.2f" % voltage)
           time.sleep(2)

فیلم عملکرد دیجیتال به آنالوگ

در اینجا مقدار دیجیتال در ردیف اول و مقدار آنالوگ در ردیف دوم LCD نشان داده شده میشود. یک مولتی متر نیز برای تأیید ولتاژ آنالوگ به پین ​​های خروجی MCP4725 متصل شده است. فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

دانلود فیلم پروژه دیجیتال به آنالوگ رزبری پای

موارد موجود در فایل : سورس کامل ، شماتیک

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
برچسب ها

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن