内容已经转出,请移步以下网址:

https://viadean.notion.site

Arduino SD卡和数据记录到Excel教程

 二维码 467
文章附图

在本Arduino教程中,我们将学习如何在Arduino开发板上使用SD卡模块。 另外,结合DS3231实时时钟模块,我们将制作一个数据记录示例,在该示例中,我们将温度传感器的数据存储到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之后,如果一切正常,则串行监视器上将显示以下内容。

可以看到,SD卡已成功初始化,写入操作也已成功,并且读取的数据也已读取,或者字符串“ Testing text 1,2,3…”已成功读取。 如果我们在计算机上打开SD卡,则可以看到创建的“ test.txt”文件和其中的书面文字。

Arduino数据记录

阅读完整文档


文章分类: 创客物语ArduinoExcel