Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

ADS1115 – описание и подключение 16-битного АЦП | RadioLaba.ru

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

          #include <P16F628A.INC>

            LIST        p=16F628A    

            __CONFIG    H'3F10'             ;конфигурация микроконтроллера

                                                

Sec           equ         20h               ;регистры для подпрограмм паузы

Sec1          equ         21h               ;

Sec2          equ         22h               ;

 

perem         equ         23h               ;регистры для подпрограмм передачи данных SPI, I2C

scetbit       equ         24h               ;

adr_i2c       equ         25h               ;

byte_H        equ         26h               ;

byte_L        equ         27h               ;

slave_adr     equ         28h               ;

adr_ind       equ         29h               ;

dat_ind       equ         2Ah               ;

 

shet          equ         2Bh               ;регистры подпрограммы преобразования двоичного числа

bcd1          equ         2Ch               ;в десятичное

bcd2          equ         2Dh               ;

bcd3          equ         2Eh               ;

rezLH         equ         2Fh               ;

rezLL         equ         30h               ;

 

flag          equ         7Dh               ;дополнительный регистр флагов    

 

#DEFINE       scl         PORTB,0           ;линия тактирования SCL ADS1115

#DEFINE       sda         PORTB,1           ;линия данных SDA ADS1115

#DEFINE       scl_io      TRISB,0           ;линия направления SCL

#DEFINE       sda_io      TRISB,1           ;линия направления SDA

#DEFINE       led_err     PORTB,2           ;светиодиод Ошибки интерфейса I2C

#DEFINE       comp        PORTB,3           ;линия компаратора ALERT/RDY ADS1115

#DEFINE       led         PORTB,4           ;светиодиод процесса преобразования

 

#DEFINE       din         PORTB,5           ;линия входа данных драйвера MAX7219

#DEFINE       cs          PORTB,6           ;линия выбора драйвера MAX7219

#DEFINE       clk         PORTB,7           ;линия тактирования драйвера MAX7219

 

;flag,4  - флаг записи\чтения по i2c

;flag,5  - флаг ошибки ожидания ответа потвержедния по i2c (1-нет потверж. 0-есть потвержд)

;flag,6  - флаг ошибки двух неудачных попыток записи\чтения по i2c (нет потверждения)

  

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

              org         0000h             ;начать выполнение программы с адреса 0000h

              goto        Start             ;переход на метку Start

          

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Основная программа

                                              

Start         movlw       b'00000111'       ;выключение компараторов

              movwf       CMCON             ;

 

              movlw       b'01000000'       ;Настройка линий ввода/вывода

              movwf       PORTB             ;

              movlw       b'00000000'       ;

              movwf       PORTA             ;

                          

              bsf         STATUS,RP0        ;  

              movlw       b'00001011'       ;    

              movwf       TRISB             ;

              movlw       b'11111111'       ;    

              movwf       TRISA             ;

              bcf         STATUS,RP0        ;

              

              call        init_lcd          ;вызов подпрограммы инициализации драйвера MAX7219

              movlw       b'10010000'       ;адрес устройства ADS1115

              movwf       slave_adr

 

              movlw       b'11111111'       ;запись двух байт для передачи по протоколу I2C  

              movwf       byte_H            ;передаем значение 0xFFFF в регистр Hi-tresh

              movlw       b'11111111'       ;  

              movwf       byte_L            ;

 

              movlw       b'00000011'       ;адрес регистра Hi-tresh

              movwf       adr_i2c           ;

  

              call        write_i2c         ;вызов подпрограммы записи данных по I2C

              btfss       flag,6            ;проверка флага ошибки

              goto        met_0             ;нет ошибки: переход на метку met_0

met_err1      bsf         led_err           ;ошибка: включаем светодиод ошибки

              goto        met_err1          ;переход на метку met_err1

 

met_0         movlw       b'00000000'       ;запись двух байт для передачи по протоколу I2C  

              movwf       byte_H            ;передаем значение 0x0000 в регистр Lo-tresh

              movlw       b'00000000'       ;  

              movwf       byte_L            ;

 

              movlw       b'00000010'       ;адрес регистра Lo-tresh

              movwf       adr_i2c

  

              call        write_i2c         ;вызов подпрограммы записи данных по I2C

              btfss       flag,6            ;проверка флага ошибки

              goto        met_3             ;нет ошибки: переход на метку met_3

met_err2      bsf         led_err           ;ошибка: включаем светодиод ошибки

              goto        met_err2          ;переход на метку met_err2

 

                                            ;запись двух байт для передачи по протоколу I2C

met_3         movlw       b'11000101'       ;выполнить одиночное проебразование, мультиплексор вход AIN0 и GND,  

              movwf       byte_H            ;Коэфф. усиления  FS=±2,048В, Одиночное преобразование (пониж. потребление)

              movlw       b'11100000'       ;Частота дискретизации 860 ГЦ, Компаратор с гистерезисом,

              movwf       byte_L            ;Низкий активный уровень компаратора, без защелки, установка сигнала на

                                            ;выходе после одного преобразования

 

              movlw       b'00000001'       ;адрес конфигурационного регистра Config register

              movwf       adr_i2c           ;

  

              call        write_i2c         ;вызов подпрограммы записи данных по I2C

              btfss       flag,6            ;проверка флага ошибки

              goto        met_1             ;нет ошибки: переход на метку met_1

met_err       bsf         led_err           ;ошибка: включаем светодиод ошибки

              goto        met_err           ;переход на метку met_err

 

met_1         btfss       comp              ;опрос выхода компаратора, ожидаем конец преобразования

              goto        met_4             ;преобразование закончено:переход на метку met_4

              bsf         led               ;преобразование не закончено: включаем светодиод "преобразование"

              goto        met_1             ;переход на метку met_1

 

met_4         bcf         led               ;выключаем светодиод "преобразование"

              movlw       b'00000000'       ;адрес регистра c результатом преобразования Conversion register

              movwf       adr_i2c           ;

              call        read_i2c          ;вызов подпрограммы чтения по протоколу I2C

 

              movlw       . 4                ;Делим результат преобразования на 4

              movwf       shet              ;для получения значения напряжения в милливольтах

met_2         bcf         STATUS,C          ;

              rrf         byte_H,F          ;

              rrf         byte_L,F          ;

              decfsz      shet,F            ;

              goto        met_2             ;

 

              movf        byte_H,W          ;копируем результат деления в промежуточные регистры

              movwf       rezLH             ;

              movf        byte_L,W          ;

              movwf       rezLL             ;

              call        bin2bcd           ;вызов подпрограммы преобразования двоичного числа в десятичное

  

              movf        bcd3,W            ;копирование значения единиц милливольт в регистр  

              andlw       b'00001111'       ;1-го индикатора

              movwf       dat_ind           ;

              movlw       0x01              ;

              movwf       adr_ind           ;

              call        send              ;вызов подпрограммы отправки данных на дрйвер MAX7219

 

              swapf       bcd3,W            ;копирование значения десятков милливольт в регистр

              andlw       b'00001111'       ;2-го индикатора

              movwf       dat_ind           ;

              movlw       0x02              ;

              movwf       adr_ind           ;

              call        send              ;вызов подпрограммы отправки данных на дрйвер MAX7219

 

              movf        bcd2,W            ;копирование значения сотен милливольт в регистр

              andlw       b'00001111'       ;3-го индикатора

              movwf       dat_ind           ;

              movlw       0x03              ;

              movwf       adr_ind           ;

              call        send              ;вызов подпрограммы отправки данных на дрйвер MAX7219

 

              swapf       bcd2,W            ;копирование значения тысяч милливольт в регистр

              andlw       b'00001111'       ;4-го индикатора

              movwf       dat_ind           ;

              bsf         dat_ind,7         ;установка точки, для отображения в Вольтах

              movlw       0x04              ;

              movwf       adr_ind           ;

              call        send              ;вызов подпрограммы отправки данных на дрйвер MAX7219

 

              call        paus_pr           ;вызов подпрограммы паузы между измерениями 0,58 сек

              goto        met_3             ;переход на метку met_3

      

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                          

 

bin2bcd       movlw       . 16               ;Подпрограмма преобразования двоичного числа

              movwf       shet              ;в десятичное

              clrf        bcd1              ;Двухбайтное число предварительно загружается

              clrf        bcd2              ;в регисты rezLH, rezLL

              clrf        bcd3              ;Результат преобразования:

              goto        bin2bcd_1         ;единицы в младшем полубайте bcd3

                                            ;десятки в старшем полубайте bcd3

adjdec        movlw       0x33              ;сотни в младшем полубайте bcd2

              addwf       bcd1,F            ;тысячи в старшем полубайте bcd2

              addwf       bcd2,F            ;десятки тысяч в младшем полубайте bcd1

              addwf       bcd3,F            ;

                                            ;

              movlw       0x03              ;

              btfss       bcd1,3            ;

              subwf       bcd1,F            ;

              btfss       bcd2,3            ;

              subwf       bcd2,F            ;

              btfss       bcd3,3            ;

              subwf       bcd3,F            ;

                                            ;

              movlw       0x30              ;

              btfss       bcd1,7            ;

              subwf       bcd1,F            ;

              btfss       bcd2,7            ;

              subwf       bcd2,F            ;

              btfss       bcd3,7            ;

              subwf       bcd3,F            ;

                                            ;

bin2bcd_1     rlf         rezLL,F           ;

              rlf         rezLH,F           ;

              rlf         bcd3,F            ;

              rlf         bcd2,F            ;

              rlf         bcd1,F            ;

              decfsz      shet,F            ;

              goto        adjdec            ;

              return                        ;выход из подпрограммы

                                    

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Подпрограмма инициализации драйвера(MAX7219)

 

init_lcd      call        pauslcd           ;вызов подпрограммы паузы 2 мс

              movlw       0x0F              ;выключить тестовый режим

              movwf       adr_ind           ;

              movlw       0x00              ;

              movwf       dat_ind           ;

              call        send              ;

 

              movlw       0x0C              ;включить драйвер в рабочий режим

              movwf       adr_ind           ;

              movlw       0x01              ;

              movwf       dat_ind           ;

              call        send              ;

 

              movlw       0x0A              ;установить интенсивность свечения 15/32

              movwf       adr_ind           ;

              movlw       0x07              ;

              movwf       dat_ind           ;

              call        send              ;

 

              movlw       0x09              ;включить декодирование для всех индикаторов

              movwf       adr_ind           ;

              movlw       0xFF              ;

              movwf       dat_ind           ;

              call        send              ;

 

              movlw       0x0B              ;использовать 4 индикатора

              movwf       adr_ind           ;

              movlw       0x03              ;

              movwf       dat_ind           ;

              call        send              ;

              return                        ;выход из подпрограммы

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Подпрограмма отправки 2-х байт (пакета данных) на драйвер (MAX7219) по протоколу SPI

 

