آموزش راه اندازی ماژول PCF8591 (مبدل آنالوگ به دیجیتال و دیجیتال به آنالوگ) با آردوینو

نویسنده

دسته

فهرست مطالب

ویژگی های ماژول PCF8591

PCF8591 تراشه ی مبدل 8 بیتی آنالوگ به دیجیتال و دیجیتال به آنالوگ است. این تراشه دارای 4 کانال ورودی آنالوگ ، یک کانال خروجی آنالوگ و ارتباط I2C است . ماژولی که این تراشه بر روی آن قرار گرفته دارای 4 پین در سمت چپ می باشد، که شامل پین های تغذیه و پین های ارتباط I2C است. 8 پین سمت راست که 4 جامپر بر روی آن ها قرار گرفته نیز کار با سیگنال ها را برعهده دارند:

  •  AOUT : پورت خروجی DAC ماژول
  •  AIN3 : رابط آنالوگ سیگنال ورودی
  •  AIN2 : رابط آنالوگ سیگنال ورودی
  •  AIN1 : رابط آنالوگ سیگنال ورودی
  •  AIN0 : رابط آنالوگ سیگنال ورودی
  •  INPUT2 : پورت وروی سیگنال ترمیستور به آن متصل است
  •  INPUT1 : پورت ورودی سیگنال فوتورزیستور به آن متصل است
  •  INPUT0 : پورت ورودی سیگنال پتانسیومتر به آن متصل است

جهت دریافت دیتاشیت ماژول مبدل آنالوگ به دیجیتال و دیجیتال به آنالوگ PCF8591 اینجا کلیک کنید.

معرفی پایه ها (Pinout) ماژول PCF8591

ماژول PCF8591 دارای 4 پایه به شرح زیر است:

  •  VIN: تغذیه ماژول – 5 ولت
  •  GND: زمین
  •  SLC: همزمان سازی برای پروتکل I2C
  •  SDA: اطلاعات برای پروتکل I2C

پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

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

آردوینو UNO R3 × 1
ماژول AD/DA PCF8591 × 1
سیم جامپر نری به مادگی × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی ماژول PCF8591 با آردوینو

گام اول: سیم بندی

مطابق مدار زیر، ماژول را به آردوینو وصل کنید.

گام دوم: کد

ابتدا کتابخانه زیر را  بر آردوینوی خود نصب کنید. 

https://github.com/adafruit/Adafruit_PCF8591

توجه

اگر نیاز به راهنمایی بیشتر برای نصب کتابخانه بر روی آردوینو دارید، می توانید به آموزش نصب کتابخانه بر آردوینو مراجعه کنید.

کد زیر را روی برد آردوینوی خود آپلود کنید.
/*
  modified on Sep 23, 2020
  Modified by MohammedDamirchi from https://github.com/adafruit/Adafruit_PCF8591
  https://electropeak.com/learn/
*/



#include <Adafruit_PCF8591.h>
// Make sure that this is set to the value in volts of VCC
#define ADC_REFERENCE_VOLTAGE 5.0
Adafruit_PCF8591 pcf = Adafruit_PCF8591();

void setup() {
  Serial.begin(115200);
  while (!Serial)
    delay(10);

  Serial.println("# Adafruit PCF8591 demo");
  if (!pcf.begin()) {
    Serial.println("# Adafruit PCF8591 not found!");
    while (1)
      delay(10);
  }
  Serial.println("# Adafruit PCF8591 found");
  pcf.enableDAC(true);


}

uint8_t dac_counter = 0;

void loop() {
  // Make a triangle wave on the DAC output
  pcf.analogWrite(dac_counter);
  dac_counter = dac_counter + 10;
  Serial.print("AIN0: ");
  Serial.print(int_to_volts(pcf.analogRead(0), 8, ADC_REFERENCE_VOLTAGE));
  Serial.print("\t AIN1: ");
  Serial.print(int_to_volts(pcf.analogRead(1), 8, ADC_REFERENCE_VOLTAGE));
  Serial.print("\t AIN2: ");
  Serial.print(int_to_volts(pcf.analogRead(2), 8, ADC_REFERENCE_VOLTAGE));
  Serial.print("\t AIN3: ");
  Serial.print(int_to_volts(pcf.analogRead(3), 8, ADC_REFERENCE_VOLTAGE));

  Serial.println("");
  delay(3);
}
float int_to_volts(uint16_t dac_value, uint8_t bits, float logic_level) {
  return (((float)dac_value / ((1 << bits) - 1)) * logic_level);
} 

پس از آپلود کد، چیزی شبیه به تصویر زیر را در سریال مانیتور مشاهده می کنید.

از این مطلب خوشتان آمده؟

جدیدترین آموزش‌ها را از بهترین‌ها دریافت کنید

بیشتر بخوانید

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

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