Arduino留言机

随着智能手机的发展,留言机这样类似简单的低端产品变得有些多余,没有那么实用,但是在某些场合仍然有利用的价值。如在没网络的地方,或是快递员给家里送了快递,给家中的老人小孩留一段言,用另一种新奇的方式来留言,别有一番乐趣!

一、总体设计思路

主要依赖于硬件语音录放模块ISD1820,该模块扩展出了IO口可以用单片机来控制录音和放音操作。所以总体在编写程序上就显得很简单了,增加两个按键开关用于录音和放音操作,以及一个LCD1602液晶显示屏,我们只用写按下录音键和放音键控制语音模块IO口的高低电平状态以及显示屏的逻辑就能实现相应功能。

二、电路连接

ISD1820语音录放模块简介:

ISD1820芯片采用CMOS技术,内含振荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及FLASH阵列。最小的录放系统仅需麦克风、喇叭、两个按钮、3V电源及少数电阻电容。在录放操作结束后,芯片自动进入低功耗节电模式,功耗仅0.5μA。芯片采用多电平直接模拟量储存专利技术(DAST),每个采样值直接储存在片内FLASH单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和金属声。ISD1820的声音采样频率可通过外接震荡电阻来调节,从3.7KHZ到8KHZ对应不同的录音时间和频带宽度。片内信息可保存100年(无需后备电源),FLASH单元可反复录音1万次。

VCC:直流电源3-5v

GND:接地

REC键:录音按键,按住就能录音,松开按键停止录音;

PLAYE键(P-E):触发模式放音,按一下就播放当前整段的语音;

PLAYL键(P-L):点动模式放音,按住才放音,松开就停止放音;

FT跳线:直通控制,可使咪头语音直通到喇叭放音;

注意:单片控制REC端口高电平开始录音,P-L端口高电平放音,反之低电平不工作。

LCD1602液晶显示屏模块简介:

这里用的是IIC协议连接,屏后转接板有sda和scl数据和时钟引脚,连接在Arduino板上A4和A5即可,使用时只需选好地址初始化即可,很简单。一共两排,每排能显示16个字符。

总体连接:

三、代码部分

#include #include   //液晶显示屏库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);  }}

代码部分相当简单,附Mixly图形化编程代码,可用来指导学生教学

注:本案例已经用来指导学生参加竞赛,切勿原装抄袭,可改进!

来都来了就关注一哈嘛

