4.2.1 实验内容
本实验为模拟输入模块实验,即输入为模拟信号,并通过屏幕正确显示读取的模拟数据。首次正式接触传感器模块(SO2浓度传感器)。在现实生活中存在的信号普遍都是模拟信号,比如空气中湿度、温度、光的亮度等都是连续变化的模拟信号。所以模拟信号的应用范围很广。传感器是用来感知外界世界的重要工具,是开源硬件创意应用中的不可或缺的组成部分。应用传感器的不同组合可以设计出各种各样的创意应用。比如用光敏传感器接收的数据来控制小灯泡的亮度,在实际生活中就广泛的应用在室内、手机屏幕亮度控制等多种场景中;利用烟雾报警器检测气体浓度通过继电器控制开关报警广泛应用在火车卫生间、宾馆等多种场景中。
本实验应用到SO2浓度传感器来检测外界SO2浓度并在屏幕上打印输出。用传感器模块检测到的数据往往不是刚好的,像是浓度百分比之类的数值,而是需要有一个特定的数据处理过程,对检测到的数据进行对应的处理,不同模块的具体处理方法不同,这需要看传感器模块的具体设置。
4.2.2 相关知识点
气体浓度传感器模块:
该模块需12v供电,输出0-5v电压(模拟量),连接到pcDuino板子上,用到板子自带的ADC转换,pcDuino开发板上引出6个ADC。ADC0和ADC1是6bit的ADC分辨率,其余的都是10bit的ADC分辨率,本实验用到A2进行数据模拟传入,转换后为0-1023之间的数字量,即将0-5v输出映射到0-1023的区间。SO2气体浓度传感器量程为0-500,所以举例接收到的数据为A,则数据处理方式如下:

4.2.3 实验步骤
连接设备,数据线连接A2,地线连GND,VCC通过5v转12v的转换器连接5v输出电压管脚;
打开Arduino IDE,新建项目;
编写代码(以下为参考代码);
编译并上传到PcDuino开发板中,观察实验现象。
实验代码:
float temp;
void setup()
{
Serial.begin(9600);
}
void loop()
{
float v1=analogRead(A0);
float b1=v1*500/1024;
float c1=b1;
Serial.print("SO2=");
Serial.print(c1);
Serial.println("ppb");
delay(1000);
}
4.2.4 实验结果
