当前位置:网站首页>烟雾传感器(mq-2)使用详细教程(基于树莓派3b+实现)

烟雾传感器(mq-2)使用详细教程(基于树莓派3b+实现)

2022-04-23 14:02:00 1029179954

经验:
网上大部分关于mq-2的代码,实现的功能判断是否有烟雾值,而具体的烟雾值无法读取。由于树莓派无法直接读取模拟信号A0值,所以得借助PCF8591(读取烟雾值关键adc)读取,这个PCF8591相当关键,必须使用。
硬件准备:
树莓派3b+、mq-2、PCF8591(读取烟雾值关键adc)和杜邦线
PCF8591如下图:
在这里插入图片描述
实物连接:

PCF8591与树莓派相连接:
在这里插入图片描述
mq-2与树莓派和PCF8591相连接
mq-2 PCF8591 树莓派
vcc------------------------3.3v
gnd-----------------------gnd
AOUT–A0
关键连接如图:
在这里插入图片描述
设置树莓派:
打开I2C接口
打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config
选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动
在这里插入图片描述
上代码:

import time
from smbus import SMBus

address = 0x48

MODE0   = 0x00  #Channel0 = AIN0
                #Channel1 = AIN1
                #Channel2 = AIN2
                #Channel3 = AIN3

MODE1   = 0x10  #Channel0 = AIN3-AIN0
                #Channel1 = AIN3-AIN1
                #Channel2 = AIN3-AIN2

MODE2   = 0x20  #Channel0 = AIN0
                #Channel1 = AIN1
                #Channel2 = AIN3-AIN2

MODE3   = 0x30  #Channel0 = AIN1-AIN0
                #Channel1 = AIN3-AIN2

CHNL0      = 0x40  #Using Channel0
CHNL1      = 0x41  #Using Channel1
CHNL2      = 0x42  #Using Channel2
CHNL3      = 0x43  #Using Channel3

DAouputEn  = 0x40

PCF8591 = SMBus(1)

while True:
    value0 = PCF8591.read_byte(address)
    PCF8591.write_byte(address, CHNL0)
    time.sleep(2)

运行结果
在这里插入图片描述
具体实现效果和具体资料可到微信公众号查看:
在这里插入图片描述

版权声明
本文为[1029179954]所创,转载请带上原文链接,感谢
https://blog.csdn.net/baidu_38978508/article/details/122012224