• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Делюсь опытом ADS1115 - 4-портовый 16-битный АЦП

ivy

New member
Adafruit написали кое-какую заготовку под ADS1015. У заготовки ограниченные возможности - сам чип может делать очень классные штуки. Под NodeMCU / Lua не нашлось заготовок. Начал писать свою.

Она уже рабочая. Хотел довести ее до состояния модуля, как с остальными заготовками.
Неожиданно (хотя прогнозируемо) пришел к выводу, что мне не подходит NodeMCU как платформа для большого проекта. Переключился на ArduinoIDE.
Несколько примеров использования АЦП ADS1015 в Lua:
Код:
-- Examples:
-- Read single value from separated port.
init()
config(,,GAIN_6V)
set_mux(MUX_0G)
print(read_value())


-- Read continuosly from compared ports.
init()
config(MODE_CONT, DR_860SPS, GAIN_4V)
set_mux(MUX_01)
t = {}
for i=1,100 do
    t[i] = read_value()
    tmr.delay(100)
done
print(table.concat(t, ','))


-- Wait until interrupt is asserted by threshold.
init()
config(MODE_CONT, DR_8SPS, GAIN_2V)
set_mux(MUX_01)
set_comp(,,,CMP_FLT_2)
set_thresholds(0x3fff, 0x07ff)
gpio.mode(7, gpio.INT, gpio.PULLUP)  -- GPIO 13
gpio.trig(7, 'both', function(level) print("Level:", level) end)
 

Manol

New member
Adafruit написали кое-какую заготовку под ADS1015. У заготовки ограниченные возможности - сам чип может делать очень классные штуки. Под NodeMCU / Lua не нашлось заготовок. Начал писать свою.

Она уже рабочая. Хотел довести ее до состояния модуля, как с остальными заготовками.
Неожиданно (хотя прогнозируемо) пришел к выводу, что мне не подходит NodeMCU как платформа для большого проекта. Переключился на ArduinoIDE.
Несколько примеров использования АЦП ADS1015 в Lua:
Код:
-- Examples:
-- Read single value from separated port.
init()
config(,,GAIN_6V)
set_mux(MUX_0G)
print(read_value())


-- Read continuosly from compared ports.
init()
config(MODE_CONT, DR_860SPS, GAIN_4V)
set_mux(MUX_01)
t = {}
for i=1,100 do
    t[i] = read_value()
    tmr.delay(100)
done
print(table.concat(t, ','))


-- Wait until interrupt is asserted by threshold.
init()
config(MODE_CONT, DR_8SPS, GAIN_2V)
set_mux(MUX_01)
set_comp(,,,CMP_FLT_2)
set_thresholds(0x3fff, 0x07ff)
gpio.mode(7, gpio.INT, gpio.PULLUP)  -- GPIO 13
gpio.trig(7, 'both', function(level) print("Level:", level) end)
А как считать значение с конкретной ноги?
 
Сверху Снизу