37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来—小小的进步或是搞不定的问题,希望能够抛砖引玉。
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验三十七 MQ-3 酒精传感器模块 乙醇易燃气敏气体高灵敏检测报警器感应探头
Arduino实验接线示意图
非常简单的一个测试程序,读读串口数据,看看实验波形
Arduino实验开源代码
/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验三十七:MQ-3酒精乙醇传感器模块(半导体式表面电阻控制型)
*/
void setup()
{
Serial.begin(9600);
pinMode(A0, INPUT);
}
void loop()
{
Serial.println(analogRead(A0));
delay(200);
}
预热之后的串口数据,大概在250前后
而后,串口输出的数字一直下降,大概十分钟前后,稳定在75左右
实验用的是居家75%的消毒酒精
这模块确实对酒精很敏感,最高升到800多
拧紧酒精瓶盖后,数据有个缓慢的下降过程
把酒精撒到地上一点,也能检测到,数据幅度小很多
一个检测酒精浓度的可视化报警程序,目前稳态数据在68
检测到超标酒精浓度(大于400),报警灯亮
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验三十七:MQ-3酒精乙醇传感器模块(半导体式表面电阻控制型)之二
Arduino实验开源代码
/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验三十七:MQ-3酒精乙醇传感器模块(半导体式表面电阻控制型)之二
*/
int Buzzer = 8; // 定义数字口8 为Buzzer (蜂鸣器)
void setup()
{
pinMode(Buzzer, OUTPUT); // 定义数字口8 为输出模式
Serial.begin(9600);
}
void loop()
{
int val;
val = analogRead(A0);
Serial.println(val, DEC);
while (val < 400)
{
digitalWrite(Buzzer, LOW); //蜂鸣器不响
val = analogRead(A0);
Serial.println(val, DEC);
}
digitalWrite(Buzzer, HIGH); // 蜂鸣器响
}
/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验三十七:MQ-3酒精乙醇传感器模块(半导体式表面电阻控制型)之三
*/
const int gasSensor = 0;
void setup() {
Serial.begin(9600); // sets the serial port to 9600
}
void loop() {
float voltage;
voltage = getVoltage(gasSensor);
Serial.println(voltage);
delay(1000);
}
float getVoltage(int pin) {
return (analogRead(pin) * 0.004882814);
// This equation converts the 0 to 1023 value that analogRead()
// returns, into a 0.0 to 5.0 value that is the true voltage
// being read at that pin.
}
Arduino实验场景图