【雕爷学编程】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”的录音文件,直接播放该文件,声音非常小,看来只是个简单的演示实验

 

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

 

posted @   行者花雕  阅读(107)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示