文章目录

  • 简述
  • 器件
  • 代码部分
  • 测试结果
  • 总结

简述

这里利用语音识别模块与arduino UNO 测试一个简单的语音控制小灯亮灭的程序。希望能给我一样的在两个东西的串口通信有困惑的小伙伴一个参考。有做的不对的地方,欢迎大家一起交流学习。

器件

语音模块LDV7
由一片stc11单片机和LD3320组成,我用的这个语音模块有五个针脚,分别是GND,RXD,TXD,3.3V,5V。此模块的工作电压是5v(使用手册说的是5v,但是我实际使用的结果是烧写代码用的5v,与arduino相连用的3.3v。如果连接arduino的5v就无法正常工作),代码的烧写需要用到USB转TTL与电脑端相连。(注意语音模块的RXD与TXD要跟USB转TTL模块的RXD,TXD反接)用keil编译代码后再用串口助手进行烧写。

(注:跟我一样在语音模块上没有复位按钮的需要在烧写代码时拔插GND口的线进行从新上电才能烧写进代码)

arduino UNO
这个就不再多介绍,使用的是0和1口,也就是RXD,TXD。接线图如下:

这里连接一个小灯来测试从串口的数据。下面进入代码。

代码部分

语音模块代码
由于这个语音模块的分为几个模式。并且代码也由厂商写好,只需要我们修改部分代码然后进行烧写即可。

我们没有用到语音模块的io口,所以这里我采用口令模式就可以了。进入代码有三个地方需要我们修改分别是LDChip.c中的关键词修改(包括唤醒指令及命令指令)、识别码以及识别码的宏定义修改和main中的发送的数据进行自行修改。如下图:



方便测试,我只修改了main函数中发送的数据。将开灯和关灯发送的数据修改为1和2。如下图展示的:

完成修改就能烧写进语音模块并与arduino相连。

arduino代码部分

int md;
void setup() {
Serial.begin(9600);
pinMode(7,OUTPUT);
//pinMode();}void loop() {while(1){if(Serial.available()>0){md=Serial.read();switch(md){case 49:digitalWrite(7,HIGH);break;case 50:digitalWrite(7,LOW);break;}Serial.println(md);}}
}

这个测试代码需要解释的地方就是为什么接受到数据是49和50.这也是我自己疏忽的地方,因为我们发过来的是字符1和2,而arduino从串口缓冲器获取的数据是1和2的ASCII码也就是49,50。(当然也可以用char定义或者md==‘1’)。其他的也就没什么问题。

测试结果

测试结果我就用arduino编译器自带的串口监视器展示:

总结

做了一个LDV7语音模块与arduino串口传输的测试程序。方便记忆,也希望对有需要的人有帮助。如果对编写代码的keil有问题的欢迎和我交流。

