【雕爷学编程】Arduino动手做(31)---ISD1820录放语音模块3

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验三十一:ISD1820录音语音模块 8-20秒语音模块 喊话器模块 板载咪头0.5W喇叭

在这里插入图片描述
ISD1820语音20秒录放模块实验所需硬件清单
激光头发射模块X1
激光头接收模块X1
8欧0.5瓦小喇叭X1
红外光电避障模块X1
Arduino Uno开发板 X1
杜邦线 若干(备了9条)
HC-SR04超声波测距模块X1
IIC/I2C 1602 LCD液晶屏模块X1
ISD1820语音20秒录放模块X1
LED发光二极管(绿、蓝色)X2
Proto Shield 原型扩展板(带mini面包板)X1

在这里插入图片描述
传感器模块实验所需软件平台
代码编程 Arduino IDE (版本1.8.19)
仿真编程 Linkboy (版本V4.6.3)
图形编程 Mind+ (版本 V1.7.0 RC2.0)
以及编玩边学(线上平台https://ide.codepku.com/?type=Arduino)

Arduino实验接线示意图

在这里插入图片描述

程序五:人体红外线SR-501入侵LED语音报警器
实验开源图形编程(Mind+、编玩边学)

在这里插入图片描述

实验串口返回情况

在这里插入图片描述

Arduino实验场景图

在这里插入图片描述

程序六:红外光电避障模块有人语音提示器
实验接线示意图(实际接线有调整)

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验三十一:ISD1820录音语音模块 8-20秒语音模块 喊话器模块 板载咪头0.5W喇叭

程序六:红外光电避障模块有人语音提示器

Arduino实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  程序六:红外光电避障模块有人语音提示器
*/


#define IR  8 //外光电避障模块接D8
#define REC 3//录音接脚D3

#define PLAYE 4//播放接脚D4
#define PLAYL 5

void setup(){
    
    
 pinMode(IR, INPUT);//设置外光电避障模块为输入
 pinMode(REC, OUTPUT);//录音为输出
 pinMode(PLAYE, OUTPUT);//播放为输出

 Serial.begin(9600);
}

void loop(){
    
    
 int i = digitalRead(IR);//读取外光电避障模块的值
 if(i == 0)
 {
    
    
   Serial.println("有人来了!!");
   digitalWrite(REC, 1);//开始录音

   delay(10000);
   digitalWrite(REC, 0);
    delay(1000);
    digitalWrite(PLAYE, 1);//开始播放
   delay(10000);
   digitalWrite(PLAYE, 0);
 }
}

实验串口返回情况

在这里插入图片描述
Arduino实验场景图

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验三十一:ISD1820录音语音模块 8-20秒语音模块 喊话器模块 板载咪头0.5W喇叭
程序七:激光语音播报门铃
Arduino参考开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  程序七:激光语音播报门铃
*/


int Laser = 6;//激光头接D6
int Detector = 7;//接收器接D7
int Play = 4;//录音播放接4

void setup() {
    
    
  Serial.begin (9600);
  pinMode(Laser, OUTPUT);//激光为输出
  pinMode(Detector, INPUT);//接收器为输入
  pinMode(Play, OUTPUT);//播放器为输出
}

void loop() {
    
    
  digitalWrite(Laser, HIGH);
  boolean val = digitalRead(Detector);
  Serial.println(val);
  if (val == 0)
  {
    
    
    digitalWrite(Play, HIGH);//语音播放2秒
    Serial.println("有人来了!");
    delay(2000);
  }
  else
  {
    
    
    digitalWrite(Play, LOW);
  }
}

实验串口返回情况

在这里插入图片描述
Arduino实验场景图

在这里插入图片描述

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验三十一:ISD1820录音语音模块 8-20秒语音模块 喊话器模块 板载咪头0.5W喇叭

程序八:带LCD1602液晶显示屏的留言机

Arduino实验开源代码

/*
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  程序八:带LCD1602液晶显示屏的留言机
*/

#include <LiquidCrystal_I2C.h>  //液晶显示屏库
LiquidCrystal_I2C mylcd(0x27, 16, 2); //建立液晶显示对象,传递地址、字符、行数参数初始化

void setup() {
    
    
  pinMode(4, INPUT);  //按键录音
  pinMode(3, OUTPUT);//ISD1820的REC端口
  pinMode(5, INPUT);//按键放音
  pinMode(2, OUTPUT);//ISD1820的P-l端口
  mylcd.init();//初始化LCD显示屏
  mylcd.backlight();//打开背光
  mylcd.clear();//清屏
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
}

void loop() {
    
    
  if (digitalRead(4) == HIGH) {
    
    
    //按下按键开始录音,显示屏显示字符
    while (digitalRead(4) == HIGH) {
    
     //”writing the voice....”
      mylcd.setCursor(1 - 1, 1 - 1);
      mylcd.print("writing the ");
      mylcd.setCursor(1 - 1, 2 - 1);
      mylcd.print("voice....");
      digitalWrite(3, HIGH);
    }
    digitalWrite(3, LOW);
    while (digitalRead(5) == LOW) {
    
    
      //松开按键显示字符“have messages to listen”
      mylcd.setCursor(1 - 1, 1 - 1);
      mylcd.print("have messages");
      mylcd.setCursor(1 - 1, 2 - 1);
      mylcd.print("to listen.");
      if (digitalRead(5) == HIGH) {
    
    
        break;
      }
    }
    delay(50);
  }
  else {
    
    
    digitalWrite(3, LOW);
    mylcd.clear();
    mylcd.setCursor(1 - 1, 1 - 1);
    mylcd.print("answer maching");

  }

  if (digitalRead(5) == HIGH) {
    
     //按下按键放音,显示屏显示字符“reading  the voice......”
    while (digitalRead(5) == HIGH) {
    
    
      mylcd.setCursor(1 - 1, 1 - 1);

      mylcd.print("reading  the ");
      mylcd.setCursor(1 - 1, 2 - 1);
      mylcd.print("voice......");
      digitalWrite(2, HIGH);
      digitalWrite(3, LOW);
    }
  }
  else {
    
    
    mylcd.setCursor(1 - 1, 1 - 1);
    mylcd.print("answer maching");
    digitalWrite(2, LOW);
  }
}

Arduino实验场景图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41659040/article/details/131821303