send          bcf         cs                ;Сбросить линию выбора драйвера CS

              movlw      . 8                 ;Отправка содержимого адресного байта adr_ind

              movwf      scetbit            ;

povtor        bcf        clk                ;

              btfsc      adr_ind,7          ;

              bsf        din                ;

              btfss      adr_ind,7          ;

              bcf        din                ;

              bsf        clk                ;

              rlf        adr_ind,F          ;

              decfsz     scetbit,F          ;

              goto       povtor             ;

            

              movlw      .8                 ;Отправка содержимого байта данных dat_ind

              movwf      scetbit            ;

povtr1        bcf        clk                ;

              btfsc      dat_ind,7          ;

              bsf        din                ;

              btfss      dat_ind,7          ;

              bcf        din                ;

              bsf        clk                ;

              rlf        dat_ind,F          ;

              decfsz     scetbit,F          ;

              goto       povtr1             ;

              bcf        clk                ;

              bsf        cs                 ;установить в 1 линию выбора драйвера CS                

              return                        ;выход из подпрограммы

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;подпрограмма чтения/записи по интерфейсу I2C

 

write_i2c     bsf         flag,4            ;установка флага записи

              goto        i2c_1             ;переход на метку i2c_1

read_i2c      bcf         flag,4            ;сброс флага (для чтения)

              bcf         flag,5            ;сброс окончания приема данных

i2c_1         bcf         flag,6            ;сброс флага ошибки I2C

              call        starti2c          ;вызов подпрограммы "Старт" для I2C

            

              bcf         slave_adr,0       ;бит на запись

              movf        slave_adr,W       ;копируем адрес ведомого

              call        peredi2c          ;передача байта

              btfsc       flag,6            ;проверка флага ошибки

              goto        err_i2c           ;ошибка:переход на метку err_i2c

 

              movf        adr_i2c,W         ;передача адреса необходимого регистра i2c

              call        peredi2c          ;передача байта  

              btfsc       flag,6            ;проверка флага ошибки

              goto        err_i2c           ;ошибка:переход на метку err_i2c

 

              btfss       flag,4            ;проверка флага запись/чтение I2C

              goto        rd_i2c            ;переход на метку rd_i2c (чтение)

 

i2c_2         movf        byte_H,W          ;передача старшего байта данных

              call        peredi2c          ;передача байта по I2C

              btfsc       flag,6            ;проверка флага ошибки

              goto        err_i2c           ;ошибка:переход на метку err_i2c

            

              movf        byte_L,W          ;передача младшего байта данных

              call        peredi2c          ;передача байта по I2C

              btfsc       flag,6            ;проверка флага ошибки

              goto        err_i2c           ;ошибка:переход на метку err_i2c

              call        stopi2c

              return

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

rd_i2c        call        starti2c          ;вызов подпрограммы (повторный Старт)

              bsf         slave_adr,0       ;бит на чтение

              movf        slave_adr,W       ;копируем адрес ведомого

              call        peredi2c          ;передача байта

              btfsc       flag,6            ;проверка флага ошибки

              goto        err_i2c           ;ошибка:переход на метку err_i2c

 

              call        priemi2c          ;прием байта

              movwf       byte_H            ;

 

              bsf         flag,5            ;установка флага для приема последнего байта

              call        priemi2c          ;прием байта

              movwf       byte_L            ;

              call        stopi2c           ;передача стоп

              return

 

err_i2c       call        stopi2c           ;вызов подпрограммы "Стоп" для I2C

              return                        ;выход после двух неудачных попыток передачи данных по I2C

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

starti2c      call        scl_1              ;отпустить линию scl

              call        pausi2c            ;пауза I2C (5 мкс)

              call        sda_0              ;притянуть к 0 линию sda

              call        pausi2c            ;пауза I2C (5 мкс)

              call        scl_0              ;притянуть к 0 линию scl

              call        pausi2c            ;пауза I2C (5 мкс)

              return                         ;возврат из подпрограммы

 

stopi2c       call        sda_0              ;притянуть к 0 линию sda

              call        pausi2c            ;пауза I2C (5 мкс)

              call        scl_1              ;отпустить линию scl

stpi2c_1      call        pausi2c            ;пауза I2C (5 мкс)

              btfss       scl                ;

              goto        stpi2c_1           ;

              call        sda_1              ;отпустить линию sda

              call        pausi2c            ;пауза I2C (5 мкс)

              return                         ;возврат из подпрограммы

 

sda_1         bsf         STATUS,RP0         ;перенастройка линии sda на вход

              bsf         sda_io             ;        

              bcf         STATUS,RP0         ;

              return                         ;возврат из подпрограммы

 

sda_0         bcf         sda                ;перенастройка линии sda на выход

              bsf         STATUS,RP0         ;

              bcf         sda_io             ;

              bcf         STATUS,RP0         ;

              return                         ;возврат из подпрограммы

 

scl_1         bsf         STATUS,RP0         ;перенастройка линии scl на вход

              bsf         scl_io             ;        

              bcf         STATUS,RP0         ;

              return                        ;возврат из подпрограммы

 

scl_0         bcf         scl                ;перенастройка линии scl на выход

              bsf         STATUS,RP0         ;

              bcf         scl_io             ;

              bcf         STATUS,RP0         ;

              return                         ;возврат из подпрограммы

 

 

peredi2c      movwf       perem              ;подпрограмма передачи байта по i2c

              movlw       . 8                 ;

              movwf       scetbit            ;

prd_i2c_1     btfsc       perem,7            ;

              call        sda_1              ;отпустить линию sda

              btfss       perem,7            ;

              call        sda_0              ;притянуть к 0 линию sda

              call        scl_1              ;отпустить линию scl

prd_i2c_2     call        pausi2c            ;пауза I2C (5 мкс)

              btfss       scl                ;

              goto        prd_i2c_2          ;

              call        scl_0              ;притянуть к 0 линию scl

              call        pausi2c            ;пауза I2C (5 мкс)

              rlf         perem,F            ;

              decfsz      scetbit,F          ;

              goto        prd_i2c_1          ;

            

              call        sda_1              ;отпустить линию sda

              call        scl_1              ;отпустить линию scl

prd_i2c_3     call        pausi2c            ;пауза I2C (5 мкс)

              btfss       scl                ;

              goto        prd_i2c_3          ;

 

              movlw       . 20                ;прием потверждения 100 мкс

              movwf       scetbit            ;

prd_i2c_4     btfss       sda                ;

              goto        prd_i2c_5          ;

              decfsz      scetbit,F          ;

              goto        prd_i2c_4          ;

              bsf         flag,6             ;нет потверждения, устанавливаем флаг ошибки

prd_i2c_5     call        scl_0              ;притянуть к 0 линию scl

              call        pausi2c            ;пауза I2C (5 мкс)

              return                         ;возврат из подпрограммы

 

 

priemi2c      movlw       .8                 ;подпрограмма приема байта по i2c

              movwf       scetbit            ;

              call        sda_1              ;отпустить линию sda

prm_i2c_1     rlf         perem,F            ;

              call        scl_1              ;отпустить линию scl

prm_i2c_2     call        pausi2c            ;пауза I2C (5 мкс)

              btfss       scl                ;

              goto        prm_i2c_2          ;

              btfsc       sda                ;

              bsf         perem,0            ;

              btfss       sda                ;

              bcf         perem,0            ;

              call        scl_0              ;притянуть к 0 линию scl

              call        pausi2c            ;пауза I2C (5 мкс)

              decfsz      scetbit,F          ;

              goto        prm_i2c_1          ;

              btfss       flag,5             ;

              call        sda_0              ;притянуть к 0 линию sda

 

              call        scl_1              ;отпустить линию scl

prm_i2c_3     call        pausi2c            ;пауза I2C (5 мкс)

              btfss       scl                ;

              goto        prm_i2c_3          ;

              call        scl_0              ;притянуть к 0 линию scl

              call        pausi2c            ;пауза I2C (5 мкс)

              movf        perem,W            ;

              return                         ;возврат из подпрограммы

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;            

 

pausi2c       nop                            ;Подпрограмма паузы I2C (5 мкс)

              return                         ;возврат из подпрограммы

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;                

 

pauslcd       movlw       . 4                ;подпрограмма паузы 2 мс

              movwf       Sec1              ;

p2            movlw       .166              ;

              movwf       Sec               ;

p1            decfsz      Sec,F             ;

              goto        p1                ;

              decfsz      Sec1,F            ;

              goto        p2                ;

              return                        ;выход из подпрограммы

 

            

paus_pr       movlw       .3                ; подпрограмма паузы 0,58 сек

              movwf       Sec2              ;

pp3           movlw       .255              ;

              movwf       Sec1              ;

pp2           movlw       .255              ;

              movwf       Sec               ;

pp1           decfsz      Sec,F             ;

              goto        pp1               ;

              decfsz      Sec1,F            ;

              goto        pp2               ;

              decfsz      Sec2,F            ;

              goto        pp3               ;

              return                        ;выход из подпрограммы

                                            

              end                           ;конец всей программы

                                            ;

ADS1115 модуль - 4-канальный 16-битный АЦП

 Модуль на базе микросхемы ADS1115 - это четырехканальный 16-битный аналогово-цифровой преобразователь (АЦП) с возможностью получения до 860 замеров напряжения в секунду. Управление и получение данных осуществляется по шине I2C.

 АЦП ADS1115 может работать в режиме измерения четырех отдельных каналов или двух дифференциальных. Также в даном АЦП имеется программно-управляемый усилитель сигналов (PGA), который позволяет усилять входящие сигналы с необходимым коэффициеном (макс коэффициент усиления =16), благодаря этому можно измерять низкое напряжение в полном 16-битном разрешении.

 В модуле возможна аппаратная установка одного из 4 возможных адресов I2c (соответственно на одну I2C шину можно подключить до 4 таких плат), для этого нужно соединить пин ADDR с сответствующим выводом, согласно картинке: 

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

Модель ADS1115_ADC_module

Рабочее напряжение

2. 0 - 5.5 В

Интерфейс управления I2C

Потребляемый ток                                                       

менее 1 мА

Диапазон рабочих температур

-40°C..+125°C
Размеры 23х17 мм

 

Комплектация:

  • 1x 4-канальный 16-битный DAC ADS1115 модуль
  • контактная PLS-планка на 10 пинов

 

