MCP4725 DAC

Adafruit (плата), Microchip (MCP4725) · Adafruit MCP4725 12-bit DAC PID 935, STEMMA QT

Получение регулируемого аналогового напряжения из цифрового кода по I²C.

Автор: SLDV LAB

Опубликовано · Обновлено

СложностьСредне
Проекты с компонентом

О МОДУЛЕ

Что делает Adafruit MCP4725 12-bit DAC PID 935, STEMMA QT

MCP4725 формирует постоянное аналоговое напряжение, пропорциональное 12-битному коду. Опорой служит питание, поэтому точность и шум VIN непосредственно влияют на результат. Значение 4095 даёт идеальное напряжение VIN × 4095/4096, а не математически точное VIN.

Здесь используется Adafruit PID 935 со STEMMA QT. Его заводской адрес 0x62; A0 позволяет выбрать 0x63. У других MCP4725 заводские адресные биты могут отличаться, поэтому 0x60 или 0x62 не универсальны для всех плат. Проводной пример использует площадки, разъёмы STEMMA QT остаются свободными.

Внутренняя EEPROM может хранить стартовое значение, но имеет конечный ресурс. Для изменяющегося сигнала записывают только регистр DAC. Пример применяет Fast Write без EEPROM и выдаёт половину питания для проверки мультиметром. Начальное значение до первой команды может зависеть от ранее записанной EEPROM, поэтому чувствительную нагрузку до проверки не подключают. Выход предназначен для сигнала и высокоомной нагрузки, не для питания устройств; при необходимости нужен буфер.

Adafruit MCP4725, изделие 935, версия STEMMA QT.

MCP4725 DAC. Фото: Kattni Rembor / Adafruit. Оригинал: https://learn.adafruit.com/assets/108813 . Лицензия фотографии: CC BY-SA 3.0, https://creativecommons.org/licenses/by-sa/3.0/ . Изменения: Изолирована плата; отдельная неприпаянная гребёнка и исходный фон исключены из обложки. Очищены видимые сквозные отверстия. Пропорциональное масштабирование, размещение на предоставленном фоне и JPEG-сжатие. Геометрия, маркировка и видимые детали не перерисовывались. Цветокоррекция и повышение детализации не применялись. Адаптация фотографии распространяется по той же лицензии. Adafruit MCP4725, изделие 935, версия STEMMA QT.

Схема распиновки

Авторская распиновка SLDV LAB: Adafruit 935, MCP4725 STEMMA QT. Сторона компонентов; VIN снизу слева; нижний ряд слева направо. Клеммник: минус слева, плюс справа. Для других ревизий и плат требуется отдельная проверка.

VOUT — аналоговый сигнальный выход, не источник питания нагрузки. Подтяжки I²C связаны с VIN; учитывайте уровни контроллера.

Источники: 1, 2. Авторская схема SLDV LAB по фактам документации.

Характеристики

Разрядность ЦАП
12 бит
Аналоговых выходов
1
Адрес выбранной платы
0x62; A0=HIGH → 0x63
Опорное напряжение
Питание VIN
Энергонезависимое стартовое значение
Да
Интерфейс
I²C, Аналоговый
Питание модуля
Adafruit PID 935: VIN 2,7–5,5 В; в примере VIN и I²C 5 В от Uno R3, VOUT примерно 0…VIN с ограничениями выходного буфера и нагрузки.

ПРАКТИКА

Подключение

Контакт модуляКонтакт платыНазначение
VIN5VAdafruit PID 935; для точного напряжения измерьте фактическое VIN.
GNDGNDОбщая земля.
SDAA4 / SDAОдин и тот же сигнал Uno R3; подтяжки к питанию модуля.
SCLA5 / SCLПорядок контактов на модуле определять по маркировке, не по положению.
A0Не подключатьШтатное состояние платы даёт адрес 0x62; не путать с аналоговым A0 Uno.
VOUTВысокоомный вход мультиметраЗемля прибора к GND; при коде 2048 ожидается примерно VIN/2.
STEMMA QTНе подключатьПример использует отдельные провода к площадкам.

Подходит для Arduino. Выберите контакты по документации своей платы.

ВАШ ПРОЕКТ · ВАШ ДАТЧИК

Интегрируйте модуль с ChatGPT

Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.

Помоги интегрировать MCP4725 Adafruit PID 935. Сначала уточни точную плату модуля, контроллер, среду, питание и задачу. Проверь схему, логические уровни и маркировку контактов; затем дай согласованные подключение, зависимости и полный минимальный пример с обработкой ошибок. Объясни безопасную первичную проверку и ожидаемый результат. Уточни нагрузку, питание, заводской адрес и требования к точности. Не записывай EEPROM в быстром цикле и не подключай силовую нагрузку к VOUT.

Библиотеки

Установите библиотеку для своей среды и откройте пример из её документации.

Что именно прописать

Плата и ядро
Arduino Uno R3; Arduino AVR Boards 1.8.6

Распиновка относится к ATmega328P Uno R3; не Uno R4 и не ESP32.

Адрес
0x62

Выбранная Adafruit-плата, A0 в заводском LOW.

Команда
Fast Write: 2 байта, PD=00

Первый байт содержит старшие четыре бита DAC, второй младшие восемь; EEPROM не изменяется.

Тестовый код
2048

Идеальный выход VIN × 2048/4096 = VIN/2, примерно 2,5 В при VIN=5 В.

Библиотека примера
Wire из Arduino AVR Boards 1.8.6

Специализированный драйвер не обязателен; протокол проверен по datasheet.

Arduino: полный пример установки половины питания без EEPROM

cpp
#include <Wire.h>
const uint8_t DAC_ADDR = 0x62;
bool setDac(uint16_t code) {
  if (code > 4095) return false;
  Wire.beginTransmission(DAC_ADDR);
  Wire.write(uint8_t((code >> 8) & 0x0F));
  Wire.write(uint8_t(code & 0xFF));
  return Wire.endTransmission() == 0;
}
void setup() {
  Serial.begin(115200);
  Wire.begin();
  Wire.setClock(100000);
  Wire.setWireTimeout(25000, true);
  if (!setDac(2048)) {
    Serial.println("DAC write failed: check address and wiring");
    return;
  }
  Serial.println("DAC=2048; measure VOUT: expected about VIN / 2");
}
void loop() {}

Полный скетч для Uno R3 и Arduino AVR Boards 1.8.6; API Wire и формат Fast Write сверены. Не компилировалось и не проверялось на оборудовании. ACK подтверждает приём команды, не точность выходного напряжения. EEPROM не записывается.

Проекты с этим компонентом

Все проекты

Связанные проекты пока не опубликованы.

Связанные материалы и компоненты