【雕爷学编程】Arduino动手做(149)---MAX9814咪头传感器模块2

news2024/10/6 22:24:08

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

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百四十九:MAX9814麦克风放大器模块 MIC话筒声音放大/咪头传感器

在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百四十九:MAX9814麦克风放大器模块 MIC话筒声音放大/咪头传感器

第三项实验:用合成DTMF双音多频信号测试咪头传感器和DTMF解码模块

Arduino实验开源代码

/*

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

 实验一百四十九:MAX9814麦克风放大器模块 MIC话筒声音放大/咪头传感器

 第三项实验:用合成DTMF双音多频信号测试咪头传感器和DTMF解码模块

 1、安装 "dtmf"库: 下载https://codeload.github.com/DFRobot/DTMF/zip/master

 2、需要材料:喇叭1个,68Ω电阻两个,咪头传感器和DTMF解码模块,两块UNO板

 3、合成信号硬件连接:在D11,D12引脚各接一个68Ω电阻一端,68Ω电阻另一端接喇叭,然后喇叭另一端接地。

 4、咪头模块接线:

 MAX9814 Arduino

 VCC    5V

 GND    GND

 OUT    IN(接到DTMF)

 5、DTMF解码模块接线

 DTMF   Arduino

 VCC    5V

 GND    GND

 Q1     12

 Q2     11

 Q3     10

 Q4     9

*/



#include "dtmf.h"

DTMF dtmf;

void setup()

{

 Serial.begin(9600);

}

void loop()

{

 // 读DTMF代码并且用串行输出

 int myDtmf;

 myDtmf = dtmf.getDTMF();

 if (myDtmf != -1)

  Serial.println(myDtmf);

 delay(100); // 以避免收到重复的输出。

}

DTMF解码识别模块实验视频
https://v.youku.com/v_show/id_XNDU3OTkzOTA4OA==.html

打开"dtmf.h"库文件查看,发现是针对不同硬件模块的(板上芯片都是MT8870),由于接脚对不上号,故串口输出的解码不对的

在这里插入图片描述

制作简易录音机

1、下载安装TMRpcm库,地址https://github.com/TMRh20/TMRpcm

https://gitee.com/hu1023/TMRpcm

在这里插入图片描述
2、解压缩后,打开文件夹,用记事本打开pcmConfig.h

在这里插入图片描述

3、TMRpcm里面还有一个用于录音的方法,源码中是被注释掉的,在安装该库之后需要打开源码库中的pcmConfig.h文件将以下的行取消注释,否则会编译不通过:

#define buffSize 128  //must be an even number
#define ENABLE_RECORDING // Amount of space to pre-allocate for recording
#define BLOCK_COUNT 10000UL  // 10000 = 500MB   2000 = 100MB

保存,然后手动添加该库。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百四十九:MAX9814麦克风放大器模块 MIC话筒声音放大/咪头传感器
项目:MAX9814简易录音机
接线:MAX9814接A0
MicroSD uno
CS-------------10
MOSI(DI)------11
MISO(DO)------12
CLK------------13

/*

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

 实验一百四十九:MAX9814麦克风放大器模块 MIC话筒声音放大/咪头传感器

 项目:MAX9814简易录音机

 接线:MAX9814接A0

 MicroSD    uno

 CS-------------10

 MOSI(DI)------11

 MISO(DO)------12

 CLK------------13

*/



#define buffSize 128 //must be an even number

#define ENABLE_RECORDING // Amount of space to pre-allocate for recording

#define BLOCK_COUNT 10000UL // 10000 = 500MB  2000 = 100MB

#include <SD.h>

#include <SPI.h>

#include <TMRpcm.h>

#define SD_ChipSelectPin 10

TMRpcm audio;  // 创建一个用于此程序的对象

void setup() {

 audio.speakerPin = 4;

 Serial.begin(115200);

 if (!SD.begin(SD_ChipSelectPin)) {

  Serial.println("SD Fail");

  return;

 } else {

  Serial.println("SD OK");

 }

 // 音频库需要知道使用哪个 CS pin 进行录音

 audio.CSPin = SD_ChipSelectPin;

}

void loop() {

 if (Serial.available()) {            //通过串行发送命令进行播放

  char c = Serial.read();

  Serial.println(c);

  switch (c) {

   case 'r': audio.startRecording("test.wav", 16000, A0); break; //在引脚 A0 上以 16khz 采样率记录

   case 'R': audio.startRecording("test.wav", 16000, A0, 1); break; //录音,但要直通到扬声器

   case 't': audio.startRecording("test.wav", 16000, A0, 2); break; //不记录, 直接输出到扬声器

   //注意:如果样本在写入前被丢弃,则

   //在直通模式下不会被听到

   case 's': audio.stopRecording("test.wav"); break;       //停止录音

   case 'p': audio.play("test.wav"); break;            //播放录音

   case '=': audio.volume(1); break;               //音量加1,不影响录音

   case '-': audio.volume(0); break;               //音量减1,不影响录音

   case 'S': audio.stopPlayback(); break;             //停止所有播放

  }

 }

}