Загрузки:

ADS1115: аналого-цифровой преобразователь для Arduino

Для тех проектов, где необходимо преобразование аналогового сигнала в цифровой, а используемый микроконтроллер не имеет такой емкости, интересно иметь этот тип Модуль ADS1115, который обеспечивает возможность преобразования АЦП с точностью до 16 разряда.

Кроме того, это электронный компонент также может быть интересно продлить возможности преобразования, даже если микроконтроллер, который вы используете для своего проекта, имеет такую ​​возможность, но вам нужно что-то еще.

A / D и D / A преобразователи

Есть два типа преобразователи сигналов фундаментальный, хотя есть и другие микросхемы, способные выполнять оба типа преобразования одновременно. Эти:

  • CAD (аналого-цифровой преобразователь) или ADC (аналого-цифровой преобразователь): тип устройства, преобразующего аналоговый сигнал в цифровой. Для этого можно использовать двоичный код, кодирующий аналоговый сигнал. Например, связывание двоичного значения с определенным значением напряжения или тока. Например, при 4-битном разрешении он может изменяться от 0000 до 1111 и может соответствовать 0v и 12v соответственно. Хотя, если используется знаковый бит, можно измерить отрицательные и положительные значения.
  • CDA (цифро-аналоговый преобразователь) или DAC (цифро-аналоговый преобразователь): это устройство, которое делает противоположное вышеуказанному, то есть преобразует двоичные данные в аналоговый сигнал тока или напряжения.

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

О ADS1115

ADS1115 - это модуль преобразователя сигналов. Что он делает преобразовать из аналогового в цифровой. Вы можете подумать, что сама плата разработки Arduino уже включает внутренние АЦП, чтобы иметь возможность выполнять эту задачу при использовании аналоговых входов, и что они могут быть совместимы с сигналами микроконтроллера.

Да, верно, у них есть 6 АЦП с 10-битным разрешением в UNO, Mini и Nano. Но с ADS1115 вы добавляете еще один с 16-битное разрешение, превосходит Arduino, в дополнение к возможности освободить корпус Arduino. Пятнадцать из них предназначены для измерения и последний бит для знака аналогового сигнала, поскольку, как вы знаете, аналоговый сигнал может быть отрицательным или положительным.

Кроме того, в этом модуле есть все необходимое, поэтому пользоваться им очень просто. Чтобы подключить его к вашему Arduino вы можете использовать I2CПоэтому это действительно просто. Он даже включает в себя контакт с маркировкой ADDR, с помощью которого вы можете выбрать один из 4 адресов, доступных для этого компонента.

С другой стороны, вы должны понимать, что ADS1115 имеет два режима измерения, один из которых дифференциал и другой несимметричный:

  • Дифференциальный: он использует два АЦП для каждого измерения, уменьшая количество каналов до 2, но дает явное преимущество, заключающееся в том, что он может измерять отрицательные напряжения и не так уязвим для шума.
  • Односторонний: он имеет четыре канала, не используя оба, как в предыдущем случае. Каждый из 15-битных каналов.

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

Если ты хочешь сделать измерения менее 5В, но с большей точностью вы должны знать, что ADS1115 имеет PGA, который может регулировать усиление напряжения от 6.144 В до 0.256 В. Всегда помните, что максимальное напряжение, которое можно измерить в любом случае, будет используемым напряжением питания (5 В).

Распиновка и таблица данных

Если вы хотите увидеть все технические детали ADS1115, чтобы узнать его пределы на электронном уровне или условия, при которых он может работать в соответствии с рекомендациями производителя, вы можете использовать таблицы данных которые вы можете найти в сети. Например, вы можете скачать это с TI (Инструменты Техаса).

к распиновка и подключен, ранее я уже кое-что прокомментировал о сигнале ALRT, который также включает информацию об ADDR. Но у него есть и другие контакты, которые вам также следует знать для правильной интеграции с вашей платой Arduino или в любом другом случае. На модуле ADS1115 доступны следующие выводы:

  • VDD: питание от 2в до 5.5в. Вы можете включить его, подключив его к 5 В от вашей платы Arduino.
  • GND: земля, которую вы можете подключить к GND вашей платы Arduino.
  • SCL и SDA: контакты связи для I2C. В этом случае они должны перейти к соответствующим контактам в соответствии с ваша модель ардуино.
  • АДРЕСА: pin для адреса. По умолчанию он подключается к GND, который дает адрес 0x48, но вы можете выбрать другие адреса:
    • Подключен к GND = 0x48
    • Подключен к VDD = 0x49
    • Подключен к SDA = 0x4A
    • Подключен к SCL = 0x4B
  • ALRT: значок предупреждения
  • От A0 до A3: аналоговые контакты

Если вы хотите использовать одинарный конец Вы можете подключить аналоговый ток или напряжение, которое хотите измерить, между GND и одним из 4 доступных аналоговых контактов.

Для подключения одинарный конец, мы просто подключаем измеряемую нагрузку между GND и одним из 4 доступных контактов. В дифференциальном режиме вы можете подключить измеряемую нагрузку между A0 и A1 или между A2 и A3, в зависимости от канала, который вы хотите использовать.

В качестве примера подключения в случае режим дифференциального чтения, вы можете увидеть изображение выше. В нем 1.5 батареи используются последовательно, добавляя 3 В, которые подключены между A0 и A1 в этом случае, чтобы плата Arduino могла измерять значения напряжения, полученные в каждый момент через I2C. Очевидно, вы можете использовать любой другой сигнал для измерения, в данном случае это батареи, но это может быть что угодно ...

Где купить ADS1115?

Если вы хотите, купить ADS1115Вы должны знать, что у вас есть модули, подготовленные для интеграции с Arduino по довольно низким ценам. Вы можете найти их во множестве специализированных магазинов электроники, а также на eBay, Aliexpress и Amazon. Например:

Интеграция с Arduino

Для начала первое, что нужно сделать установить библиотеку соответствующий в вашей Arduino IDE. Для этого можно использовать самый известный из них. Adafruit. Для этого вы можете выполнить следующие действия:

  1. Откройте Arduino IDE
  2. Зайдите в меню Sketch.
  3. Затем включить библиотеку
  4. Управление библиотеками
  5. В поисковике вы можете искать Adafruit ADS1X15
  6. Нажмите на Установить

Теперь вы готовы начать, вы можете получить доступ к коду установленной библиотеки или доступные примеры в:

  1. Откройте Arduino IDE
  2. Перейти к файлу
  3. примеров
  4. И в списке ищите те, что находятся в этой библиотеке ...

Среди примеров вы увидите как для режим компаратора, дифференциальный режим и односторонний режим. Вы можете увидеть примеры, чтобы начать их использовать и изменить в соответствии с вашими потребностями или написать более сложный код. Для получения дополнительной информации советую наш бесплатный вводный курс в PDF.


Модуль 4х канального АЦП на ADS1115 от 65 грн

Модуль 4х канального АЦП на ADS1115

Код товара: 149568

Производитель:
Описание: Модуль 16-разрядного 4-х канального АЦП. Микросхема модуля: ADS1115, маркировка микросхемы: BOGI, интерфейс: I2C, напряжение питания: от 2В до 5В, потребляемый ток в непрерывном режиме: 150 мкА, тактовый гнератор: встроенный, разрядность АЦП: 16 (со знаком), количество каналов: 4 или 2 дифференциальных, диапазон входных напряжений: от ±256мВ до ±6.144В, входной усилитель: усиление до х16, встроенный источник опорного напряжения, частота оцифровки: от 8 до 860 отсчётов в секунду, диапазон адресов: от 0x48 до 0x4B, диапазон рабочих температур: от -40 до +125. Размеры платы: 25,5 х 9 мм
Тип: Датчик

В наличии/под заказ
200 шт - ожидается 01. 09.2021


Конструкторы и наборы - Arduino
Описание: Модуль 12-разрядного 4-х канального АЦП на микросхеме ADS1015. Интерфейс: I2C, напряжение питания: от 2В до 5В, потребляемый ток в непрерывном режиме: 150 мкА, тактовый гнератор: встроенный, разрядность АЦП: 12 (со знаком), количество каналов: 4 или 2 дифференциальных, диапазон входных напряжений: от ±256мВ до ±6.144В, входной усилитель: усиление до х16, источник опорного напряжения: встроенный, частота оцифровки: от 128 до 3300 отсчётов в секунду, диапазон адресов: от 0x48 до 0x4B, диапазон рабочих температур: от -40 до +125. Размеры платы: 25,5х9мм.
Тип: Датчик 41 шт - склад Киев
2 шт - РАДИОМАГ-Киев
2 шт - РАДИОМАГ-Львов
4 шт - РАДИОМАГ-Харьков
3 шт - РАДИОМАГ-Одесса
3 шт - РАДИОМАГ-Днепр Конструкторы и наборы - Arduino
Описание: Частота ШИМ настраивается в пределах от 40 до 1000 Гц, с помощью ШИМ контроллера можно управлять яркостью светодиодов, сервоприводами, и другими устройствами, контроллер управляется по шине I2C, питание:3-5В
Тип: Шилд 28 шт - склад Киев
2 шт - РАДИОМАГ-Киев
1 шт - РАДИОМАГ-Львов
2 шт - РАДИОМАГ-Харьков
1 шт - РАДИОМАГ-Днепр Конструкторы и наборы - Arduino
Описание: 4-х канальный двунаправленный преобразователь логических уровней; уровни напряжений: 3,3-5В; нагрузочная способность по току: 220мА. Используется с последовательным интерфейсами UART, I2C, SPI и для преобразования любых цифровых сигналов. Не работает с аналоговыми сигналами.
Тип: Преобразователь логических уровней 1 шт - РАДИОМАГ-Киев
4 шт - РАДИОМАГ-Львов
12 шт - РАДИОМАГ-Харьков
3 шт - РАДИОМАГ-Одесса
200 шт - ожидается 01.09.2021 Конструкторы и наборы - Arduino
Описание: Модуль энкодера предназначен для построения систем ввода и управления, ручка может вращаться на 360° в обе стороны+нажатие, число импульсов на оборот: 20, питание: 3-5V
Тип: Датчик 177 шт - склад Киев
23 шт - РАДИОМАГ-Киев
2 шт - РАДИОМАГ-Львов
20 шт - РАДИОМАГ-Харьков
16 шт - РАДИОМАГ-Одесса
4 шт - РАДИОМАГ-Днепр

ADS1115 (ADS1015) Внешний I2C ADC АЦП (поддерживается программой FLProg) – FLProg

