ADS1110 (Arduino)

ADS1110 это прецизионный аналого-цифровой (A/D) преобразователь с дифференциальным входом и разрешением до 16 бит. Встроенный ИОН 2,048 В обеспечивает входной диапазон ±2,048 В. ADS1110 использует I2C интерфейс для связи с микроконтроллером. ADS1110  выполняет измерения со скоростью 15, 30, 60 или 240 выборок в секунду, содержит встроенный усилитель напряжения с коэффициентом 1, 2, 4, 8.

Основные характеристики АЦП ADS1110:

  • АЦП выполнен в корпусе SOT23-6
  • Точность изменения постоянного напряжения 2,048 В ±0,05%
  • Общая нелинейность: 0,01 % от полного входного диапазона
  • Тепловой дрейф: 5 ppm/°C
  • Разрешение 16 бит
  • Непрерывная самокалибровка
  • Для интерфейса I2C доступно 8 адресов
  • Усилитель входного сигнала с коэффициентом усиления 1, 2, 4, 8
  • Частота выборки от 15 до 240
  • Напряжение питания  от 2,7 В до 5,5 В
  • Ток потребления  240 мкА

Частота выборки (кол-во измерений в секунду) определяет разрядность результата изменения:

При измерении напряжения АЦП передает в микроконтроллер цифровое значение измеренного напряжения, в таблице указаны диапазоны значений с учетом разрядности:

Диапазон измерения зависит от коэффициента усиления усилителя, при коэффициенте 1 диапазон изменения будет в пределах  ±2048 мВ, при коэффициенте 2 ±1024 мВ, при 4 ±512 мВ и ±256 мВ при коэффициенте 8.

Как ранее отмечалось АЦП выпускается в восьми вариантах, каждый вариант содержит свой I2C адрес:

Корпус АЦП который я использую содержит маркировку ED0, это означает, что I2C адрес микросхемы 0b1001000.

Микросхема содержит 8-и битный регистр конфигурации:

В режиме одиночного преобразования запись 1 в бит ST/DRDY приводит к старту преобразования, бит ST/DRDY во время непрерывного преобразования игнорируется.

Бит SC определяет, находится ли ADS1110 в режиме непрерывного преобразования (0) или в режиме однократного преобразования (1).

Биты DR0 и DR1 определяют частоту выборки:

Биты PGA1 и PGA0 устанавливают множитель усилителя:

(1) — значение по умолчанию

После записи значений конфигурационного регистра в АЦП, измеренное значение считывается при помощи 16-и битного регистра:

Считывание происходит в два этапа, сначала считывается старшие 8 бит, потом младшие 8 бит.

Показанный ниже скетч позволяет настроить АЦП (16 бит — 15 измерений в секунду, непрерывное преобразование) и получить измеренное значение напряжения в вольтах:

#include <Wire.h>
#define ADDR 0x48

void setup() {
  Wire.begin();
  Serial.begin(9600);
}

void loop() {
  Wire.beginTransmission(ADDR);
  Wire.write (0b10001100);
  Wire.endTransmission();
  Wire.requestFrom(ADDR,2);
  while(Wire.available()<2);
  int value = (Wire.read()<<8) + (Wire.read());
  if(value<0){Serial.println(value*2.048/0x8000,5);}
  if(value>=0){Serial.println(value*2.048/0x7FFF,5);}
  delay(1000);
}

Измерение отрицательного напряжения

Измерение положительного напряжения

Это же напряжение (аккумулятор 1,2 В) измеренное вольтметром В7-78/1 равно 1,25952 В

ads1110.pdf

Форум — http://forum.rcl-radio.ru/viewtopic.php?id=406

Comments

Добавить комментарий

Войти с помощью: