• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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)
А как считать значение с конкретной ноги?
 
Сверху Снизу