打印
[资料干货]

在Arduino Uno上实现基本的SD卡读写操作 硬件连接

[复制链接]
360|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
丙丁先生|  楼主 | 2025-4-16 14:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是Arduino Uno使用SD卡模块的详细指南,包含程序示例和注意事项:

1. 所需材料‌
Arduino Uno开发板
SD卡模块(支持SPI接口,如常见的MicroSD模块)
MicroSD卡(建议容量≤32GB,格式化为FAT16/FAT32)
杜邦线若干
2. 硬件连接‌

将SD卡模块与Arduino Uno按以下方式连接:

SD卡模块引脚        Arduino引脚
VCC        5V
GND        GND
MISO        12
MOSI        11
SCK        13
CS(片选)        任意数字引脚(示例中使用引脚4)

3. 安装库文件‌

Arduino IDE自带SD.h库,无需额外安装。若缺失,可通过IDE的库管理器搜索安装。

4. 示例程序:读写SD卡‌
写入数据到SD卡‌
cpp
Copy Code
#include <SPI.h>
#include <SD.h>

File myFile;
const int chipSelect = 4; // 片选引脚

void setup() {
  Serial.begin(9600);
  while (!Serial); // 等待串口连接(仅用于调试)

  if (!SD.begin(chipSelect)) {
    Serial.println("SD卡初始化失败!");
    return;
  }
  Serial.println("SD卡初始化完成。");

  // 创建/打开文件并写入数据
  myFile = SD.open("test.txt", FILE_WRITE);
  if (myFile) {
    myFile.println("Hello, Arduino SD Card!");
    myFile.close();
    Serial.println("数据写入完成。");
  } else {
    Serial.println("打开文件失败!");
  }
}

void loop() {
  // 空循环
}

从SD卡读取数据‌
cpp
Copy Code
#include <SPI.h>
#include <SD.h>

File myFile;
const int chipSelect = 4;

void setup() {
  Serial.begin(9600);
  while (!Serial);

  if (!SD.begin(chipSelect)) {
    Serial.println("初始化失败!");
    return;
  }

  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("文件内容:");
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    myFile.close();
  } else {
    Serial.println("无法打开文件!");
  }
}

void loop() {}

5. 常见问题排查‌

初始化失败‌

检查接线是否正确(尤其是MISO/MOSI/SCK)
确保SD卡格式化为FAT16/FAT32
尝试更换片选引脚(如引脚10)
检查供电是否充足(部分模块需5V,部分需3.3V)

文件无法打开‌

确认文件名正确(区分大小写)
确保文件路径存在(如SD.open("/folder/test.txt"))

数据写入不完整‌

操作完成后务必执行myFile.close()
避免频繁写入,防止卡顿
6. 扩展功能‌
创建目录‌:SD.mkdir("mydir");
删除文件‌:SD.remove("test.txt");
列表文件‌:使用File root = SD.open("/"); root.rewindDirectory();

通过以上步骤,您可以在Arduino Uno上实现基本的SD卡读写操作。建议使用带有电平转换的SD卡模块以确保稳定性。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

981

主题

3564

帖子

5

粉丝