在本篇文章中,我们将学习使用SD卡模块和Arduino开发板实现读写数据,并制作数据记录器。我们可以使用SD卡模块将所需的存储卡添加到Arduino项目中,以存储数据、媒体文件等。
Micro SD读卡器模块也称为Micro SD适配器。该模块是一个简单的解决方案,用于在标准SD卡之间传输数据。因此,本文涵盖了SD卡信息的读取以及在SD卡中读取和写入数据的方法。同样,使用Arduino和SD卡制作数据记录器非常简单。 DHT11传感器用于测量相对湿度和温度,SD卡用于以txt格式每1秒保存一次湿度和温度值。
所需的组件 ● Arduino UNO开发板 ● Micro SD卡适配器模块 ● 16 GB容量的SD卡 ● USB读卡器 ● DHT11温湿度传感器 ● 连接跳线
SD卡模块/适配器 SD卡模块对于需要数据记录的项目特别有用。实际上有两种与micro SD卡连接的方式 - SPI 模式和SDIO模式。本文采用的是SPI模式进行连接,因为与非常复杂的SDIO模式相比,使用更容易。
SD卡模块
micro SD卡的工作电压是3.3 V。因此,我们不能直接将SD卡与5V连接。该模块板载一个超低压差稳压器,可将电压从3.3V – 6V 转换为3.3V。模块上还有一个逻辑电平转换器74LVC125A,可将接口逻辑从3.3V-5V 转换为3.3V。
Micro SD卡模块引脚排列 SD卡模块上共有六个引脚(GND、VCC、MISO、MOSI、SCK、CS)。
SD卡引脚排列
1. GND:接地引脚 2. VCC:+5V电源 3. MISO:SPI输出 4. MOSI:SPI输入 5. SCK:接受数据同步的时钟脉冲 6. CS:片选信号引脚
Micro SD卡准备操作 在将micro SD卡插入模块之前,需要对其进行格式化卡。将SD卡格式化为FAT16或FAT32。
要格式化SD卡,请将其插入计算机。转到我的电脑并右键单击SD卡。弹出一个新窗口。选择FAT32作为格式化选项。然后按开始初始化格式化过程。
现在SD卡已正确格式化,您可以在SD卡模块中使用该SD卡。
SD卡模块与Arduino开发板的硬件连接 现在让我们将SD卡模块连接到Arduino开发板,以读写数据或制作数据记录器。由于SD卡模块使用的是SPI通信协议,因此我们需要将其连接到Arduino开发板的SPI引脚。
硬件连接
按照上面的电路图将SD卡模块连接到Arduino。在Arduino UNO开发板中,SPI 引脚是13 (SCK)、12 (MISO) 和11 (MOSI)。
读取和写入数据 让我们了解如何使用Arduino开发板将数据读写到SD卡中。SD库提供了有用的函数,可轻松写入和读取SD卡。
下载以下草图代码并将其上传到Arduino开发板。
read.rar
(714 Bytes, 下载次数: 6)
上传代码后,如果一切正常,串口监视器上将显示以下内容。
这表示读写成功。如果要查看SD卡上的文件,可以在电脑上打开SD卡文件,查看txt格式的数据。
代码说明 要从SD卡写入和读取,首先需要包含SPI和SD库。 - #include <SPI.h>
- #include <SD.h>
复制代码接下来,使用片选 (CS) 引脚10处初始化SD卡模块。 为了在SD卡中打开一个新文件,我们创建一个文件对象,指向数据文件。 - dataFile = SD.open("data.txt", FILE_WRITE);
复制代码使用以下代码将数据写入当前打开的文件。 我们还可以使用 print() 或 println() 函数将数据打印到文件中。 - dataFile.print(data);
- dataFile.println(data);
复制代码使用以下代码,我们可以读取保存在文件中的数据。 每次只能在一个文件中写入,所以我们需要先关闭文件,然后再继续下一个文件。
使用SD卡模块和DHT11传感器的Arduino数据记录器 使用Arduino开发板和SD卡模块制作数据记录器非常简单。本文介绍了如何使用DHT11传感器制作简易温湿度数据记录器。
DHT11传感器用于检测相对湿度和温度,SD卡用于每1秒保存一次湿度和温度值。温度和湿度的值保存在SD卡上的TXT文件中。
按照上图所示将DHT11传感器连接到Arduino开发板中。所有组件连接完成后,效果如下:
下载以下代码并将其上传到Arduino开发板。编译该代码时需要DHT11库。
dht11 sd.rar
(803 Bytes, 下载次数: 13)
上传代码后,打开串口监视器,您将看到以下信息,显示温度和湿度数据。
使用读卡器在Windows 打开SD卡。 然后打开数据记录器的txt文件。您将在文本文件中看到温度和湿度数据。
以上这就是您如何使用带有Arduino开发板和SD卡模块实现读取写入数据,以及制作数据记录器。如果有任何疑问,请随时在本帖下面回复。 |