实现目标:
当门打开时,自动播放一段录制好的欢迎词(如果门一直保持打开,只播放1遍)。
材料:
arduino控制 1
ISD1820语音模块 1
霍尔传感器 1
磁铁 1
接线图(此图未接霍尔传感器,请自行脑补)
ISD1820自带的扬声器声音很小,最好接个电脑音箱,两根线焊接到3.5MM插头上,音箱电源自供。
此图未接霍尔传感器,请自行脑补,橙色线是录音的可以不接,VCC接5V,GND接地
录制语音的方法:
接好线后按住红色录音按钮不放说话。录完放开。如果有杂音一定是线接触不好的问题,重新插线或者换线,录制时不要晃动。
源程序:
程序难点
如果门一直保持打开,只播放1遍,利用一个门的状态变量state来解决这个问题。
int sw = 8; //霍尔传感器的接口
int speaker = 6; //语音播放的接口
int state = 0; //门的初始化状态为关
void setup() {
pinMode(5, OUTPUT);
pinMode(8, OUTPUT);
}
void loop() {
int swVal=digitalRead(sw); //获取霍尔传感器的状态
if (swVal == 0 && state == 0) { //如果霍尔传感器与磁铁分离(表示门打开了),而且门原来的状态值是关
digitalWrite(speaker, HIGH);//播放提示语音
delay(10000); //保持10秒,保证能够播放完整。
digitalWrite(speaker, LOW); //关闭语音
delay(1000);
state = 1; //设置门的状态为开
}
else if (swVal == 1) { //如果检测到霍尔传感器与磁铁接触(表示门关了)
state = 0; //设置门的状态为关
}
}
网友评论