Arduino SD 卡:它是什么以及如何使用它
您是否执行过许多 Arduino 项目?并且您需要存储大量重要信息和日志数据?解决方案是使用 Arduino SD 卡。它是如何工作的?
本文将带您了解有关该设备的所有信息,例如它是什么、如何连接、如何使用等等。
继续阅读以发现您需要知道的一切。
Arduino 中的 SD 是什么?
Arduino SD卡
图片来源:Pixlr
SD 卡或微型 SD 卡是具有两个主要组件的设备。这些组件可帮助您轻松地将数据记录包含到您的 Arduino 项目中。此外,大多数 micro SD 卡的工作电压为 3.3V。
因此,无法将设备直接连接到 5V 逻辑电路。简而言之,如果您尝试使用 3.6V 以上的电压,它会损坏您的 SD 卡。
因此,这就是为什么模块具有稳压器(板载超低压差),可将电流电压从 3.3 – 6V 更改为大约 3.3V。
此外,SD卡模块上有一个芯片(74LVC125A),有助于将连接逻辑从3.3 - 5V更改为3.3V。因此,您可以将此过程称为“逻辑电平转换”,这意味着该板可以连接两个微控制器,如 Arduino:3.3V 和 5V。
微控制器组件
如何将标准 SD 卡与 Arduino 连接?我们有两种方法:SDIO 模式和 SPI 模式。
大多数 SD 卡模块都基于 SPI 模式(开销较小且速度较低)。这是大多数微控制器使用的简单模式。
存储卡模块
另一方面,速度更快的模式是 SDIO,它适用于手机、相机等不同的设备。但这种模式往往更复杂,因为您需要在继续之前签署机密文件。
Arduino SD 卡模块的引脚排列
SD 卡模块在适配器上有六个引脚,它们包括:
- MOSI – SPI 输入
- CS – 用于片选以禁用/启用线路的信号引脚
- GND - 接地引脚
- MISO – SPI 输出
- VCC – +5V 电源
- SCK - 它接收时钟脉冲以同步数据
如何准备您的微型 SD 卡
首先,您需要获得一个 SD 卡模块并插入您的 micro SD 卡。然后,将模块放入 Arduino 中以正确格式化卡。
当您使用它时,请确保您根据 Arduino 库格式化卡。也就是说,你应该将存储卡格式化为FAT32或FAT16。
此外,如果您使用的是全新的 SD 卡,制造商可能已经使用 FAT 文件系统对其进行了预格式化。但是您可能会遇到卡片格式的问题。因此,经验法则是重新格式化您的 SD 卡,无论是新的还是旧的。
如何将 SD 卡连接到 Arduino?
Arduino卡连接SD卡
图片来源:维基共享资源
由于您的 SD 卡已准备好使用,您可以将其连接到 SD 分线板。
因此,您可以先将 micro SD 卡模块放在面包板上。然后,将模块的 VCC 引脚连接到 Arduino 的 5V。此外,将 GND 引脚接地。剩下的就是 SPI 通信的管脚了。
通常,微型 SD 卡需要大量数据传输。但是当您将卡连接到微控制器的硬件 SPI 引脚时,它们的性能会更好。这是因为引脚 (SPI) 比使用不同的引脚集“bit-banging”接口代码更快。
此外,重要的是要注意 Arduino 板具有必须相应连接的各种 SPI 引脚。例如,Arduino Nano 有 11 (MOSI)、12 (MISO) 和 13 (SCK) 等引脚。此外,您还需要第四个引脚:SS 线“片选”。
此外,您可以将引脚 10 用作 SS 引脚或任何首选引脚。但是,在处理 Arduino mega 时,引脚是不同的。因此,您必须使用 53 (SS)、50 (MISO)、51 (MOSI) 和 52 (SCK)。此外,如果您使用其他 Arduino 板,您可以参考此官方文档。然后,您就可以记录数据了。
如何使用 Arduino 代码通过 CardInfo 测试 SD 卡模块?
与 SD 卡通信可能很乏味。但好的部分是 Arduino IDE 具有一个不错的库“SD”。因此,它简化了读取和写入 SD 卡的过程。
此外,运行草图并单击文件→示例→SD→卡信息。之后,草图会通过显示一些数据来通知您是否识别出您的 SD 卡。然后,您可以返回草图并确认“芯片选择”正在使用正确的数字引脚。如果不是,请将引脚更改为 10。
一切正常后,将 SD 卡放入模块并上传草图。此外,当您打开串行监视器时,您应该会立即看到一个提示。并且提示应该显示卷类型、大小和 SDHC(SD 高容量)作为卡类型的 FAT32。
Arduino 草图截图
但如果是克隆或损坏的 SD 卡,您可能会将 SD1 视为没有产品和制造商 ID 的卡类型。有了这个,您可以尝试重新格式化卡。如果你得到相同的结果,扔牌。
Arduino 草图截图
最后,在没有 SD 卡的情况下重新运行草图。并且草图不会初始化 SD 卡。有趣的是,如果您的卡损坏或接线错误,您也可以得到此提示。
Arduino 草图截图
如果 SD 卡已正确格式化且接线正确怎么办?提示将显示:“接线正确,并且存在卡。”
使用 Arduino SD 卡读写数据
如果您的 SD 卡已成功初始化,您可以继续下一步。首先,您可以从上传草图上的代码开始。因此,如果一切正常,您将看到“初始化完成”的显示。
此外,您会看到“写到测试完成”。因此,如果您选择重置 Arduino 并允许草图再次运行,之前的数据将不会被覆盖。相反,新数据将附加到以前的数据。
代码是什么意思?
第 1 部分
该草图具有 SPI 库和内置 SD 库。因此,您可以轻松地使用您的 SD 卡来联系 SPI 接口。
然后,您必须选择 CS 将连接到模块引脚的 Arduino 引脚。那是因为 CS 引脚不固定。另外,由于您使用的是硬件 SPI 库,因此无需说明引脚,因为它们是固定的。
接下来,您必须创建一个对象 myFile,它可以帮助您在 SD 卡上存储信息。
然后,前往 setup() 部分开始串行通信以在串行监视器上显示结果。
之后,您将需要 SD.begin() 函数来初始化您的卡。因此,如果您的卡初始化顺利通过,“if”语句将为真,并且“初始化完成”字符串出现在串行监视器上。否则会出现“else String”:“initialization failed”,程序结束。
然后,您会看到 SD.open() 函数打开了一个文件:“test.txt”。如果您没有看到此文件,则必须创建一个。因此,FILE_WRITE 函数将以读写模式打开。
文件打开后,串行监视器将显示“Writing to test.txt..”消息。此外,您将在 myFile.println() 函数中看到“测试 1、2、3”。之后,您需要应用 close() 函数来保存写入文件的数据。
第 2 部分
现在,您必须检查文件以确认写入操作是否成功。您可以通过将 SD.open() 函数用作“test.txt”来做到这一点。稍后,您可以使用 myFile.read() 函数,该函数将从文件中读取并将其显示在串行监视器上。
之后,使用“while”循环和 myFile.available() 函数读取文件字符。这是因为 read() 函数每次读取一个字符。然后,关闭文件。
不需要多次运行代码,因为这是一个演示草图。并且所有代码都在运行一次的setup()函数中。
注意事项
1. 文件名不区分大小写。所以,WriteLog.Txt 和 writelog.txt 和 WRITELOG.TXT 是一回事。
2. 可以在目录中打开你的文件。
3.可以用println()和print()函数写变量、字符串等。
4. Read() 函数没有读取完整的数字或行。相反,它一次返回一个字符。
5. 文件名要简短,因为 SD 卡库不支持“长文件名”。
常见问题解答
Arduino SD 卡的最大尺寸是多少?
SD卡最大为2GB。
Arduino SD 卡会损坏吗?
是的,这是可能的。它可能由于物理损坏、不当使用、制造缺陷和恶意软件而发生。
底线
Arduino SD 卡是一种实用的存储设备,可用于记录数据。只要您准确接线,就很容易设置。此外,您还可以使用此设备方便地读取和写入数据。
您需要帮助为您的项目获取最佳的 Arduino SD 卡吗?欢迎随时联系。
工业技术