Arduino实验场景图

在这里插入图片描述

实验中使用串口命令,返回情况截图

在这里插入图片描述
在电脑上打开TF卡,发现确有一个名为“test.wav”的录音文件,直接播放该文件,声音非常小,看来只是个简单的演示实验

在这里插入图片描述

直通小喇叭模式,声音小的听不到

在这里插入图片描述

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

实验一百四十九:MAX9814麦克风放大器模块 MIC话筒声音放大/咪头传感器

程序:通过读取MAX9814咪头模块输入的电压值来控制电平模块的亮灯数量(0-5)

实验接线:MAX9814咪头模块OUT接Uno的A0,电平模块接D6(pwm)

Arduino实验开源代码

/*

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

  实验一百四十九:MAX9814麦克风放大器模块 MIC话筒声音放大/咪头传感器

 程序:通过读取MAX9814咪头模块输入的电压值来控制电平模块的亮灯数量(0-5)

 实验接线:MAX9814咪头模块OUT接Uno的A0,电平模块接D6(pwm)

*/



int levelModule = 6;

int readValue = 0; //保存读到的模拟值

int ledValue = 0; //保存LED灯占空比

void setup() {

 pinMode(levelModule, OUTPUT); //数字口要选择带~号的具有pwm功能的输出口

}

void loop() {

 readValue = analogRead(A0);   //读取A0模拟口的数值(0-5V 对应 0-1024取值)

 ledValue = map(readValue, 0, 1023, -1, 6);

 // 将0到1024之间的数据映射成-1到6之间的数据

 analogWrite(levelModule, ledValue);  //PWM最大取值6

}

动感节奏灯实验场景图

在这里插入图片描述

使用MAX9814咪头模块的动感节奏音乐旋律电平灯(测试视频40秒)

https://v.youku.com/v_show/id_XNTE2OTUyMzgwOA==.html?spm=a2hcb.playlsit.page.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/751719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis PostgreSQL实现数组类型的操作

我的GitHub&#xff1a;Powerveil GitHub 我的Gitee&#xff1a;Powercs12 (powercs12) - Gitee.com 皮卡丘每天学Java 最近在学习数据库PostgreSQL&#xff0c;遇到如何实现对数组类型的数据操作&#xff0c;试着自己尝试学习实现。 话不多说&#xff0c;直接撸代码。 建表…

linux下一个iic驱动(按键+点灯)-互斥

一、前提&#xff1a; 硬件部分&#xff1a; 1. rk3399开发板&#xff0c;其中的某一路iic&#xff0c;这个作为总线的主控制器 2. gd32单片机&#xff0c;其中的某一路iic&#xff0c;从设备。主要是按键上报和灯的亮灭控制。&#xff08;按键大约30个&#xff0c;灯在键的…

新手杯—easy_base

0x00 前言 CTF 加解密合集&#xff1a;CTF 加解密合集 0x01 题目 0XezFWZfNXafRjNlNXYit3dvh2cmR3Y0x02 Write Up 先倒序 然后base64解码 以上

Self-Attention Cross-Attention

transformer的细节到底是怎么样的&#xff1f;Transformer 连环18问&#xff01; 4.1 从功能角度&#xff0c;Transformer Encoder的核心作用是提取特征&#xff0c;也有使用Transformer Decoder来提取特征。例如&#xff0c;一个人学习跳舞&#xff0c;Encoder是看别人是如何…

智能网卡在分布式 SDN 网络的应用与实践 | 龙蜥技术

编者按&#xff1a;当前智能网卡能够加速数据处理和传输&#xff0c;并能实现网络、存储和安全等功能卸载&#xff0c;在云计算领域得到广泛的应用。今天&#xff0c;浪潮数据云计算网络架构师王培辉带大家了解智能网卡加速原理和以及在浪潮分布式 SDN 网络加速的应用&#xff…

我连夜咨询了30个老同学,学IT上培训班到底有用么?

文章目录 一、背景二、学习IT上培训班的益处2.1 IT行业本身还不错2.2 获取到系统的专业知识2.3 获取到实战经验2.4 获取到网络资源和支持2.5 获取到职业发展指导2.6 建立初步的职业圈子人脉 三、学习IT上培训班的风险3.1 质量风险3.2 课程更新速度风险3.2 缺乏互动与实践机会风…

积分微分电路

积分微分电路 通过写出时域的推导&#xff0c;再到频域&#xff0c;详细介绍了积分微分的频率响应的推导&#xff0c;手绘了bode图&#xff0c;并仿真电路得到对应的结果。积分的频率响应&#xff1a;频率增加10倍&#xff0c;增益下降20db。输出相位超前输入相位90度。微分的…

GPT-4 最强竞争对手,Claude 杀疯了!

公众号关注 “GitHubDaily” 设为 “星标”&#xff0c;每天带你逛 GitHub&#xff01; 在今年早些时候&#xff0c;ChatGPT、Bard、Claude 等大语言模型&#xff0c;在 AI 领域呈三权鼎立之势&#xff0c;无人能出其右&#xff0c;被视为是能力表现最为卓越的 3 款 AI 聊天机器…