arduino与语音模块LDV7(LD3320)的串口通信实现简单语音控制相关推荐

  1. 一、基于wifi控制的智能家居系统之项目简介和设计方案(硬件基于arduino+esp8266,软件Android+Web端+scoket服务器,实现语音控制)

    由于是物联网工程的学生,会一点硬件,会一点Android开发,会一点Web开发,于是乎决定毕设的时候做一个简单一点的毕设,但是能够把所有的知识都应用,串联起来,将所学的知识实践. 一.项目功能介绍 项 ...

  2. 51单片机基础——串口通信发送字符ab控制流水灯

    /* 当串口调试助手发送a时执行5ms流水灯功能, 当串口调试助手发送b时执行50ms流水灯功能 */#include <reg52.h> #include<intrins.h> ...

  3. 4、Proteus仿真STM32串口通信,发送数据控制LED流水灯的启动和停止

    一.实验说明 本次实验建立在第三个实验基础上,稍加修改,通过串口调试助手发送数据到Proteus来实现对流水灯的启动和停止,所以实验采用2个通信串口,实验原理非常简单,只要熟悉第三次实验的过程,就非常 ...

  4. LabVIEW中的VISA函数串口通信的简单例子

    1.用VISA函数串口将数据读取并以数组的形式展示出来 前面板 程序 2.VISA函数串口数据读取与传出 前面板 程序

  5. 树莓派外设开发基础—串口通信

    文章目录 一.串口通信的一些概念 二.树莓派串口通信设置 三.树莓派串口通信API 四.树莓派与PC通信 1.接线 2.程序与测试 拓展 一.串口通信的一些概念 串口通信通常用在多机通信中. 串口通信 ...

  6. Arduino与LU-ASR01语音识别模块的双向串口通信实现

    之前我写了一篇<Arduino的智能语言输入实现>,讨论了Arduino与LU-ASR01之间通过串口通信实现Arduino的中文语音输入,不过那个通信是不完整的,因为LU-ASR01的串 ...

  7. Arduino与掌控板通过软串口通信将数据上传阿里云

    注:本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明. 在Mind+上使用 Arduino UNO上云的话,需要购买DFRobot的OBLOQ物联网模块,由 ...

  8. js 串口通信mscomm接收undefined_串口通信帧的同步方法(识别一帧数据的起始结束)42...

    串口通信是单片机和DSP等嵌入式系统之间,以及嵌入式系统与PC机或无线模块之间的一种非常重要且普遍使用的通信方式.在嵌入式系统的硬件结构中,通常只有一个8位或16位的CPU,不仅要完成主流程的工作,同 ...

  9. 51单片机学习笔记(串口通信 LED点阵屏 DS1302)

    四.串口通信 1.基本概念 通信中最重要的两个方面: 信息表示和解析方法: 信息的传输方法. 通信双方事先需要约定好信息的表示方法和解析方法,做到一致,否则信息不能有效传递. 信号的传输方法是指经过编 ...

最新文章

  1. 一步一步玩控件:自定义TabControl——从山寨Safari开始
  2. 在Android Native层中创建Java虚拟机实例
  3. Pytorch框架中SGD&Adam优化器以及BP反向传播入门思想及实现
  4. 线程属性 pthread_attr_t
  5. javaee 中文帮助文档_大牛耗时三天整理的:微服务+Nginx+Kubernetes实战文档和面试题...
  6. java基础—线程间的通讯 生产者与消费者
  7. python 线性规划问题_使用Python进行线性规划示例
  8. XPO学习(3)----数据查询
  9. 数据库基础:什么是行?什么是主键?
  10. R大 关于 G1 算法原理的解释说明
  11. 【解决windows】Windows Linux双系统安装历程,超详细
  12. 【精品】爬取 国家统计局 2020年 省市县乡村 数据
  13. 三年探索:一条自控、电信/科类学生的技术成长路线
  14. netty 给指定用户推送消息_Netty实战:设计一个IM框架就这么简单!
  15. 改变生活的态度,突破瓶颈
  16. 第四周day19-三剑客之awk
  17. 复旦大学计算机科学与技术分数,2015年复旦大学计算机科学与技术考研复试分数线是320分...
  18. 排序算法——快速排序(图解+代码)
  19. 信号、传输介质、数制转换
  20. 百度鹰眼服务安卓端示例工程使用流程

热门文章

  1. 苹果手机测试网络速度的软件,iPhone6怎么看网速?查看苹果6 Plus网速给不给力的方法...
  2. python实现日历功能_详解Python日历模块的使用
  3. ctf从零到入门0x04:(转载)ctf中最全的(脑洞大开的加密方法)
  4. C语言学习记录——팔 函数和递归(1)
  5. (172)SystemVerilog[打两拍]
  6. 团队做项目该怎样分工
  7. Sil7172中文资料
  8. YOLOv7姿态估计pose estimation(姿态估计+目标检测+跟踪)
  9. Python 时间处理/datetime/arrow/日期处理
  10. 【操作系统】死锁相关知识点