Подключение MCP4725 к Arduino

26-02-2020, 18:44 0 комментариев
В данном материале мы познакомимся с популярным цифрово-аналоговым преобразователем MCP4725, его техническими характеристиками и схемой подключения к Ардуино. Подобные внешние модули являются отличным решением для создания тех проектов, где необходимо преобразовать цифровой сигнал в аналоговый.

Особую популярность приобрели подобные устройства в современных системах автоматического управления и конструирования девайсов по калибровке датчиков. Они достаточно бюджетны и функциональны, не требуют внешнего опорного напряжения, имеют интегрированную энергонезависимую память (EEPROM), легки в сборке. Прежде чем рассмотреть последний пункт, обозначим базовые параметры модуля:
  • напряжение питания: 2.7 — 5.5V;
  • мощность: 0.06 (минимальная), тип. 210 мкА, 400 мкА (максимальная);
  • рабочий ток: <0,2 мА;
  • разрешение: 12-разрядное;
  • тип интерфейса: I2C;
  • диапазон рабочих температур: -40 °C — +125 °C;
  • 2 режима выключения питания (нормальный ∕ выключенный);
  • габаритные размеры: 15х15 мм;
  • вес: 13-14 г.
Распиновка ЦАП выглядит следующим образом:


 
Теперь рассмотрим подключение MCP4725 к Arduino. Можно использовать такой вариант:

В нем мы задействовали такие аппаратные компоненты как: плата расширения Ардуино Uno, модуль ЦАП, соединительные провода, USB-кабель для подключения к ноутбуку ∕ компьютеру.

Для проверки работоспособности и первоначального тестирования устройства, пропишем несложный программный код, т.е. скетч:
#include <Wire.h>
#include <Adafruit_MCP4725.h>
#include <LiquidCrystal.h>
#define MCP4725In A1
Adafruit_MCP4725 MCP4725;
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup()
{
    delay(1000);
    lcd.begin(16,2);
    MCP4725.begin(0x60);

    // Считывание - требуемое значение
    lcd.setCursor(0,0);
    lcd.print("REQD: ");

    // Считывание - наблюдаемое значение
    lcd.setCursor(0,1);
    lcd.print("OBSD: ");
}

void loop()
{
    uint32_t MCP4725_value;
    int adcInput = 0;
    float voltageIn = 0;
    float MCP4725_reading;

    for (MCP4725_value = 0; MCP4725_value < 4096; MCP4725_value = MCP4725_value + 128)
    {
        delay(1000);
        MCP4725_reading = (5.0/4096.0) * MCP4725_value;
        MCP4725.setVoltage(MCP4725_value, false);
        
        adcInput = analogRead(MCP4725In);
        voltageIn = (adcInput * 5.0 )/ 1024.0;
        
        lcd.setCursor(7,0);
        lcd.print(MCP4725_reading,3);
        lcd.setCursor(7,1);
        lcd.print(voltageIn,3);
    }
}
Наверняка вы заметили, что в описанной выше прошивке использовались сразу несколько специализированных библиотек: Wire (для управления интерфейсом), Adafruit_MCP4725 (для считывания значений), LiquidCrystal (для вывода информации на дисплей). Их нужно скачать и инсталлировать в среду IDE (папка libraries).https://github.com/adafruit/Adafruit_MCP4725

На этом пока всё. Изучайте Arduino, собирайте интересные проекты и развивайтесь в свое удовольствие!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

В данном материале хотим рассмотреть подключение HC-SR501 к Ардуино, а также основные моменты, связанные с базовыми характеристиками и особенностями...

Наш новый информационный обзор посвящен подключению AD9833 к Ардуино. Мы постараемся рассмотреть базовые особенности устройства, его преимущества и схему...

В этой статье обсуждаем подключение датчика температуры DS18B20 к Arduino. О подобных устройствах мы говорили мало, но это не означает, что их редко...

DRV8825 - один из самых популярных контроллеров биполярного шагового двигателя. Сегодня мы рассмотрим его базовые параметры и познакомимся со схемой...

Сегодня мы с вами рассмотрим универсальный синтезатор частоты на Ардуино и Si5351A. Чем он так хорош (среди своих аналогов) и как подключается к программной...

Оставить комментарий