在这个项目中,我将向您展示什么是SD卡模块,如何将MicroSD卡适配器与Arduino连接,以及如何将Arduino SD卡模块接口用于传感器数据的数据记录。
简介
在早期的几个项目中,我们已经将湿度、温度、RTC时钟等传感器与Arduino连接起来。我们在这些项目中所做的只是将传感器与Arduino连接起来,并在LCD或Arduino IDE的串行监视器上查看传感器的数据。
一旦你关闭Arduino,之前从传感器读取的所有数据都会丢失,现在你可以重新获取这些数据。
数据记录是根据时间或事件记录数据的过程。数据记录已经在一些应用程序中实现,如天气(温度)、农业(土壤湿度)、汽车(碰撞数据)、飞机(黑匣子)等。
在我们的例子中,如果我们想用Arduino记录传感器的数据,我们必须将SD卡与Arduino连接起来。为了做到这一点,你必须使用MicroSD卡适配器或SD卡模块,并了解Arduino SD卡模块接口。
输出视频
关于SD卡模块/适配器的简要说明
Micro SD卡是一种基于闪存的可移动存储设备。它是一种非易失性存储器,经常用于手机和其他消费电子设备。
在看SD卡适配器之前,您需要了解关于一个典型的Micro SD卡的两件事。
首先是工作电压。几乎所有的Micro SD卡工作电压范围为2.7V到3.6V(通常为3.3V)。第二,是通信接口。Micro - SD卡支持SPI通信。
相关文章:SPI通信基础知识
SD卡模块或Micro SD卡适配器是一种简单的板,方便连接Micro SD卡和Arduino等微控制器。下面是一个典型的SD卡模块的图像。
由于Arduino的工作电压为5V,而Micro SD卡的工作电压为3.3V,一个典型的Micro SD卡适配器或SD卡模块基本上由两个重要组件组成。它们是3.3V稳压器IC和用于通信引脚的5V至3.3V电平转换IC。
SD卡模块引脚
谈到引脚,正如我所提到的,Micro SD卡只支持SPI通信,SD卡模块有用于SPI通信的引脚。所以,SD卡模块上的引脚如下所示。
- VCC - 5 v
- 接地,接地
- MOSI -主输出从输入(输入)
- MISO -主入从出(输出)
- SCK - SPI时钟(输入)
- CS -芯片选择(输入)
下图显示了SD卡模块的引脚和组件。
Arduino SD卡模块接口
现在我们已经了解了一点关于SD卡模块的内容,让我们继续将它与Arduino连接起来。首先要记住,Arduino和SD卡模块之间的通信是通过SPI接口进行的。
因此,您必须识别Arduino板上的SPI引脚。在Arduino UNO的情况下,SPI引脚如下:
- 莫西人- 11
- 味噌- 12
- SCK - 13
- CS或SS - 10分
如果你正在使用Arduino兆,然后在连接之前检查SPI引脚。
接下来是Arduino SD卡模块接口,我为这个项目设计了两个电路。在第一个电路中,我简单地将Arduino和SD卡模块连接起来,提取出SD卡的信息。这个电路可以看作是Arduino SD卡模块的连接指南。
在第二回路中,实际数据记录的魔力发生了。它是第一个电路的扩展,传感器连接到Arduino的模拟引脚,来自这些传感器的数据在一个事件上被捕获。
组件的要求
这里提到的组件是为两个电路组合的。
- Arduino UNO
- 微型SD卡
- Micro SD卡适配器或SD卡模块
- 按钮
- 3 x 10KΩ电位器
- 连接电线
Arduino SD卡模块连接指南
下图为Arduino SD卡模块接口电路图。
电路设计
将SD卡模块的MOSI、MISO、SCK和CS (SS)引脚连接到Arduino的数字I/O引脚11、12、13和10上。SD卡模块的VCC和GND引脚连接到Arduino的+5V和GND。
代码
您可以在Arduino IDE中找到代码:File - > Examples - > SD - > CardInfo。您还可以使用以下代码。
工作
将Micro SD卡插入SD卡模块上提供的插槽,并进行必要的连接。将代码上传到Arduino并打开Serial Monitor。如果一切顺利,您可以在串行显示器上看到关于您的Micro SD卡的信息。
所有的一切都由Arduino的SPI和SD库负责。你不需要下载这些库,因为它们是Arduino IDE自带的。
使用Arduino SD卡模块接口进行数据记录
下一个电路是关于使用Arduino和SD卡模块登录到Micro SD卡上的数据。下图显示三个电位器连接到Arduino的三个模拟引脚。
电路设计
Arduino和Micro SD卡适配器的接口与前面的电路相同。另外,使用三个电位器作为模拟传感器,分别连接到Arduino UNO的A0、A1、A2。
在Arduino的Pin 7上还连接了一个按钮,用来标记一个事件。
代码
工作
正如我前面提到的,数据日志记录要么在预定义的时间间隔内发生,要么在触发事件时发生。对于第一种情况,即,要根据时间记录数据,必须将RTC模块连接到Arduino,这样传感器的数据就可以在一定的时间间隔内更新到日志中。
因为这个项目是Arduino和Micro SD卡之间的简单接口,所以我没有使用RTC模块,而是使用了一个简单的Push Button。
当按下按钮时,Arduino从模拟引脚捕获传感器数据,并将其写入Micro SD卡上的文本文件。
数据也显示在串行显示器上。要查看数据,只需将Micro - SD卡连接到计算机并打开文本文件。
重要提示:
- 如果您的Micro SD没有被Arduino读取,请确保它是FAT格式的。SD库支持FAT16和FAT32格式。
- SPI引脚MOSI, MISO和SCK是固定的,但CS或SS引脚可以修改。确保您选择了正确的pin。
3反应
是否有可能将sd卡中存储的图像发送电子邮件?
感谢您的解释thème,我们的愿望intéressant .我们的愿望继续....
这是一个有趣的项目。但就像我第一次看到它一样,我想知道为什么代码不只是在一个或多个日志参数更改时才写入,而是记录所有的值,而不是每个固定的时间段。