首先说一下有关传感器的模拟量和开关量,不论输入还是输出,一个参数要么是模拟量,要么是开关量;
模拟量-- 控制系统量的大小是一个在一定范围内变化的连续数值,比如温度,压力等等,这些都是模拟量;模拟量传感器发出的是连续信号,用电压,电流,电阻等表示被测参数的大小;
开关量--该物理量只有两种状态,如开关的导通和断开的状态,继电器的闭合和打开,电磁阀通和断等等;
对控制系统来说,由于CPU是二进制的,数据的每位有“0”和“1”两种状态,因此,开关量只要用CPU内部的一位即可表示,比如,用“0”表示开,用“1”表示关。而模拟量则根据精度,通常需要8位到16为才能表示一个模拟量。
声音传感器是通过麦克风接收声音信号转化为音频信号,根据音频的变化确定电压的变化,从而输出所感知的声音信号的强度(可以通过LED灯来反馈电压变化);
声音传感器一般有四个接口,AO表示模拟量输出,用来实时输出麦克风所检测声音电压信号,DO表示当声音到达某个阈值时,输出高低电平信号;
具体实现代码:
int led=7;//定义LED接口,以便观察声音信号的电平
int button=6;//定义传感器DO接口,接收声音信号
int val;//定义数字变量,读取声音信号
int wal;//输出传感器模拟值
void setup() {
Serial.begin(9600);//串口输出端口
pinMode(led,OUTPUT);//led输出接口
pinMode(button,INPUT);//DO输出接口
}
void loop() {
val=digitalRead(button);//DO接口输出值赋给val
wal=analogRead(A0);//接收模拟信号
Serial.println(wal);//打印模拟信号电平
if(val==HIGH)//检测到声音信号
{
digitalWrite(led,HIGH);
}
else
{
digitalWrite(led,LOW);
}
}