ADS1115 это 16-разрядный Аналого-Цифровой Преобразователь (ADS1015 это 12-разрядный Аналого-Цифровой Преобразователь), который может прекрасно расширить разрешающие и измерительные возможности Вашей Arduino. Он имеет внутренний ИОН (Источник Опорного Напряжения), 4 аналоговых входа, которые могут быть настроены в единичный, дифференциальный и сравнительный режимы измерения.


Для справки, встроенный в Arduino АЦП 10-разрядность.

ОЧЕНЬ ВАЖНО!!!: Этот модуль очень боится перенапряжения как по входам, так и по питанию. Превышение напряжения более чем на 5% от напряжения питания его моментально сожжет.

Система установки адреса I2C ADS1115

Данное устройство предполагает установку адреса для I2C шины при помощи замыкания вывода ADDR на цифровые сигнальные выводы или выводы шины питания. Установка различных адресов I2C предназначена для того, чтоб при подключении двух и более различных устройств не происходило конфликта между ними, т. к. в лучшем случае модули у которых адреса совпадут просто не будут работать, а в худшем – работа всех модулей на шине может стать непредсказуемой. Как выглядит выбор адреса показано на рисунке ниже.

Схема подключения АЦП ADS1115 к Arduino

Встроенный усилитель дает возможность измерения малых напряжений, не ограничивая разрешение АЦП. В следующей таблице приведены коэффициенты усиления и пределы измеряемого напряжения:

PGA FS
2/3 ±6,144 В
1 ±4,096 В
2 ±2,048 В
4 ±1,024 В
8 ±0,512 В
16 ±0,256 В

Напряжение питания АЦП должно быть больше или равно диапазону измерения, это касается коэффициентов 2/3 и 1, которые позволяют измерять значения вплоть до величины напряжения питания АЦП. Если напряжение питания меньше предела измерения, выходной код АЦП (результат преобразования) не достигнет максимального значения для выбранного предела измерения. Наибольший предел FS=6,144 В (для коэффициента 2/3) отражает полную шкалу АЦП ADS1115, но это не означает что можно подавать такое значение, напряжение подаваемое на вход АЦП не должно превышать VDD+0,3 В. В случае максимального напряжения питания (5,5 В) измеряемое напряжение не должно превышать 5,5 В+0,3 В=5,8 В.

Видео урок записанный Сергеем (support), где приводится пример работы с этим датчиком.


Publication author

636 Comments: 14Publics: 367Registration: 04-02-2018

отзывы, фото и характеристики на Aredi.ru

Мы доставляем посылки в г. Калининград и отправляем по всей России

  • 1

    Товар доставляется от продавца до нашего склада в Польше. Трекинг-номер не предоставляется.

  • 2

    После того как товар пришел к нам на склад, мы организовываем доставку в г. Калининград.

  • 3

    Заказ отправляется курьерской службой EMS или Почтой России. Уведомление с трек-номером вы получите по смс и на электронный адрес.

!

Ориентировочную стоимость доставки по России менеджер выставит после оформления заказа.

Гарантии и возврат

Гарантии
Мы работаем по договору оферты, который является юридической гарантией того, что мы выполним свои обязательства.

Возврат товара
Если товар не подошел вам, или не соответсвует описанию, вы можете вернуть его, оплатив стоимость обратной пересылки.

  • У вас остаются все квитанции об оплате, которые являются подтверждением заключения сделки.
  • Мы выкупаем товар только с проверенных сайтов и у проверенных продавцов, которые полностью отвечают за доставку товара.
  • Мы даем реальные трекинг-номера пересылки товара по России и предоставляем все необходимые документы по запросу.
  • 5 лет успешной работы и тысячи довольных клиентов.

Проблемы с чтением из ADS1115 от Raspberry Pi через интерфейс I2C



Я пытаюсь использовать АЦП-конвертер (ads1115 ).

Но когда я пытаюсь запустить пример скрипта; simpletest. py

Я получаю:

Считывая значения ADS1x15, нажмите Ctrl-C, чтобы выйти...

| 0 | 1 | 2 | 3 |

Обратная трассировка (самый недавний призыв последнего): Файл "simpletest.py", строка 43, in values[i] = adc.read_adc(i, gain=GAIN) Файл "build/bdist.linux-armv7l/egg/Adafruit_ADS1x15/ADS1x15.py", строка 192, в read_adc Файл "build/bdist.linux-armv7l/egg/Adafruit_ADS1x15/ADS1x15.py", строка 133, in _read Файл "build/bdist.linux-armv7l/egg/Adafruit_GPIO/I2C.py", строка 136, в readList Файл "build/bdist.linux-armv7l/egg/Adafruit_PureIO/smbus.py", строка 216, в read_i2c_block_data TypeError: ожидается одна символьная строка

Когда я запускаю диагностическую команду: i2cdetect, я получаю это

i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --        

Полный код скрипта python (simpletest. py), показывающий сообщение об ошибке:

# Simple demo of reading each analog input from the ADS1x15 and printing it to
# the screen.
# Author: Tony DiCola
# License: Public Domain
import time

# Import the ADS1x15 module.
import Adafruit_ADS1x15


# Create an ADS1115 ADC (16-bit) instance.
adc = Adafruit_ADS1x15.ADS1115()

# Or create an ADS1015 ADC (12-bit) instance.
#adc = Adafruit_ADS1x15.ADS1015()

# Note you can change the I2C address from its default (0x48), and/or the I2C
# bus by passing in these optional parameters:
#adc = Adafruit_ADS1x15.ADS1015(address=0x49, busnum=1)

# Choose a gain of 1 for reading voltages from 0 to 4.09V.
# Or pick a different gain to change the range of voltages that are read:
#  - 2/3 = +/-6.144V
#  -   1 = +/-4.096V
#  -   2 = +/-2.048V
#  -   4 = +/-1.024V
#  -   8 = +/-0.512V
#  -  16 = +/-0.256V
# See table 3 in the ADS1015/ADS1115 datasheet for more info on gain.
GAIN = 1

print('Reading ADS1x15 values, press Ctrl-C to quit...')
# Print nice channel column headers. 
print('| {0:>6} | {1:>6} | {2:>6} | {3:>6} |'.format(*range(4)))
print('-' * 37)
# Main loop.
while True:
    # Read all the ADC channel values in a list.
    values = [0]*4
    for i in range(4):
        # Read the specified ADC channel using the previously set gain value.
        values[i] = adc.read_adc(i, gain=GAIN)
        # Note you can also pass in an optional data_rate parameter that controls
        # the ADC conversion time (in samples/second). Each chip has a different
        # set of allowed data rate values, see datasheet Table 9 config register
        # DR bit values.
        #values[i] = adc.read_adc(i, gain=GAIN, data_rate=128)
        # Each value will be a 12 or 16 bit signed integer value depending on the
        # ADC (ADS1015 = 12-bit, ADS1115 = 16-bit).
    # Print the ADC values.
    print('| {0:>6`enter code here`} | {1:>6} | {2:>6} | {3:>6} |'.format(*values))
    # Pause for half a second.
    time.sleep(0.5) 

пожалуйста, посоветуйте.

Кевин

python raspberry-pi
Поделиться Источник Kevin     23 февраля 2020 в 08:40

3 ответа


  • Raspberry Pi i2c-ошибка установки инструментов

    Мне нужно установить i2c-tools на мой Raspberry Pi, но я столкнулся с горой неприятностей. Я пробовал несколько вариантов установки, в основном похожих на этот из spkang.co.uk но без всякой удачи. При запуске sudo apt-install i2c-tools я получаю сообщение об ошибке /run/udev or .udevdb or .udev...

  • Raspberry Pi и несколько устройств, использующих I2C

    Я хочу подключить Raspberry Pi с 2 устройствами через I2C. Как можно соединить 1 SCL и SDA с двумя устройствами?



1

уфффф долго искать. Никаких проблем с использованием python 3, но мой ROS установлен с Python 2. 7, поэтому мне нужно решить эту проблему. Вот как я это сделал после китайского форума:

Raspberry pi:

  1. команды mkdir ~/temp

  2. кд /usr/local/lib/python2.7/dist-packages

  3. СР -п Adafruit_PureIO-1.1.5-py2.7.egg ~/temp

  4. компакт ~/temp

  5. распакуйте *.яйцо

  6. компакт Adafruit_PureIO

  7. отредактируйте файл smbus.py строка 255 изменение: cmdstring[i] = val на cmdstring[i] = str(val) сохраните файл

  8. компакт ..

  9. zip -r Adafruit_PureIO-1.1.5-py2.7.egg Adafruit_PureIO-1.1.5-py2.7.egg /usr/local/lib/python2.7/dist-packages

Я написал эти шаги после того, как нашел решение.

Теперь вы можете запустить пример и свой собственный код

[email protected]:~/Adafruit_Python_ADS1x15/examples $ python simpletest.py Считывая значения ADS1x15, нажмите Ctrl-C, чтобы выйти... | 0 | 1 | 2 | 3 |

| 1157 | 845 | 292 | 292 | | 1157 | 845 | 296 | 294 | | 1157 | 845 | 293 | 296 |

Хуан.

Поделиться Juan Ramirez Jardua     16 июля 2020 в 05:27



1

У меня возникла та же проблема с python2.7, затем я устанавливаю библиотеку Adafruit ADS1115 с помощью pip3 install Adafruit-ADS1x15 , а затем запускаю свой скрипт с помощью python3, и он работает.

Поделиться charan ghumman     05 июня 2020 в 12:32



0

Я хотел бы добавить, что неадаптированная проводка может привести к изменению адреса I2C во время работы, так что устройство больше не будет доступно по исходному адресу.

Я написал пример программы, чтобы попробовать несколько конфигураций для ADS1115 без использования AdaFruit библиотека, которая, кажется, помогла некоторым людям: http://smartypies.com/projects/ads1115-with-raspberrypi-and-python/ads1115runner

Поделиться gulux     08 марта 2020 в 08:15


  • Связь I2C в raspberry pi с использованием python

    Я хочу настроить I2C для raspberry pi, используя PYTHON или последний выбор C. Я работал над микроконтроллером ATMEL, он обеспечивает связь I2C с любым устройством. Мне нужен какой-то подобный механизм для raspberry pi. У меня есть следующие вопросы: 1.Мы должны определить адрес каждого устройства...

  • Ошибка I2C с ADS1115 (read_i2c_block_data)

    у меня есть проблема с ads1115 (под raspberry pi). Вот мой код python import smbus bus = smbus.SMBus(1) address = 0x49 print bus.read_byte(address) print bus.read_i2c_block_data(address, 0x00, 2) и следующий вопрос: 17 Traceback (most recent call last): File test.py, line 8, in <module> data...


