
Модуль на базе микросхемы MCP4725 от Microchip представляет собой 12-битный прецизионный цифро-аналоговый преобразователь (ЦАП / DAC) с управлением по интерфейсу I²C. В отличие от аппроксимированного сигнала ШИМ (PWM), модуль формирует истинный аналоговый сигнал с гладким выраженным уровнем напряжения. Наличие встроенной энергонезависимой памяти EEPROM позволяет сохранять выходное значение напряжения даже после отключения питания, а архитектура Rail-to-Rail обеспечивает размах сигнала от 0 В до полного напряжения питания.
| Параметр | Значение |
|---|---|
| Микросхема | Microchip MCP4725 |
| Разрядность ЦАП | 12 бит (4096 уровней дискретизации: 0 – 4095) |
| Интерфейс связи | I²C (Standard 100 кГц, Fast 400 кГц, High-Speed 3.4 МГц) |
| I²C адреса | 0x60 (по умолчанию, адресный контакт A0 на GND) или 0x61 (A0 на VCC) |
| Напряжение питания (VCC) | 2.7 – 5.5 В DC |
| Встроенная память | EEPROM (для сохранения настроек и напряжений по умолчанию) |
| Выходной тип | Rail-to-Rail (размах выходящего напряжения от GND до VCC) |
| Время инициализации | ~6 мкс после подачи питания |
| Энергопотребление | Сверхнизкое (~0.2 мА в рабочем режиме, 60 нА в режиме Sleep) |
| Габариты платы | 15 × 15 мм |
0x60, при подтяжке к VCC ➔ 0x61).
Скрипт генерирует ступенчато увеличивающееся напряжение на выходе MCP4725 и одновременно считывает его с помощью встроенного АЦП Arduino (пин A0) для проверки точности:
#include <Wire.h>
#include
#define analogVin A0
Adafruit_MCP4725 MCP4725;
void setup(void) {
Serial.begin(9600);
// Инициализация ЦАП с адресом 0x60 (или 0x61)
MCP4725.begin(0x60);
}
void loop(void) {
uint32_t MCP4725_value;
int adcValueRead = 0;
float voltageRead = 0;
float MCP4725_expected_output;
// Перебор значений от 0 до 4095 с шагом 15
for (MCP4725_value = 0; MCP4725_value < 4096; MCP4725_value += 15) {
// Расчет теоретического напряжения на выходе
MCP4725_expected_output = (5.0 / 4096.0) * MCP4725_value;
// Установка напряжения на ЦАП (false — без перезаписи EEPROM)
MCP4725.setVoltage(MCP4725_value, false);
delay(250);
// Считывание значения АЦП Arduino
adcValueRead = analogRead(analogVin);
voltageRead = (adcValueRead * 5.0) / 1024.0;
// Вывод измерений в Serial Monitor
Serial.print("MCP4725 Value: ");
Serial.print(MCP4725_value);
Serial.print("\tExpected Volt: ");
Serial.print(MCP4725_expected_output, 3);
Serial.print("\tADC Read: ");
Serial.print(adcValueRead);
Serial.print("\tMeasured Volt: ");
Serial.println(voltageRead, 3);
}
}
Купить Модуль цифро-аналогового преобразователя MCP4725 (12 бит, I2C, EEPROM) можно с доставкой по Алматы курьером Яндекс или самовывозом из магазина по адресу ул. Кыз Жибек, 104/1. По Казахстану доставляем через inDrive. Бесплатная доставка при заказе от 150 000 ₸. Оплата наличными, картой или переводом.
Оформление заказа онлайн: добавьте товар в корзину, укажите контакты и адрес. Режим работы магазина: пн–сб 12:00–20:00. Телефон +7 (700) 900-17-90, Telegram и WhatsApp.