NodeMcu关于ADS1115的理解

       这个模块是16为的模拟转数字的模块,该模块是利用I2C进行通信的,根据官网上的资料可以看到四个函数还是比较好理解的。http://nodemcu.readthedocs.io/en/master/en/modules/ads1115/

  根据官网上的Example可知芯片与NodeMcu的连线,外部模拟量输入口有四个,A0,A1,A2,A3,id即为选通第几个通道,本处为0,即应接A0口进行输入;其余alert,sda,scl分别接NodeMcu的D7,D6,D5位

local id, alert_pin, sda, scl =0, 7, 6,5

     根据返回值可知volt是芯片自动计算好的电压值,单位是mv,volt_dec是十进制的电压值,adc是原始电压值,后两个量都是用来计算采样精度的问题,可以暂时不管,我们只需要第一个输出值即可。

     可用NodeMcu上的3V3进行测试,将A0接在3V3上,运行example,可以得出来电压值的测量。

NodeMcu关于ADS1115的理解_第1张图片

     附上代码,进行连续采集连续输出(用到了定时器的部分)

------------------------------------------
id, alert_pin, sda, scl = 0, 7, 6, 5
i2c.setup(id, sda, scl, i2c.SLOW)
ads1115.setup(ads1115.ADDR_GND)
ads1115.setting(ads1115.GAIN_6_144V, ads1115.DR_128SPS, ads1115.SINGLE_0, ads1115.CONTINUOUS)
function ads()
  volt, volt_dec, adc = ads1115.read()
  print(volt/1000)
end
------------Timer------------------ 
mytimer = tmr.create()
mytimer:register(1000, tmr.ALARM_AUTO , ads)
mytimer:start()

你可能感兴趣的:(NodeMcu)