Arduino с 12-битным ЦАП (MCP4725) не работает
У меня есть Arduino Mega AT2560, и мне нужен настоящий ЦАП. Я купил 12-битный ЦАП Sparkfun, однако не думаю, что он работает должным образом.
Я использую библиотеку проводов Arduino для связи с ЦАП. Когда я пишу 0, я ожидаю увидеть 0 В на выводе OUT ЦАП. Однако я вижу какое-то, казалось бы, случайное постоянное напряжение. И наоборот, когда я записываю 4095 в ЦАП, я вижу то же напряжение, что и при записи 0. Я ожидал увидеть 5 В.
- Может ли кто-нибудь проверить, правильно ли я подключил?
- Может ли кто-нибудь проверить код, который я использую?
#include <stdint.h>
#include <stdio.h>
#include <Wire.h>
#define MCP4725_ADDR 0x60 // [0000 0110]
/*
* 12 Bit DAC MCP4725 gives a range of 4096 possible values.
*
*/
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
Wire.beginTransmission(MCP4725_ADDR);
Wire.write(64); // cmd для обновления ЦАП [0100 0000]
Wire.write(4095 >> 4); // 8 старших бит...
Wire.write((4095 & 15) << 4); // 4 младших бита...
Wire.endTransmission();
}
@, 👍1
Обсуждение0
Смотрите также:
- Есть ли способ воспроизводить звуки с Arduino без использования звукового экрана?
- Как отправлять данные через I2C без проводной библиотеки?
- Странное явление с avrdude: stk500v2_ReceiveMessage(): таймаут только с ATmega250 на windows 7x64
- Проанализировать большой ответ json с помощью ESP8266
- Будет ли адаптер питания 12В постоянного тока, 1А подавать слишком большую мощность и повредит Arduino Mega 2560?
- Сбой Arduino во время последовательной печати без очевидной причины
- Как запрограммировать Robotdyn Mega 2560 PRO MINI?
- Отключите автоматический сброс Mega 2560 на последовательном мониторе, открытом с помощью резистора 60 Ом.
Полная шкала должна быть 4095, а не 4096. В шестнадцатеричном формате 4095 имеет идентификатор 0x0FFF, а 4096 — 0x1000. У вас есть диапазон из 4096 возможных значений от 0 до 4095., @Peter Bennett