NodeMCU 光敏红外

ADC Module

提供对ADC(Analog-to-Digital Converter)模数转换器的访问

adc.force_init_mode()

原型: adc.force_init_mode(mode_value)
作用: 检查并重新配置ESP,初始化ADC模式设置。
参数: mode_value使用adc.INIT_ADC或adc.INIT_VDD33
返回值: 更改了模式就返回true,如果已经设置过了返回false。更改成功后必须重启才能生效
例子:

1
2
3
4
5
6
7
if adc.force_init_mode(adc.INIT_VDD33)
then
node.restart()
return -- don't bother continuing, the restart is scheduled
end
print("System voltage (mV):", adc.readvdd33(0))

adc.read()

原型: adc.read(channel)
作用: 读取ADC的值
参数: 在ESP8266上始终是0
返回值: 采样值,如果ESP8266配置为使用ADC读取系统电压,则此功能将始终返回65535.这是硬件和SDK限制。
例子: val = adc.read(0)

adc.readvdd33()

原型: adc.readvdd33()
作用: 读取系统电压
返回值: 系统电压(毫伏)如果ESP8266已配置为使用ADC对外部引脚进行采样,则此功能将始终返回65535.这是硬件和SDK限制。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
IRSW = 2
gpio.mode(IRSW, gpio.INPUT)
COUNTER = 0
function read_adc_irsw()
COUNTER = COUNTER + 1
if(COUNTER % 2 == 0) then
adc.force_init_mode(adc.INIT_ADC)
photor = adc.read(0)
print("PhotoR:"..photor)
tmr.delay(5000)
adc.force_init_mode(adc.INIT_VDD33)
VDD = adc.readvdd33(0)
print("VDD:"..VDD)
end
irsw = gpio.read(IRSW)
print("IRSW:"..irsw)
end
tmr.register(0,500,tmr.ALARM_AUTO, read_adc_irsw)
tmr.start(0)