Похожие вопросы:


Как считывать данные с Arduino с Raspberry pi через I2C

Я соединил Raspberry pi 2 model B с arduino uno через двунаправленный уровнемер. Raspberry pi GND ---------- GND Arduino 3.3v ---------- 5v SCL ---------- A5 SDA ---------- A4 Надеюсь, мое...


Как подключить Arduino Uno к Raspberry Pi с помощью I2C

Я пытаюсь отправить данные через интерфейс I2C из Arduino Uno в Raspberry Pi с помощью I2C. Это был код, который я использовал. В Arduino году: #include <Wire.h> unsigned int watt; unsigned...


I2C Bitbanging in Raspberry pi

Мы используем raspberry pi в одном из наших проектов; в том же мы хотим использовать i2c для интерфейса сенсорного экрана. Поскольку i2c в pi не поддерживает растяжение часов, планируя использовать...


Raspberry Pi i2c-ошибка установки инструментов

Мне нужно установить i2c-tools на мой Raspberry Pi, но я столкнулся с горой неприятностей. Я пробовал несколько вариантов установки, в основном похожих на этот из spkang.co.uk но без всякой удачи....


Raspberry Pi и несколько устройств, использующих I2C

Я хочу подключить Raspberry Pi с 2 устройствами через I2C. Как можно соединить 1 SCL и SDA с двумя устройствами?


Связь I2C в raspberry pi с использованием python

Я хочу настроить I2C для raspberry pi, используя PYTHON или последний выбор C. Я работал над микроконтроллером ATMEL, он обеспечивает связь I2C с любым устройством. Мне нужен какой-то подобный...


Ошибка I2C с ADS1115 (read_i2c_block_data)

у меня есть проблема с ads1115 (под raspberry pi). Вот мой код python import smbus bus = smbus.SMBus(1) address = 0x49 print bus.read_byte(address) print bus.read_i2c_block_data(address, 0x00, 2) и...


I2C: Raspberry Pi (Master) читать Arduino (Slave)

Я хотел бы прочитать блок данных из моего Arduino Mega (а также из Arduino Micro в другом проекте) с моим Raspberry Pi через I2C. Код должен быть в Perl, потому что это своего рода плагин для моего...


Я хочу читать с Arduino, используя I2C, используя Raspberry Pi

Я хочу читать из Arduino, используя код c++ через Raspberry Pi. Однако я столкнулся с некоторыми трудностями в поиске решения. Есть ли какой-нибудь хороший источник информации, который я могу найти...


Как исправить ошибку "sudo: . /install.sh: команда не найдена" при настройке "seed 4-Channel 16-Bit ADC for Raspberry Pi (ADS1115)"?

Я использую a Raspberry Pi 3 B с установленным Raspbian Stretch и пытаюсь установить шляпу ADC под названием в соответствии с учебником...

Gravity: 16-разрядный модуль АЦП I2C ADS1115 (совместим с Arduino и Raspberry Pi)

DFRobot I2C ADS1115 16-разрядный модуль АЦП может точно собирать и преобразовывать аналоговые сигналы. С помощью этого модуля АЦП Raspberry Pi может легко использовать широкий спектр аналоговых датчиков серии Gravity для измерения различных сигналов и восприятия этого мира.

Raspberry Pi - это обычная главная плата управления, обладающая мощными функциями, но выводы ввода / вывода Raspberry Pi могут считывать только цифровые сигналы, более того, только через внешний модуль аналого-цифрового преобразования (АЦП). считывать сигналы аналогового датчика или устройства, пользоваться им неудобно.

DFRobot I2C ADS1115 16-разрядный модуль АЦП специально разработан для аналоговых датчиков серий Raspberry Pi и Gravity, что значительно снижает сложность использования аналоговых датчиков серии Gravity, подключи и работай, без сварки, очень удобно. Количество датчиков серии Gravity велико, и их большое разнообразие может удовлетворить потребности различных датчиков Raspberry Pi.

В этом модуле используется 16-разрядный чип ADS1115, поддерживающий источник питания с напряжением 3,3 ~ 5 В. Чип имеет прецизионное опорное напряжение и программируемую регулировку усиления (PGA), поэтому точный сбор данных и преобразование могут выполняться как для слабых, так и для сильно изменчивых сигналов.Таким образом, он также применим ко всем типам приложений, которые необходимы главной плате управления для точного сбора аналоговых сигналов.

Один модуль АЦП может считывать аналоговые сигналы с 4 каналов. Благодаря встроенному переключателю выбора адреса I2C, он поддерживает каскад двух модулей АЦП и может считывать аналоговые сигналы с 8 каналов, он может удовлетворить потребности различных приложений.


Схема подключения Arduino


Схема подключения Raspberry Pi

