在本Arduino教程中,我们将学习如何在Arduino开发板上使用SD卡模块。 另外,结合DS3231实时时钟模块,我们将制作一个数据记录示例,在该示例中,我们将温度传感器的数据存储到SD卡中,然后将其导入Excel以制作图表。 您可以观看以下视频或阅读下面的书面教程。
Arduino SD卡和数据记录到Excel教程
Arduino SD卡模块
首先,让我们看一下SD卡模块。它可以与工作电压为3.3 V的标准MicroSD卡配合使用。因此,该模块具有稳压器和电平转换器,因此我们可以将其与Arduino板的5 V引脚一起使用。
SD卡模块有六个引脚,其中两个用于为模块供电,VCC和GND引脚,另外四个用于SPI通信。我们需要将其连接到Arduino开发板。
原理图略
请注意,每个Arduino开发板都有不同的SPI引脚,应相应连接。
编程Arduino SD卡模块
接下来,我们需要对Arduino进行编程。这是一个简单的代码部分:
#include <SD.h>
#include <SPI.h>
File myFile;
int pinCS = 53; // Pin 10 on Arduino Uno
void setup() {
Serial.begin(9600);
pinMode(pinCS, OUTPUT);
// SD Card Initialization
if (SD.begin())
{
Serial.println(“SD card is ready to use.”);
} else
{
Serial.println(“SD card initialization failed”);
return;
}
代码说明:所以首先我们需要包括标准SD和SPI库,创建一个``文件’'对象并定义SPI总线的ChipSelect引脚,在我的案例中为Arduino Mega Board的引脚53。 对于此示例,我们希望代码仅执行一次,因此所有代码都将放置在“ setup”部分中,而“ loop”部分将保持为空。
因此,首先我们需要开始串行通信并将芯片选择引脚定义为输出。我们必须这样做,因为芯片选择脚需要为“低”,以便模块与Arduino之间的SPI通信正常工作。
接下来,使用SD.begin()函数,我们将初始化SD卡,如果初始化成功,则“ if”语句将变为true,并且字符串“ SD卡已准备好使用。”将被打印在串行监视器上,否则 字符串“ SD卡初始化失败”将被打印,并且程序将终止。
接下来,使用SD.open()函数,我们将创建一个名为“ test.txt”的新文件,其中包括FILE_WRITE参数,这意味着我们可以读写该文件。如果文件已经存在,SD.open()函数将打开它。
因此,如果文件已成功创建,我们将在串行监视器上打印字符串“ Writing to file”,然后使用myFile.println()函数将文本“ Testing text 1,2,3…”打印到 文件。 之后,我们需要使用close()函数来确保将先前写入文件的数据实际保存到SD卡中。
接下来,我们将看到如何读取文件。 因此,我们将再次使用相同的函数SD.open(),但是这一次,因为已经创建了文件“ test.txt”,该函数只会打开该文件。 然后,使用myFile.read()函数,我们将从文件读取并将其打印在串行监视器上。 read()函数实际上一次只读取一个字符,因此,我们需要使用“ while”循环和myFile.available()函数来读取所有字符或整个先前写入的数据。 最后,我们需要关闭文件。
现在,将代码上传到Arduino之后,如果一切正常,则串行监视器上将显示以下内容。
来源:CSDN
作者:国外课栈
链接:https://blog.csdn.net/jiyotin/article/details/103946873