;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#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 ;конец всей программы
;
31 мая 2021 — 0 комментариев
ADS1115 представляет собой модуль аналого-цифрового преобразователя с 16-разрядным разрешением. Это маломощное устройство и работает в диапазоне напряжений 2,0-5,5В. Генератор IC ADS1115 и обменивается данными с микроконтроллером с использованием протокола связи I2C. Он также включает в себя усилитель с программируемым усилением до x16, который помогает масштабировать слабые/дифференциальные сигналы до полного диапазона.
Особенности и технические характеристики модуля ADS1115 с PGA
В этом разделе упоминаются некоторые функции и технические характеристики модуля ADS1115:
ADS1015, Mikroe-1893, Xinabox SX01
Примечание: больше технической информации можно найти на ADS11115 Datashept DataShept .
Конфигурация контактов модуля ADS1115 с PGA
Модуль ADS1115 имеет 10 контактов. В приведенной ниже таблице указаны все контакты модуля и функции каждого типа контактов.
Тип штифта | Описание |
ВДД | Вход напряжения |
ЗЕМЛЯ | Земля |
СКЛ | Последовательные часы I2C |
ПДД | Последовательные данные I2C |
АДРЕС | Адрес Пин-кода |
АЛРТ | Тревога/Готовность |
А0 | Аналоговый вход 1 |
А1 | Аналоговый вход 2 |
А2 | Аналоговый вход 3 |
А3 | Аналоговый вход 4 |
Зачем использовать модуль АЦП ADS1115
Все контроллеры имеют АЦП (аналогово-цифровые преобразователи), поскольку микроконтроллеры воспринимают только цифровой сигнал. Таким образом, для преобразования входящего аналогового сигнала в цифровой сигнал для чтения микроконтроллером требуется АЦП. Существующие АЦП на платах микроконтроллеров не настолько точны и масштабируемы, как хотелось бы, поскольку разрешение этих АЦП не так уж и велико. Где в игру вступают такие модули, как ADS1115.
Arduino, например, имеет 10-битный АЦП, который может предоставить нам аналоговый выход в диапазоне от 0 до 1023. Использование АЦП с высоким разрешением, такого как 16-битный ADS1115, открывает возможности для считывания аналоговых данных с большим более высокая точность и масштаб до 65536 (приблизительно 65000). Это означает, что даже если входной сигнал имеет меньший уровень, его можно масштабировать в этом диапазоне и получить более точные и точные результаты.
Модуль также имеет функцию PGA (усилитель с программируемым усилением), которая позволяет нам умножать очень маленькие значения аналогового сигнала на переменную и получать более высокое значение сигнала.
Функциональная блок-схема ADS1115 ADC
Ниже представлена функциональная блок-схема ADS1115.
Аналоговые входы проходят через мультиплексор, который затем подается на усилитель с программируемым коэффициентом усиления для усиления входного сигнала. Усиленный сигнал передается на 16-разрядный АЦП, выходной сигнал которого передается на микроконтроллер через связь I2C.
Интерфейсный модуль ADS1115 с MCU/MPU
Подключить модуль АЦП ADS1115 к MCU/MPU очень просто. Как обсуждалось выше, модуль АЦП обменивается данными через связь I2C.
SCL (последовательные часы) и SDA (последовательные данные) на модуле должны быть подключены к контактам SCL и SDA на MCU соответственно. 2 контакта для питания; VDD и земля, которые могут быть подключены к контакту 5 В и земле MCU соответственно. A0, A1, A2, A3 — четыре аналоговых входа, которые должны быть подключены к аналоговому источнику (потенциометр и т. д.).
ADS1x15 Библиотека для Arduino:
https://github.com/adafruit/adafruit_ads1x1
Приложения ADS1115Вот и приложения ADS11113 9003 9003 9003 9003
. Компаратор
2D-модель ADS1115
Ниже представлена вторая модель модуля АЦП ADS1115 с указанием его размеров в миллиметрах. Эти размеры можно использовать для создания пользовательских посадочных мест модуля для моделирования печатных плат и САПР.
Домен ads1115
создает глобальный концентратор, чтобы вы могли позже создать
отдельные датчики с помощью сенсорной платформы ADS1115.
ADS1115 16-разрядный АЦП.
объявлений1115: - адрес: 0x48
адрес ( Требуется , целое число): i²c-адрес датчика. См. Адреса I²C для получения дополнительной информации.
Continuous_Mode ( Необязательный , логический): Установите, должен ли ADS1115 непрерывно измерять напряжение или
измеряйте их только при вызове обновления. Включите это для интеграции датчика тока клещей ТТ.
По умолчанию с
.
id ( Необязательный , ID): вручную укажите идентификатор для этого концентратора ADS1115. Используйте это, если вы хотите использовать несколько концентраторов ADS1115 одновременно.
Чтобы разрешить подключение нескольких датчиков к одной и той же шине i²c, создатели этого сенсорного оборудования включили некоторые опции для изменить адрес i²c.
Если адресный контакт подключен к GND, адрес будет 0x48
(по умолчанию).
Если вывод адреса подтянут к VCC, адрес равен 0x49
.
Если контактный адрес привязан к SDA, адрес равен 0x4a
.
Если вывод адреса привязан к SCL, адрес равен 0x4B
.
Датчик ads1115
позволяет использовать сигма-дельта АЦП ADS1115.
датчики (техническое описание, Adafruit_ADS1115) или датчики сигма-дельта АЦП ADS1015 (техническое описание, Adafruit_ADS1015) с ESPHome.
Сначала настройте концентратор ADS1115 для датчика ADS1115, а затем используйте его.
сенсорная платформа для создания отдельных датчиков, которые будут сообщать
напряжение на Home Assistant.
объявлений1115: - адрес: 0x48 датчик: - платформа: ads1115 мультиплексор: «A0_GND» усиление: 6,144 имя: "Канал ADS1115 A0-GND"
мультиплексор ( Требуется ): Канал мультиплексора этого датчика. Эффективно означает, между которыми вы хочу измерить напряжение.
усиление ( Требуется , с плавающей запятой): усиление этого датчика.
имя ( Требуется , строка): Имя для этого датчика.
ads1115_id ( Дополнительно , ID): вручную укажите идентификатор Концентратор ADS1115 вы хотите использовать этот датчик.
update_interval ( Дополнительно , Время): интервал
чтобы проверить датчик. По умолчанию 60 с
.
id ( Необязательный , ID): вручную укажите идентификатор, используемый для генерации кода.
разрешение ( Дополнительно , строка): разрешение этого датчика. По умолчанию 16 бит
.
16 бит
12 бит
Примечание
Согласно (техническое описание, Adafruit), раздел 7. 3, примечание 2: «На аналоговые входы устройства должно подаваться не более VDD + 0,3В». Это означает, что если вы питаете устройство напряжением 3,3 В, позаботьтесь о том, чтобы на 4 контакта AIN не подавалось напряжение более 3,6 В.
ADS1115 имеет мультиплексор, который можно настроить для измерения напряжения между несколькими конфигурациями контактов. Это:
A0_A1
(между контактами 0 и 1)
A0_A3
(между контактами 0 и 3)
A1_A3
(между контактами 1 и 3)
A2_A3
(между контактами 2 и 3)
A0_GND
(между контактом 0 и GND)
A1_GND
(между контактом 1 и заземлением)
A2_GND
(между контактом 2 и заземлением)
A3_GND
(между контактом 3 и заземлением)
Кроме того, ADS1115 имеет усилитель с программируемым усилением (PGA), который может помочь вам измерять напряжения в различных диапазонах, а именно:
6.