【雕爷学编程】Arduino动手做(52)---MicroSD卡读写模块4
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验五十二:SPI接口Micro SD卡模块 TF卡读写卡器 (带电平转换芯片)
项目:制作简易录音机
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种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验五十二:SPI接口Micro SD卡模块TF卡读写卡器 (带电平转换芯片)
程序:MAX9814简易录音机
接线:MAX9814接A0
MicroSD uno
CS-------------10
MOSI(DI)------11
MISO(DO)------12
CLK------------13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | /* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验五十二:SPI接口Micro SD卡模块TF卡读写卡器 (带电平转换芯片) 程序: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”的录音文件,直接播放该文件,声音非常小,看来只是个简单的演示实验
直通小喇叭模式,声音小的听不到
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性