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实验场景图
hacker_2023.08.18
666