阿里云无影云电脑具体价格_云桌面不同配置1元报价

阿里云无影云电脑配置费用&#xff0c;4核8G企业办公型云电脑可以免费使用3个月&#xff0c;无影云电脑地域不同费用不同&#xff0c;无影云电脑是由云桌面配置、云盘、互联网访问带宽、AD Connector、桌面组共用桌面session等费用组成&#xff0c;阿里云百科分享阿里云无影云电…

大模型的“第一性原理”:技术创新与社会价值的接轨

随着时间来到2023年第三季度&#xff0c;国产大模型已经达到100多个&#xff0c;“百模大战”正式开启。 大模型&#xff0c;我们有了很多选择&#xff0c;也开始呈现出某种同质化。除了拼参数、比背景、看榜单&#xff0c;有没有其他方法&#xff0c;让我们更好地判断一个大模…

解决Gson解析json字符串,Integer变为Double类型的问题

直接上代码记录下。我代码里没有Gson包&#xff0c;用的是nacos对Gson的封装&#xff0c;只是包不同&#xff0c;方法都一样 import com.alibaba.nacos.shaded.com.google.common.reflect.TypeToken; import com.alibaba.nacos.shaded.com.google.gson.*;import java.util.Map;…

经典CNN(一):ResNet-50算法实战与解析

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊|接辅导、项目定制 1 ResNet理论 深度残差网络ResNet(deep residual network)在2015年由何凯明等提出&#xff0c;因为它简单与实用并存&#xff0c;随后很多研究…

Hutool工具类 -集常用工具类为一体 - 工具类之大成

文章目录 说在前面的话简介gitee介绍项目介绍 网址gtiee 网址github 网址 安装pom依赖引入 &#xff1a;下载jar 文档中文文档中文备用文档参考API视频介绍 部分截图首页包含组件(总)IO流相关部分工具类(Util)集合类HTTP客户端 功能不再一一赘述和截图&#xff0c;具体请查看官…

详解TCP协议

TCP协议段格式 序号和确认序号&#xff1a;在真实服务器和客服端通信过程中请求是并行执行的&#xff0c;这会导致到达是乱序的&#xff0c;所以才会有序号这个东西&#xff0c;确认序号是对方应答时返回的&#xff0c;例如序号发送到1&#xff0c;确认序号会返回2&#xff0c;…

计算机网络 day6 arp病毒 - ICMP协议 - ping命令 - Linux手工配置IP地址

目录 arp协议 arp病毒\欺骗 arp病毒的运行原理 arp病毒产生的后果&#xff1a; 解决方法&#xff1a; ICMP协议 ICMP用在哪里&#xff1f; ICMP协议数据的封装过程 ​编辑 为什么icmp协议封装好数据后&#xff0c;还要加一个ip包头&#xff0c;再使用ip协议再次进…

springboot农机电招平台

本系统为了数据库结构的灵活性所以打算采用MySQL来设计数据库&#xff0c;而java技术&#xff0c;B/S架构则保证了较高的平台适应性。本文主要介绍了本系统的开发背景&#xff0c;所要完成的功能和开发的过程&#xff0c;主要说明了系统设计的重点、设计思想。 本系统主要是设…

关于java垃圾回收的小结

一、为什么要有垃圾回收 我们每次创建对象都需要在栈上开辟空间&#xff0c;堆上使用内存&#xff0c;如果我们只是开辟了这个空间&#xff0c;而不去释放他&#xff0c;那么再大的内存和空间也会有满的一天&#xff0c;所以我们在Java中引入了GC&#xff08;垃圾回收机制&…

Foxit PDF ActiveX 5.9.8 Crack

Foxit PDF SDK ActiveX 即时添加PDF显示功能至Windows应用程序&#xff0c;快速投放市场&#xff0c;可视化编程组件功能强大且易于使用的PDF软件开发工具包 对于刚接触PDF或不愿投入过多精力学习PDF技术的产品管理者及开发者来说&#xff0c;Foxit PDF SDK ActiveX无疑是理想…

中国1km分辨率逐月平均气温数据集(1901-2022)

时间分辨率月空间分辨率1km - 10km共享方式开放获取数据大小9.71 GB数据时间范围 1901.1-2022.12 数据集摘要 该数据为中国逐月平均温度数据,空间分辨率为0.0083333(约1km),时间为1901.1-2022.12。数据格式为NETCDF,即.nc格式。数据单位为0.1 ℃。该数据集是根据CRU发布的…

对Vue组件化开发思想的一些理解

目录 组件的分类 为什么需要组件化开发 如何设计组件 组件间通信 组件系统是 Vue的一个重要概念&#xff0c;让我们可以用独立可复用的小组件来构建大型应用。几乎任意类型的应用的界面都可以抽象为一个组件树&#xff1a; 写一个 Vue 项目&#xff0c;其实就是在写一个个的…