Внимание:
Напряжение на выводах аналогового входа должно быть меньше VCC + 0. 3В!

  • Поддержка широкого диапазона напряжений питания 3,3 ~ 5,0 В
  • Цифровой сигнал уровня 3,3 В I2C, оптимизированный для Raspberry Pi
  • Интерфейс Gravity I2C, подключи и работай
  • Встроенный переключатель выбора адреса I2C, поддерживает каскад из двух модулей АЦП
  • Цветные 3-контактные разъемы, подключи и работай с аналоговыми датчиками силы тяжести
  • Напряжение питания (VCC): 3,3 ~ 5,0 В
  • Диапазон обнаружения аналогового сигнала: 0 ~ VCC
  • Количество аналоговых каналов: 4
  • Биты АЦП: 16 бит
  • Рабочий ток: 2 ~ 3 мА (без сенсорного модуля)
  • Тип интерфейса: Gravity I2C
  • Уровень интерфейса: высокий 3.3 В, низкий 0 В
  • Размер продукта: 32 мм * 32 мм (1,26 дюйма * 1,26 дюйма)
  • Гравитация: I2C ADS1115 16-разрядный модуль АЦП x1
  • Xh3.54-4pin Заголовок x1
  • Провод датчика Gravity-4P I2C / UART x1
  • Преобразователь ADS1115: техническое описание, распиновка, схема [видео]

    ADS1115 - это 16-разрядный преобразователь АЦП с интерфейсом IIC, представленный Texas Instruments. Он имеет сверхкомпактный корпус X2QFN или VSSOP, низкое энергопотребление (20 мкА), широкий вход напряжения 2.0–5,5 В, программируемая скорость преобразования данных 8SPS-860SPS, четыре несимметричных входа или два дифференциальных входа. Он может использоваться в аккумуляторных батареях для определения напряжения и тока, низкоскоростных портативных счетчиках и системах измерения температуры.

    В этом блоге представлен базовый обзор АЦП ADS1115 , включая описания контактов, функции и характеристики, альтернативные продукты и т. Д., Чтобы помочь вам быстро понять, что такое ADS1115.

    Будем рады узнать, что этот блог может быть полезен людям, любящим электронные компоненты;)

    ADS1115 16-разрядный модуль АЦП с Arduino

    Каталог


    ADS1115 Распиновка

    № контакта.

    Имя контакта

    Описание

    1

    ADDR

    I 2 Выбор адреса подчиненного устройства C

    2

    ПРЕДУПРЕЖДЕНИЕ / СУХОЙ

    Выход компаратора или готовность к преобразованию

    3

    GND

    Земля

    4

    AIN0

    Аналоговый вход 0

    5

    AIN1

    Аналоговый вход 1

    6

    AIN2

    Аналоговый вход 2

    7

    AIN3

    Аналоговый вход 3

    8

    VDD

    Блок питания. Подключите развязывающий конденсатор 0,1 мкФ источника питания к GND.

    9

    SDA

    Последовательные данные. Передает и принимает данные

    10

    SCL

    Последовательный тактовый вход. блокирует данные на SDA


    ADS1115 Feature

    • Ультра-маленький X2QFN Корпус: 2 мм × 1.5 мм × 0,4 мм
    • Широкий диапазон питания: от 2,0 В до 5,5 В
    • Низкое потребление тока: 150 мкА (режим непрерывного преобразования)
    • Программируемая скорость передачи данных: от 8 до 860 SPS
    • Одноцикловая осадка
    • Внутренний источник опорного напряжения с малым дрейфом
    • Внутренний осциллятор
    • I 2 Интерфейс C: четыре адреса с возможностью выбора контактов
    • Четыре несимметричных или два дифференциальных входа
    • Программируемый компаратор
    • Диапазон рабочих температур: от –40 ° C до + 125 ° C

    ADS1115 Advantage

    ADS1115 - это аналого-цифровое (АЦП) устройство, управляемое протоколом i2C. ADS1115 - это прецизионный аналого-цифровой преобразователь с разрешением 16 бит в сверхмалом безвыводном корпусе (QFN) и в корпусе MSPO-10. ADS1115 разработан с учетом точности, мощности и простоты. Это устройство включает в себя встроенный источник опорного сигнала и генератор. Данные будут передаваться через последовательный интерфейс i2C, и четыре ведомых устройства могут быть подключены в зависимости от выбора адреса i2c. Эти устройства работают в диапазоне напряжений от 2,0 до 5,5 В.


    ADS1115 Упрощенные блок-схемы


    ADS1115 Символы CAD / CAE


    Спецификация ADS1115

    Разрешение (бит)

    16

    Количество входных каналов

    4

    Частота дискретизации (макс.) (KSPS)

    0. 86

    Тип интерфейса

    Я 2 С

    Архитектура

    Дельта-Сигма

    Тип входа

    Дифференциальный, несимметричный

    Многоканальная конфигурация

    Мультиплексированный

    Рейтинг

    Каталог

    Эталонный режим

    Инт

    Диапазон ввода (макс.) (В)

    5.5

    Диапазон ввода (мин.) (В)

    0

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

    Компаратор, осциллятор, PGA

    Диапазон рабочих температур (C)

    -40 до 125

    Потребляемая мощность (тип. ) (МВт)

    0.3

    Аналоговое напряжение AVDD (мин.) (В)

    2

    Аналоговое напряжение AVDD (макс.) (В)

    5,5

    INL (макс.) (+/- LSB)

    1

    Цифровое питание (мин.) (В)

    2

    Цифровое питание (макс.) (В)

    5.5


    Цепь ADS1115

    • Мониторинг токового шунта низкого напряжения


    Функциональные блок-схемы ADS1115


    ADS1115 Пакет


    Лист данных на компоненты

    Лист данных ADS1115


    FAQ

    ADS1115 - это точный 16-битный АЦП с четырьмя мультиплексированными входами. Вы можете использовать каждый вход отдельно или попарно для дифференциальных измерений.... Здесь также рассказывается, как устройство может измерять отрицательное напряжение, даже если оно работает только от одного источника питания.

    ADS1115 - это внешний аналогово-цифровой преобразователь (АЦП), который мы можем подключить к процессору, например, Arduino, для измерения аналоговых сигналов. ... ADS1115 предоставляет 4 16-битных АЦП, 15 для измерения и один последний для знака. ADS1115 подключен по I2C, поэтому его легко читать.

    Аналогово-цифровые преобразователи (АЦП)

    преобразуют аналоговое напряжение в двоичное число (последовательность единиц и нулей), а затем, в конечном итоге, в цифровое число (основание 10) для считывания на измерителе, мониторе или диаграмме.... Точно так же для того же диапазона от 0 до 10 В постоянного тока разрешение 16-битного АЦП составляет 10/216 = 10/65 536 = 0,153 мВ.

    Техническое описание

    ADS1115 - 16-разрядный АЦП со встроенным мультиплексором, осциллятором и эталоном

    ADC318A : дискретизирующие аналого-цифровые преобразователи. Низкое рассеивание мощности (макс.960 мВт) TTL-совместимый выход Дифференциальная / интегральная нелинейность (LSB макс.) 1: 2 Демультиплексированный прямой выход, программируемый 2: 1 Частотно-разделенный тактовый TTL-выход со сбросом Пакет для поверхностного монтажа Выбор логики входа (TTl, ECL, PECL ) или источник питания 5 В ФУНКЦИЯ ПИН НАЗНАЧЕНИЕ DVs (цифровой) ПОЗ.НИЖНИЙ (VRB) АНАЛОГОВЫЙ ЗАЗЕМЛЕНИЕ ПОЗ.

    ADS-927 : 1 МГц, маломощный АЦП с дискретизацией: 14 бит. 14-битное разрешение Частота дискретизации 1 МГц Функционально полное Отсутствие отсутствующих кодов Маленький 24-контактный корпус DDIP или SMT Низкое энергопотребление, максимум 1,9 Вт Работает от источников питания 12 В. Конвертер D. Это устройство производит выборку входных сигналов до частот Найквиста без пропущенных кодов. Самолет ADS-927.

    ADS5121 : маломощный, 8-канальный, 10-битный, АЦП 40MSPS, 1.8В. q 8 ДИФФЕРЕНЦИАЛЬНЫХ АНАЛОГОВЫХ ВХОДОВ q ДИАПАЗОН ДИФФЕРЕНЦИАЛЬНОГО ВХОДА 1VPP q ОПОРНОЕ НАПРЯЖЕНИЕ INT / EXT q АНАЛОГОВОЕ / ЦИФРОВОЕ ПИТАНИЕ: 1,8 В q ИСТОЧНИК ЦИФРОВОГО ВХОДА / ВЫВОДА: 1,8 В / 3,3 В -ПОДВИЖЕНИЕ ШУМА: 60 дБ при конечной частоте 20 МГц. Q РАСПРЕДЕЛЕНИЕ МОЩНОСТИ: 500 мВт.

    ADS5273 : 8-канальный, 12-разрядный, 70MSPS АЦП с последовательным интерфейсом LVDS. Максимальная частота дискретизации: 70 MSPS, 12-битное разрешение, отсутствие пропущенных кодов. Рассеиваемая мощность: 1.Технология CMOS 1 Вт Одновременная выборка и хранение 70,5 дБ SNR 10 МГц, если сериализованные выходы LVDS соответствуют или превосходят требования ANSI TIA / EIA-644-A Standard PLL ADCLK 6X ADCLK LCLKP LCLKN 1X ADCLK ADCLKP ADCLKN 12-Bit ADC OUT8P OUT8N Registers Control ADS5273 обеспечивает.

    ADS8402IBPFBR : ti ADS8402, 16-разрядный параллельный АЦП 1,25 MSPS с опорным сигналом, униполярный дифференциальный вход.

    AKD5394A : сверхвысокопроизводительный 24-битный АЦП 192 кГц.

    DAC7724N : ti DAC7724, 12-разрядный цифро-аналоговый преобразователь с четырьмя выходами напряжения.Актуальные технические характеристики и другую информацию о продукте можно найти на сайте www.burr-brown.com. Q НИЗКАЯ МОЩНОСТЬ: макс. 250 мВт. : + 85C q СБРОС НА СРЕДНИЙ МАСШТАБ (DAC7724) ИЛИ НУЛЕВОЙ МАСШТАБ (DAC7725) q СЧИТЫВАНИЕ ДАННЫХ q ДВОЙНЫЕ ВХОДЫ ДАННЫХ DAC7724 и DAC7725.

    LTC1417C : 14-разрядный преобразователь АЦП с дискретизацией 400 кбит / с с низким энергопотреблением и последовательным вводом / выводом. 16-контактный узкий корпус SSOP (посадочное место SO-8) Частота дискретизации: 400 кбит / с 1.25LSB INL и 1LSB DNL Макс.рассеиваемая мощность: 20 мВт (тип.) Однополярное питание 5 В Работа с последовательным выходом данных Отсутствие отсутствующих кодов Перегрев D) и 95 дБ THD на Найквисте.

    LTC1746 : -> Один вход. LTC1746, АЦП 5 В, 25 Мбит / с, параллельный интерфейс. LTC - это 14-битный аналого-цифровой преобразователь с частотой дискретизации 25 Мбит / с, предназначенный для оцифровки высокочастотных сигналов с широким динамическим диапазоном.Выбираемые по контактам входные диапазоны от 1 В до 1,6 В, а также режим программирования резистора позволяют оптимизировать входной диапазон LTC1746 для самых разных приложений. LTC1746 идеально подходит для требовательных приложений связи с.

    MAX1011 : 6-разрядный АЦП с низким энергопотреблением, 90 Мбит / с. o Высокая частота дискретизации: 90 Мбит / с o Низкое рассеивание мощности: 215 мВт o Отличные динамические характеристики: 5,85 ENOB с аналоговым входом 20 МГц 5,7 ENOB с аналоговым входом 50 МГц o 1 / 4LSB INL и DNL (тип.) o Смещение входа 1 / 4LSB (тип.) o Внутреннее Опорное напряжение с шириной запрещенной зоны o Внутренний осциллятор с возможностью перегрузки 55 МГц (-0. 5 дБ) Входной усилитель с полосой пропускания с True.

    MX7837 : Полный, двойной, 12-битный умножающий ЦАП с 8-битным интерфейсом шины. MX7837 / MX7847 - это сдвоенные 12-битные умножающие цифро-аналоговые преобразователи (ЦАП) с выходом напряжения. Каждый ЦАП имеет выходной усилитель и резистор обратной связи. Выходной усилитель способен развивать напряжение 10 В при нагрузке 2 кОм. Резистор обратной связи усилителя внутренне подключен к VOUT на MX7847. Для достижения полного результата не требуется никакой внешней отделки.

    PHD32UAA : Серия Phd32.32a Неизолированный преобразователь постоянного тока в постоянный, 5 В, вход 3,3 В, двойной выход.

    ADS8330 : ADS8329 - это маломощный 16-разрядный аналого-цифровой преобразователь с быстродействием 1 MSPS и униполярным входом. Устройство включает в себя 16-битный конденсаторный аналого-цифровой преобразователь SAR с собственными выборкой и хранением. ADS8330 основан на том же ядре и включает входной мультиплексор 2: 1 с программируемой опцией вывода битов TAG. И ADS8329, и ADS8330 обладают высокой скоростью.

    MAX17000A : Комплексное решение для управления питанием памяти DDR2 и DDR3 Контроллер с широтно-импульсной модуляцией (PWM) MAX17000A представляет собой комплексное решение для питания памяти DDR, DDR2 и DDR3 ноутбука.Он состоит из понижающего контроллера, LDO-регулятора источник-приемник и опорного буфера для генерации требуемых шин VDDQ, VTT и VTTR.

    ADS1115 4-канальный 16-разрядный модуль АЦП

    Описание

    ADS1115 - это прецизионный 4-канальный 16-битный аналого-цифровой преобразователь с интерфейсом I2C, который значительно повышает точность измерений по сравнению со встроенным АЦП Arduino и аналогичными микроконтроллерами.

    В ПАКЕТЕ:
    • ADS1115 4-канальный 16-разрядный модуль АЦП
    • Наружная полоса заголовка

    ОСНОВНЫЕ ХАРАКТЕРИСТИКИ 4-КАНАЛЬНОГО 16-РАЗР. МОДУЛЯ АЦП ADS1115:
    • 16-битное аналого-цифровое преобразование
    • 4 входных канала
    • Входные каналы могут быть сконфигурированы как 4 несимметричных, 2 дифференциальных или использовать в режиме компаратора
    • Режимы однократного или непрерывного преобразования со скоростью преобразования до 860 выборок в секунду
    • Встроенный усилитель с программируемым усилением может увеличивать слабые сигналы до 16x
    • 0.От 1875 мВ до 7,8125 мкВ с шагом
    • Встроенный генератор и опорное напряжение для высокой стабильности.
    • Совместимость с логикой 3,3 В и 5 В.

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

    Благодаря 16-битному разрешению и программируемым диапазонам измерения, он может измерять напряжение с шагом разрешения от 0,1875 мВ при измерении диапазона 5 В до 7,8125 мкВ при измерении диапазона 0,256 В.

    Эти модули используют интерфейс I2C и включают в себя резисторы согласования мощности и подтягивающие / понижающие резисторы, необходимые для простого включения и запуска базовых преобразований AD, но они также очень гибкие и гибкие. мощные устройства с множеством функций, которые можно исследовать в зависимости от интересов.

    Интерфейс I2C

    Модуль имеет простой в использовании интерфейс I2C, который можно настроить для использования любого из четырех разных адресов I2C, если вы хотите использовать несколько модулей в одной системе или если вы столкнулись с конфликтом адресов с другим устройством.

    Контакт адреса ADDR определяет, какой адрес I2C использовать, подключив его следующим образом:

    • 0x48 = ADDR подключен к земле (по умолчанию)
    • 0x49 = ADDR подключен к VDD
    • 0x4A = ADDR подключен к SDA
    • 0x4B = ADDR подключен к SCL

    Модуль включает в себя понижающий резистор 10 кОм, соединяющий ADDR с землей, поэтому модуль по умолчанию будет иметь значение 0x48 , если соединение не будет выполнено.

    Режимы ввода

    4 входа можно настроить для работы в 3 различных режимах.

    Односторонний режим

    В несимметричном режиме каждый из 4 входов (A0-A3) может использоваться как отдельные входы, каждый из которых связан с землей. Этот режим обеспечивает больше входов, но меньше подавляет электрические помехи и обеспечивает разрешение 15 бит.

    Дифференциальный режим

    В дифференциальном режиме работы входы действуют попарно для измерения разницы напряжений между двумя входами.Сопряжение каналов - A0 - A1 и A2 - A3. Этот режим обеспечивает дифференциальную помехозащищенность, что может быть важно в некоторых критических ситуациях измерения, когда измеряются очень слабые сигналы или имеется большой захват электромагнитного шума.

    Поскольку измерения относятся друг к другу, доступно полное 16-битное разрешение.

    Иногда можно увидеть, что дифференциальный режим позволяет измерять отрицательные напряжения, но это несколько вводит в заблуждение.Никакие входы на этом устройстве не могут быть отрицательными относительно земли, иначе устройство будет повреждено. Это означает, что один из дифференциальных входов может быть отрицательным относительно другого дифференциального входа, но оба они будут иметь положительное напряжение относительно земли. См. Раздел ниже об измерении отрицательного напряжения для получения дополнительной информации об этом.

    Режим компаратора

    В режиме компаратора вход постоянно измеряется и сравнивается со значением, установленным в устройстве.Когда сигнал превышает предопределенное значение, вывод ALRT активируется LOW. Этот вывод может опрашиваться микроконтроллером или использоваться для управления прерыванием. Доска включает в себя подтягивание 10К на этой линии.

    Диапазон измерений

    ADS1115 - это 16-битное устройство, но в несимметричном режиме вывод представляет собой целое число со знаком, и один из битов используется для знака, поэтому на практике он обеспечивает разрешение 15 бит, что означает 32 767 шагов разрешающая способность.

    Максимальное измеряемое напряжение и, следовательно, размер шага разрешения регулируется усилителем с программируемым усилением (PGA).PGA имеет 6 диапазонов полной шкалы, которые можно настроить, как показано в таблице ниже.

    Полный диапазон LSB (шаг) Размер
    6,144 В 187,5 мкВ
    4.096 В 125 мкВ
    2,048 В 62,5 мкВ
    1.024 В 31,25 мкВ
    0,512 В 15,625 мкВ
    0.256 В 7,8125 мкВ

    По умолчанию PGA установлен на максимальный диапазон 6,144 В. Это обеспечивает размер шага разрешения 6,144 В / 32767 шагов = 187,5 мкВ. Это намного меньший размер шага, чем у стандартного АЦП Arduino, который обеспечивает около 4,88 мВ на шаг.

    Имейте в виду, что абсолютное максимальное напряжение, которое можно измерить, составляет VDD + 0,3 В. Если устройство работает при 5 В, максимальное напряжение, которое можно безопасно измерить, составляет 5,3 В. Диапазон выше этого в основном потрачен впустую.Если на входе будет более высокое напряжение, чем максимальное, устройство может быть повреждено.

    Если измеряемые напряжения меньше и желательно оптимизировать разрешение считывания, можно запрограммировать PGA на полный диапазон вплоть до 0,256 В, что дает разрешение 7,8125 мкВ на шаг.

    Важное примечание: При использовании устройства для измерения напряжения на шунтирующем резисторе в дифференциальном режиме убедитесь, что максимальное напряжение 5,5 В устройства ADS1115 не превышается.Хотя напряжение, измеряемое на шунте, может быть очень небольшим, если шунт находится на стороне высокого напряжения нагрузки, например, в цепи 12 В, напряжение относительно земли будет намного превышать номинальное значение устройства. Обычно для использования этого устройства шунт должен находиться на стороне низкого напряжения нагрузки.

    Режимы преобразования

    Режим непрерывного преобразования:

    Модуль обычно работает в режиме непрерывного преобразования. В этом режиме ADS1115 постоянно выполняет преобразования.При чтении будет сообщено о последнем завершенном преобразовании.

    Режим одиночной съемки

    Устройство потребляет мало энергии, но если вы ищете минимальное энергопотребление, ADS1115 можно перевести в однократный режим. В этом режиме преобразование выполняется только по запросу, а затем устройство возвращается в режим низкого энергопотребления. Контакт Alert / Ready может дополнительно использоваться для определения того, когда преобразование было завершено.

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

    Распространенная путаница при использовании этого устройства заключается в том, что в спецификации указан полный диапазон шкалы как в положительных, так и в отрицательных числах, например, ± 6.144. Это позволяет легко думать, что устройство может измерять как положительное, так и отрицательное напряжение относительно земли, но это не так. Любое отрицательное напряжение относительно земли> -0,3 В приведет к повреждению устройства.

    Знак ± применим только к дифференциальному режиму работы. Например, для дифференциальной пары A0 / A1 вход A0 считается положительным, а A1 - отрицательным. К обоим входам должно быть приложено положительное напряжение, но если напряжение на A0 больше, чем A1, разница между ними сообщается как положительное число, а если A1 больше, чем A0, результат сообщается как отрицательное число.

    Например, если вы подключите батарею к двум входам с положительным выводом, подключенным к A0, а отрицательным - к A1, напряжение будет отображаться как + 1,5 В. Если вы затем перевернете батарею, напряжение будет указано как -1,5 В. Аналогично, если A0 подключен к + 2V, а A1 подключен к + 3V, измерение будет -1V.

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

    Модуль в сборе

    Этот модуль поставляется со свободным заголовком. Это позволяет вам настроить модуль в соответствии с вашими конкретными требованиями, такими как, на какой стороне платы вы хотите установить разъем, или если вы хотите припаять провода для выполнения соединений. Для использования с макетными платами мы размещаем заголовки снизу, чтобы модуль мог подключаться непосредственно к макетной плате.

    Соединения модулей

    Подключение к модулю прямое.

    1. Поставка 3.Питание 3 или 5 В и заземление
    2. Подключите линии I2C SCL и SDA к ним на MCU. Строки ADDR и ALRT пока можно игнорировать.
    3. Подключите измеряемое напряжение к аналоговому входу (ам). Обязательно соблюдайте требование не превышать напряжение VDD на аналоговых входах.

    Заголовок 1 x 10

    • VDD = VDD (2,0–5,5 В) обычно подключается к MCU 3,3 В или 5 В
    • GND = Земля подключается к заземлению MCU
    • SCL = I2C SCL подключается к MCU I2C SCL
    • SDA = I2C SDA подключается к MCU I2C SDA
    • ADDR = Адрес I2C.По умолчанию, если не подключен, 0x48.
    • ALRT = Предупреждение / Готово. Выход предупреждения для компаратора или выход готовности к преобразованию в однократном режиме
    • A0 = Аналоговый вход 0
    • A1 = Аналоговый вход 1
    • A2 = Аналоговый вход 2
    • A3 = Аналоговый вход 3

    РЕЗУЛЬТАТЫ НАШИ ОЦЕНКИ:

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

    С этими модулями легко приступить к работе с базовой настройкой, используя библиотеку Adafruit ADS1X15, как показано в примере ниже. Библиотеку можно легко установить из среды IDE с помощью диспетчера библиотек.

    Если вас интересуют некоторые из более продвинутых функций, ознакомьтесь как с таблицей ниже, так и с примерами файлов, которые устанавливаются при установке библиотеки.

    Эта тестовая установка требует только следующих подключений.

    • Vdd - подключение к 3.3 В или 5 В для соответствия MCU
    • Gnd - подключается к заземлению на MCU
    • SCL - подключается к I2C SCL на MCU
    • SDA - подключается к I2C SDA на MCU
    • ADDR - оставить отключенным для адреса по умолчанию 0x48
    • A0 - Подключение к питанию 3,3 В на MCU или другому известному напряжению

    Пример вывода программы показан ниже. Небольшие колебания напряжения могут быть вызваны пульсацией в источнике питания или шумом на наших соединительных проводах на макетной плате.

    Программа тестирования 4-канального 16-разрядного модуля АЦП ADS1115

     / * ADS1115 4-канальная 16-разрядная программа тестирования АЦП
     
     Базовый код для тестирования модуля ADS1115 ADC. Выполняет одностороннее чтение
     на модульном канале A0. Использует диапазон измерения по умолчанию 6,144 В.
    
     Модульные соединения:
     VDD = 5 В
     Gnd = Земля
     SCL = SCL / A5 на MCU
     SDA = SDA / A4 на MCU
     ADDR = Плата имеет вывод на землю (устанавливает адрес I2C 0x48)
     А0 = 3.3В на MCU. Измеряемое напряжение. Может быть любое напряжение <5В
    
     Использует библиотеку Adafruit ADS1X15, которую можно загрузить через IDE.
    * /
    
    #include 
    #include 
    
    Adafruit_ADS1115 реклама (0x48); // Создание рекламного объекта с адресом I2C по умолчанию
    
    плавающее напряжение = 0,0; // Считывание напряжения с ADS1115
    
    // ================================================ ===============================
    // Инициализация
    // ================================================ ===============================
    void setup () {
     Объявления.начинать(); // Инициализируем рекламу
      Серийный . Начало (9600); // Устанавливаем скорость связи для окна последовательного монитора
    }
    
    // ================================================ ===============================
    //  Главный
    // ================================================ ===============================
    void loop () {
    
     int16_t adc0; // Возвращаемое значение из АЦП - 16-битное целое число
    
     adc0 = ads.readADC_SingleEnded (0); // Снимаем одностороннее чтение на канале A0
     Напряжение = (adc0 * 0.1875 г.) / 1000; // Преобразуем необработанные показания в напряжение
     
      Серийный  .print ("Чтение A0:");
      Серийный  .print (adc0); // Распечатать необработанное чтение
      Серийный  .print ("\ tVoltage:");
      Серийный  .println (Voltage, 7); // Вывести рассчитанное напряжение до 7 цифр
      Серийный  .println ();
     задержка (1000); // Считываем каждую секунду
    }
     

    ДО ОТГРУЗКИ ЭТИ МОДУЛИ ЯВЛЯЮТСЯ:
    • Образцы проверены и протестированы по входящей партии

    Примечания:

    1. Нет

    Технические характеристики

    Операционные рейтинги
    Vdd Рекомендуемый диапазон 2.0 - 5,5 В
    I Тип Режим непрерывного преобразования 150 мкА
    AV Макс Максимальное рекомендуемое аналоговое входное напряжение Vdd
    AV Мин. Минимальное рекомендуемое аналоговое входное напряжение ЗЕМЛЯ
    Разрешение 16 бит
    Коэффициент конверсии от 8 до 860 SPS
    Размеры Д x Ш (печатная плата) 27 x 17 мм (1.06 x 0,67 ″)
    Таблицы данных Texas Instruments ADS1115

    ADS1115 16-битный 4-канальный АЦП с программируемым усилителем усиления

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

    Основное назначение 16-разрядного 4-канального АЦП ADS1115 - служить в качестве экономичного, мощного и точного аналого-цифрового преобразователя, который можно адаптировать для выполнения различных преобразований.

    Таким образом, он имеет отличную максимальную пропускную способность (860 SPS), а также может быть запрограммирован на гораздо более низкую скорость. Внутренний усилитель с программируемым коэффициентом усиления позволяет настраивать измерения в соответствии с интенсивностью сигнала, уменьшая или увеличивая напряжение питания (от 256 мВ).

    Диапазон питания составляет от 2 до 5,5 В и позволяет адаптировать выбранный микроконтроллер, например, Arduino или Raspberry Pi. Что касается каналов передачи, их можно использовать как несимметричные входные каналы (4) или дифференциальные каналы (2).Наконец, интерфейс I2C позволяет вам выбрать до 4-х подчиненных адресов и, следовательно, подключить к вашему микроконтроллеру одновременно 4 16-битных АЦП!

    Используется для 16-разрядного 4-канального АЦП ADS1115 с усилителем с программируемым усилением

    Этот преобразователь, конечно, пригодится всем тем, у кого нет микроконтроллера с аналого-цифровым преобразователем. Его также можно добавить к уже существующей CAN для более точных измерений малых и больших сигналов.

    Такое устройство можно использовать для создания прибора для измерения температуры, системы автоматизации или управления технологическим процессом или даже индикатора уровня заряда батареи.Его крошечный размер означает, что его можно использовать в чрезвычайно компактных портативных проектах.

    Технические характеристики 16-разрядного 4-канального АЦП ADS1115 с усилителем с программируемым усилением

    • Точность: 16 бит
    • Рабочее напряжение: 2–5,5 В
    • Потребление: 150 мкА в непрерывном режиме (однократный режим: автоматическое отключение)
    • Программируемая скорость передачи данных: от 8SPS до 860SPS (выборок в секунду)
    • Опорное напряжение с малым дрейфом
    • Внутренний генератор
    • Внутренний усилитель с программируемым усилением
    • Интерфейс I2C: до 4 адресов с возможностью выбора контактов
    • 4 несимметричных канала или 2 дифференциальных канала
    • Программируемый компаратор

    Ресурсы для 16-разрядного 4-канального АЦП ADS1115 с усилителем с программируемым усилением

    Нужна дополнительная информация об АЦП ADS1115? Взгляните на это полное техническое описание!

    Техническое описание 16-разрядного 4-канального АЦП ADS1115 с усилителем с программируемым усилением

    Блок амперметра

    (ADS1115) | m5stack-store

    Описание

    Блок амперметра - это измеритель тока, который может отслеживать ток в реальном времени.16-битный аналого-цифровой преобразователь ADS1115 может использоваться для обмена данными по протоколу I2C (по умолчанию адрес I2C равен 0X48, если его не изменить вручную).

    Для обеспечения точности измерений имеется встроенный изолированный источник питания постоянного и переменного тока.

    Интерфейс I2C также электрически изолирован через модуль изолятора с низким энергопотреблением CA-IS3020S. Это предотвращает попадание шума и скачков напряжения на шине данных или других цепях на местную клемму заземления, создавая помехи или повреждая чувствительные цепи.

    Каждый блок откалиброван на заводе с начальной точностью 0,1% полной шкалы, ± 1 отсчет и разрешением 0,3 мА.

    Устройство имеет максимальный измерительный ток ± 4 А и встроенный предохранитель на 4 А для предотвращения перегорания цепи чрезмерным измерительным током.

    ? EEPROM (0x51) имеет встроенные параметры калибровки при отправке с завода. Пожалуйста, не записывайте в EEPROM, иначе данные калибровки будут перезаписаны, а результаты измерений будут неточными.

    Характеристики продукта

    • ± 4A диапазон
    • 16-битное преобразование АЦП
    • Начальная точность 0,1% полной шкалы, ± 1 отсчет
    • Разрешение 0,3 мА
    • Светодиодный индикатор питания
    • 4A Плавкий предохранитель
    • Заводская калибровка (данные калибровки сохраняются во встроенной EEPROM)
    • Встроенный изолятор I2C CA-IS3020S
    • Изолированный DC-DC
    • Платформа разработки: Arduino, UIFlow (в разработке)
    • 2x LEGO-совместимые отверстия

    Включает

    • 1x блок амперметра
    • 1x кабель Grove (20 см)

    Приложение

    • гальвано-метр
    • Мониторинг электричества
    • мониторинг управления питанием

    Параметры

    Ресурсы Параметр
    Диапазон измерения ± 4А
    Протокол связи I2C : 0x48
    Масса нетто 9 г
    Масса брутто 24 г
    Размер продукта 65 * 24 * 8 мм
    Размер упаковки 67 * 53 * 12 мм

    Класс Ads1115 (Iot.Device.Ads1115) | Документы Microsoft

    Определение

    Важный

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

    Аналого-цифровой преобразователь ADS1115

    В этой статье

      публичный класс Ads1115: IDisposable  
      тип Ads1115 = класс
        интерфейс IDisposable  
      Объявления публичного класса 1115
    Реализует IDisposable  
    Наследование
    Агрегаты

    Конструкторы

    Ads1115 (I2cDevice, GpioController, Int32, Boolean, InputMultiplexer, MeasuringRange, DataRate, DeviceMode)

    Инициализировать новое устройство Ads1115, подключенное через I2C, с дополнительным контроллером GPIO для обработки прерываний.

    Ads1115 (I2cDevice, InputMultiplexer, MeasuringRange, DataRate)
    Ads1115 (I2cDevice, InputMultiplexer, MeasuringRange, DataRate, DeviceMode)

    Инициализировать новое устройство Ads1115, подключенное через I2C

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

    Компаратор

    Режим фиксации компаратора. Если этот параметр включен, контакт ALRT / RDY будет оставаться в сигнальном состоянии до тех пор, пока не будет считано значение преобразования.Актуально только при включенном компараторе.

    ComparatorMode

    Режим компаратора. Актуально только в том случае, если событие триггера компаратора настроено и изменено EnableComparator (Int16, Int16, ComparatorMode, ComparatorQueue).

    КомпараторПолярность

    Полярность компаратора. Указывает, релевантен ли нарастающий или спадающий фронт вывода ALRT / RDY.По умолчанию: низкий (задний фронт)

    ComparatorQueue

    Минимальное количество выборок, превышающих нижний / верхний порог, прежде чем вывод ALRT будет подтвержден. Это можно установить только с помощью EnableComparator (Int16, Int16, ComparatorMode, ComparatorQueue).

    Скорость передачи данных

    ADS1115 Скорость передачи данных. Количество конверсий в секунду, которые будут иметь место. Для подготовки одного преобразования потребуется "1 / скорость" секунды.Если в В режиме пониженного энергопотребления автоматически произойдет только одно преобразование, затем потребуется еще один запрос. Установка этого свойства будет ждать, пока не станет доступно новое значение.

    DeviceMode

    Режим работы ADS1115. Если установлено значение «Непрерывный», микросхема непрерывно измеряет входные данные, и значения можно считывать напрямую. Если установлено значение PowerDown, микросхема переходит в режим ожидания после каждого преобразования и новое значение будет запрашиваться каждый раз при выполнении запроса на чтение.Это рекомендуемый параметр, когда часто переключение между входными каналами, потому что изменение канала в любом случае требует нового преобразования.

    Входной мультиплексор

    ADS1115 Входной мультиплексор. Это выбирает канал (ы) для следующей операции чтения, InputMultiplexer. Установка этого свойства будет ждать, пока значение не станет доступным из вновь выбранного входного канала.

    Диапазон измерения

    ADS1115 Усилитель с программируемым коэффициентом усиления Это устанавливает максимальное значение, которое можно измерить.Независимо от этой настройки, входное значение на любом контакте не должно превышать VDD + 0,3 В, поэтому высокие диапазоны можно использовать только с VDD более 5 В. Установка этого свойства будет ждать, пока не станет доступно новое значение.

    Методы

    Утилизировать ()

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

    EnableComparator (ElectricPotential, ElectricPotential, ComparatorMode, ComparatorQueue)

    Включить режим обратного вызова компаратора.В традиционном режиме компаратора обратный вызов запускается каждый раз, когда измеренное значение превышает заданное верхнее значение (для заданное количество выборок queueLength). Он сбрасывается при достижении более низкого значения. В режиме оконного компаратора обратный вызов запускается каждый раз, когда измеренное значение превышает заданное верхнее значение или достигает меньше заданного нижнего значения.

    EnableComparator (Int16, Int16, ComparatorMode, ComparatorQueue)

    Включить режим обратного вызова компаратора.В традиционном режиме компаратора обратный вызов запускается каждый раз, когда измеренное значение превышает заданное верхнее значение (для заданное количество выборок queueLength). Он сбрасывается при достижении более низкого значения. В режиме оконного компаратора обратный вызов запускается каждый раз, когда измеренное значение превышает заданное верхнее значение или достигает меньше заданного нижнего значения.

    EnableConversionReady ()

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

    FrequencyFromDataRate (DataRate)

    Возвращает частоту дискретизации в Гц для заданного элемента перечисления скорости передачи данных.

    MaxVoltageFromMeasuringRange (Диапазон измерения)

    Возвращает напряжение, назначенное данному значению перечисления MeasuringRange.

    RawToVoltage (Int16)

    Преобразование исходных данных в напряжение

    ReadRaw ()

    Чтение сырых данных.В режиме PowerDown (однократный) сначала запрашивается один новый образец.

    ReadRaw (входной мультиплексор)

    Считывает следующее необработанное значение, сначала переключаясь на данный вход и диапазоны.

    ReadRaw (InputMultiplexer, MeasuringRange, DataRate)

    Считывает следующее необработанное значение, сначала переключаясь на данный вход и диапазоны.

    ReadVoltage ()

    Возвращает электрический потенциал (напряжение) текущего выбранного входа.

    Чтение напряжения (входной мультиплексор)

    Возвращает электрический потенциал (напряжение) данного канала, сначала выполняет измерение

    VoltageToRaw (электрический потенциал)

    Преобразует напряжение в необработанные данные.

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

    Ваш адрес email не будет опубликован. Обязательные поля помечены *