arduino 制作一个开门语音欢迎装置

实现目标:

当门打开时,自动播放一段录制好的欢迎词(如果门一直保持打开,只播放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;                  //设置门的状态为关
  }
}

你可能感兴趣的:(arduino 制作一个开门语音欢迎装置)