arduino 停止程序_Arduino用ISD1820语音录放模块制作留言机相关推荐

  1. ISD1820c语言程序,DIY制作ISD1820语音录放/喊话器,附原理图/PCB/BOM/程序

    本设计分享的是DIY制作ISD1820语音录放/喊话器全套资料,见附件下载其原理图/PCB/BOM/单片机控制ISD1820录放模块程序等.ISD1820语音录放/喊话器可用51单片机控制,使用方便的 ...

  2. 简单好用的ISD1820语音录放芯片

    喜欢请关注微信公众号:嵌入式从0到1 公众号内容面向在校大学生.电子爱好者.嵌入式工程师: 涉及电子制作.模块使用.单片机技术.物联网相关知识分享: 软硬件全栈工程师,玩模块,学硬件,带你从0走到1 ...

  3. arduino 停止程序_Arduino 中断

    中断(interrupt)停止Arduino的当前工作,以便可以完成一些其他工作. 假设你坐在家里和别人聊天.突然电话响了.你停止聊天,拿起电话与来电者通话.当你完成电话交谈后,你回去和电话响之前的那 ...

  4. arduino 停止程序_极路由1S OpenWrt开机自启程序及串口调试

    如何给openwrt添加启动项?首先在/etc/init.d中创建一个文件,在CRT终端中直接用vi命令即可,自行创建startCamera文件,如下图所示. vi编辑器中输入下图所示内容,START ...

  5. arduino 停止程序_建立Arduino机器人,第五部分:障碍规避

    欢迎阅读教程系列的第五篇文章,其中我正在构建一个基于遥控Arduino的车辆机器人. 这是我到目前为止发表的文章列表: 第一部分:硬件组件 第二部分:Arduino编程 第三部分:组装机器人 第四部分 ...

  6. arduino电风扇程序_Arduino实验项目:温控电风扇

    这个实验是用Arduino控制电风扇的工作,当气温达到某一设定值它打开风扇为你送来凉风:气温下降以后就停止工作,避免你受凉.在实验中我们可以学会读取模拟量输入值的函数analogRead()使用方法. ...

  7. arduino 停止程序_Arduino-常用指令

    pinMode(LEDPin,OUTPUT);        //设置引脚模式 参数1      引脚 参数2      OUTPUT  输出:INPUT   输入 用在setup()函数里 digi ...

  8. 基于STM32单片机的语音播报超声波测距系统【ISD1820录放模块继电器蜂鸣器扬声器】

    系统功能 使用STM32开发板,先用红外测试是否有遮挡,如果有,则使用超声波测距.如果是0-80cm之间,则打开蜂鸣器.灯.喇叭播放"当心车门开启",震动马达震动(以上持续1分钟) ...

  9. arduino 蓝牙示例_Arduino简单实例之八_蓝牙模块

    1)       说明: 蓝牙模块用于和手机或其它带蓝牙的设备通讯.蓝牙设备分为主从两种模式,作为主设备时,它查找和连接其它设备:作为从设备时只能被只它设备连接:通讯模式分透明传输和AT命令模式.最好 ...

  10. ISD1820语音模组的使用

    ISD1820语音模组的使用 ISD1820芯片 主要特性 引脚信息 ISD1820语音模组 电路图 简略的使用方法 ISD1820芯片 ISD1820是美国ISD公司于2001年最新推出一种单片8〜 ...

最新文章

  1. ControllerDescriptor的认识
  2. 问价已损坏 文件服务器,由于检查点文件 (.chk) 丢失或已损坏,无法打开数据库...
  3. 面向对象编程(一)——面向对象和面向过程
  4. 公司--下载svg图片
  5. 热门剧本杀与 SaaS 的不解之缘
  6. 通过配置host文件实现本地域名任意设置
  7. 系统自带不起眼但很强杀毒工具
  8. jquery和prototype冲突解决
  9. informix sybase数据库下载地址
  10. 文献管理软件工具讲解-------阿冬专栏!!!
  11. GIS应用技巧之景观格局分析(三)
  12. 陌上红尘,可有摆渡人?
  13. TransUNet阅读笔记与训练尝试
  14. NetXpert XG解决方案迎接新挑战!
  15. 手把手教你学python第十三讲(MRO详解和神奇的魔法方法)
  16. 最近比较火的古风姓氏头像小程序源码
  17. oracle账号共享,登陆后可下载mysql和jdk
  18. FLASH--M25P40/M25P10
  19. 半导体器件物理【11】载流子输运现象 —— 散射率Ρ、迁移率μ、电阻率ρ(电导率σ)、砷化镓
  20. 51单片机教程:按键的定时器消抖(有延时的程序不是好程序)

热门文章

  1. Windows 7 通过无线网卡,模拟Wifi,实现手机,电脑等无线设备共享上网
  2. display: inline-block;为什么会撑开父div
  3. 7.数据中台 --- 数据开发:数据体系建设
  4. 9.携程架构实践 --- 网站高可用
  5. 6.性能之巅 洞悉系统、企业与云计算 --- CPU
  6. 3.中小型企业通用自动化运维架构 -- Ansible playbook
  7. 2.mongoDB 命令
  8. 13.Linux/Unix 系统编程手册(上) -- 文件IO缓冲
  9. TestComplete自动化测试视频教程
  10. ThinkPHP在IIS下配置ISAPI伪静态去掉index.php