查看: 244|回复: 12

[未解决] esp32读取mq2传感器

[复制链接]
  • TA的每日心情
    擦汗
    2020-8-7 20:23
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    发表于 2020-7-31 17:07 | 显示全部楼层 |阅读模式
    不知道为什么用esp8266读取mq2传感器的时候数据正常,
    然后用esp32读取mq2的数据的时候总比esp8266大三倍。
    esp8266读取的数值大概在七八百,esp32读取到的数值大概在两千一二。
  • TA的每日心情
    开心
    2020-8-8 04:08
  • 签到天数: 643 天

    [LV.9]以坛为家II

    发表于 2020-7-31 19:13 | 显示全部楼层
    esp32是12位的,满量程4096,2.5dB衰减(ADC_ATTEN_2_5db)提供满量程电压1.5V。

    该用户从未签到

    发表于 2020-7-31 20:46 | 显示全部楼层
    esp8266的adc精度是10位,esp32是12位,同样的输入,adc的值按理说应该是大4倍,而你现在是大3倍,就搞不清楚是为什么了。
  • TA的每日心情
    擦汗
    2020-8-7 20:23
  • 签到天数: 25 天

    [LV.4]偶尔看看III

     楼主| 发表于 2020-7-31 20:49 | 显示全部楼层
    lwq1947 发表于 2020-7-31 19:13
    esp32是12位的,满量程4096,2.5dB衰减(ADC_ATTEN_2_5db)提供满量程电压1.5V。

    是不是用esp32测的的烟雾浓度在除以三就是正确的ppm?
  • TA的每日心情
    擦汗
    2020-8-7 20:23
  • 签到天数: 25 天

    [LV.4]偶尔看看III

     楼主| 发表于 2020-7-31 20:51 | 显示全部楼层
    开在边缘 发表于 2020-7-31 20:46
    esp8266的adc精度是10位,esp32是12位,同样的输入,adc的值按理说应该是大4倍,而你现在是大3倍,就搞不清 ...

    前辈,那是不是理论上esp32的值除以四就是实际的值了???单位是不是ppm?

    该用户从未签到

    发表于 2020-7-31 20:58 | 显示全部楼层
    seattle 发表于 2020-7-31 20:51
    前辈,那是不是理论上esp32的值除以四就是实际的值了???单位是不是ppm? ...

    esp32的adc值只是反应了输入引脚的电压大小,从0-3.3V对应0-4095,严格来说应该是0.1-3.2V对应0-4095,因为电压<=0.1V,adc都是0,电压>=3.2V,adc都是4095。

    adc值对应到传感器的值,要看传感器的手册,手册中肯定有具体的换算公式的。
  • TA的每日心情
    擦汗
    2020-8-7 20:23
  • 签到天数: 25 天

    [LV.4]偶尔看看III

     楼主| 发表于 2020-7-31 21:04 | 显示全部楼层
    开在边缘 发表于 2020-7-31 20:58
    esp32的adc值只是反应了输入引脚的电压大小,从0-3.3V对应0-4095,严格来说应该是0.1-3.2V对应0-4095,因 ...

    嗯嗯好的。我查查传感器
  • TA的每日心情
    开心
    2020-8-8 04:08
  • 签到天数: 643 天

    [LV.9]以坛为家II

    发表于 2020-8-1 06:03 | 显示全部楼层
    seattle 发表于 2020-7-31 20:49
    是不是用esp32测的的烟雾浓度在除以三就是正确的ppm?

    不是的,mq2传感器输出的只是电压值其大小与可燃气体的种类有关,也与模块上的灵敏度电位器有关,要标定一种气体的ppm值要通过专用仪器试验而定,个人没有条件.只是大致测量而以.
  • TA的每日心情
    开心
    2020-8-8 04:08
  • 签到天数: 643 天

    [LV.9]以坛为家II

    发表于 2020-8-1 06:40 | 显示全部楼层
    开在边缘 发表于 2020-7-31 20:46
    esp8266的adc精度是10位,esp32是12位,同样的输入,adc的值按理说应该是大4倍,而你现在是大3倍,就搞不清 ...

    esp32的ADC的默认满量程电压为1.1V。要读取更高的电压(最高为引脚最大电压,通常为3.3V),则需要将该ADC通道的信号衰减设置为> 0dB。
    当VDD_A为3.3V时:
    0dB衰减(ADC_ATTEN_0db)提供满量程电压1.1V
    2.5dB衰减(ADC_ATTEN_2_5db)提供满量程电压1.5V
    6dB衰减(ADC_ATTEN_6db)提供满量程电压2.2V
    11dB衰减(ADC_ATTEN_11db)提供3.9V的满量程电压
    由于4095可以对应不同的满量程电压,所以一个固定电压会对应不同的数值(当然还于开发板是否有外部分压电阻有关,如8266有分压电阻3.3V对应1023,否则1V对应1023).


    该用户从未签到

    发表于 2020-8-2 01:43 | 显示全部楼层
    lwq1947 发表于 2020-8-1 06:40
    esp32的ADC的默认满量程电压为1.1V。要读取更高的电压(最高为引脚最大电压,通常为3.3V),则需要将该AD ...


    Arduino core for esp32默认的就是11db,也就是满量程电压为3.9V,只不过>=3.2V都是返回最大的ADC值 屏幕快照 2020-08-02 01.20.48.png
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    【干货分享】mega2560原理图PCB图纸altium designer18
    【干货分享】mega2560原理
    分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
    来了 Arduino Portenta H7
    来了 Arduino Portenta H7
    今年2月份下的订单 6月底才发货 7月中旬收到期待已久的 Arduino Portenta H7 预售的
    点灯blinker esp8266DHT_11温度传感器微信点灯物联和天猫精灵
    点灯blinker esp8266DHT_1
    一、准备工作:1.1软件Arduino IDE (必须是1.8.10及以上版本!我这里使用的版本刚下
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表