一:ADC的基本参数
ADC 的基本参数通常包括以下几个:
通道和引脚: 不是所有的GPIO都可以用于ADC读取,需要查看ESP32S3的引脚图来确定哪些引脚支持ADC功能。
分辨率:指 ADC 的数字输出位数,也称为量化位数。例如,12 位 ADC 具有 4096 个离散的数字输出。
采样速率:指 ADC 可以进行采样的最大速率。对于 ESP32-S3,最大采样速率为 2.5 MS/s。
输入范围:指 ADC 可以测量输入信号的电压范围。对于 ESP32-S3,输入范围为 0-3.3V。
噪声:指 ADC 在采集时分辨率的误差和干扰的影响。噪声越小,ADC 测量结果越精准。
稳定性:指 ADC 输出的稳定性。稳定性好的 ADC 输出变化小,测量结果更加准确。
二:模块资料:
MQ2烟雾检测模块可以检测环境中如烟雾、丙烷、甲烷、乙醇等可燃气体,通过旋转可调节电位器,可以设定检测可燃气体浓度的阈值,当可燃气体浓度达不到设定阈值时,DO端输出高电平,当可燃气体浓度超过设定阈值时,DO端输出低电平,A0端供ADC采集烟雾检测模块的模拟量
三:参数特性:
气敏材料:二氧化锡(SnO2)
负载电阻:10K2
加热电阻:29Q2+32(室温)
加热功耗:≤950mW
预热时间:建议不低于5分钟
工作温度范围:-10°C~十50°C
供电电压:5V
输出形式:DO数字量(TTL高低电平);AO模拟量(0~4V以下)值;禁止直接接触或者浸没液体,在非极端环境下A0输出最高电压3.3V左右特性说明:此模块适用作定性分析,A0信号可换算300~10000ppm综合浓度范围,供参考,非精确
程序编写流程:
选定好GPIO脚,该脚与烟雾检测模块DO脚相连
选定好ADC通道,该脚与烟雾检测模块AO脚相连
初始化GPIO脚即DO脚,重点配置为浮空输入模式
初始化ADC通道对应的GPIO脚即AO脚,重点配置为模拟输入模式
初始化ADC,可以采用查询读取、中断读取或者DMA读取模拟量
通过读取DO脚的高低电平来判断可燃气体浓度是否超过设定的阈值
四:软件代码
const int adcPin = 1; // 使用支持ADC的GPIO引脚
void setup() {
Serial.begin(115200);
// 设置衰减,以测量0-3.3V信号
analogSetAttenuation(ADC_ATTEN_DB_11);
}
void loop() {
int rawValue = analogRead(adcPin);
Serial.print("Raw ADC Value: ");
Serial.println(rawValue);
// 简单换算为电压 (假设参考电压3.3V)
float voltage = (rawValue / 4095.0) * 3.3;
Serial.print("Voltage: ");
Serial.print(voltage, 3);
Serial.println(" V");
delay(1000);
}五:实物验证:
我要赚赏金
