主页 > 编程资料 > Arduino >
发布时间:2017-10-14 作者:网络 阅读:628次

需要说明的是arduino的SD库文件,目前对2G以上的卡支持不是很好,所以推荐大家使用2G包含2G以下的,文件格式使用FAT格式。

接线方式

** MOSI - pin 11

** MISO - pin 12

** CLK - pin 13

** CS - pin 4

13380694ylllll9vsjjoom.jpg

/*
此例子展示如果记录三个模拟引脚数值到SD卡,使用SD库。
         
电路部分
* 模拟引脚使用模拟口0,1,2大家可以根据情况接入模拟传感器,
   如果没有,也可以完成此实验,只不过数值是不停跳动的干扰源。
* SD卡与arduino控制板使用SPI总线连接
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
*/

#include <SD.h>

// CS引脚为pin4,这里也沿用官方默认设置
const int chipSelect = 4;  //设定CS接口

void setup()
{
  Serial.begin(9600);  //设置串口通信波特率为9600
  Serial.print("Initializing SD card...");  //串口输出数据Initializing SD card...
  pinMode(10, OUTPUT);


  if (!SD.begin(chipSelect)) {  //如果从CS口与SD卡通信失败,串口输出信息Card failed, or not present
    Serial.println("Card failed, or not present");
    return;
  }
  Serial.println("card initialized.");  //与SD卡通信成功,串口输出信息card initialized.
}

void loop()
{
  // 定义数组
  String dataString = "";

  // 读取三个传感器值,写入数组
  for (int analogPin = 0; analogPin < 3; analogPin++) {
    int sensor = analogRead(analogPin);
    dataString += String(sensor);
    if (analogPin < 2) {
      dataString += ",";
    }
  }

  // 打开文件,注意在同一时间只能有一个文件被打开
  // 如果你要打开另一个文件,就需要先关闭前一个
  File dataFile = SD.open("datalog.txt", FILE_WRITE);

  // 打开datalog.txt文件,读写状态,位置在文件末尾。
  if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    // 数组dataString输出到串口
    Serial.println(dataString);
  }
  // 如果无法打开文件,串口输出错误信息error opening datalog.txt
  else {
    Serial.println("error opening datalog.txt");
  }
}

串口获取:

133808lx2plyaa0r2ipimv.jpg

原文地址:http://bbs.elecfans.com/jishu_455261_1_2.html

关键字词: