/* 此例子展示如果记录三个模拟引脚数值到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"); } }
/* 这个例子展示如何通过SD库从SD卡中读取一个文件,并且把数据通过串口发送。 * 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"); // don't do anything more: return; } Serial.println("card initialized."); //与SD卡通信成功,串口输出信息card initialized. File dataFile = SD.open("datalog.txt"); //打开datalog.txt文件 if (dataFile) { while (dataFile.available()) { //检查是否dataFile是否有数据 Serial.write(dataFile.read()); //如果有数据则把数据发送到串口 } dataFile.close(); //关闭dataFile } else { Serial.println("error opening datalog.txt"); //如果文件无法打开串口发送信息error opening datalog.txt } } void loop() { }
/* 此例子展示如何在SD卡中创建于删除文件 * SD卡与arduino控制板使用SPI总线连接 ** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4 */ #include <SD.h> File myFile; void setup() { Serial.begin(9600); //设置串口通信波特率为9600 Serial.print("Initializing SD card..."); //串口输出数据Initializing SD card... pinMode(10, OUTPUT); if (!SD.begin(4)) { //如果从CS口与SD卡通信失败,串口输出信息initialization failed! Serial.println("initialization failed!"); return; } Serial.println("initialization done."); //CS口与SD卡通信成功,串口输出信息initialization done. if (SD.exists("example.txt")) { //检查example.txt文件是否存在 Serial.println("example.txt exists."); //如果存在输出信息example.txt exists.至串口 } else { Serial.println("example.txt doesn't exist."); //不存在输出信息example.txt doesn't exist.至串口 } Serial.println("Creating example.txt..."); myFile = SD.open("example.txt", FILE_WRITE); //打开example.txt,如果没有自动创建,写入状态 myFile.close(); //关闭文件 if (SD.exists("example.txt")) { Serial.println("example.txt exists."); } else { Serial.println("example.txt doesn't exist."); } Serial.println("Removing example.txt..."); SD.remove("example.txt"); //删除文件example.txt if (SD.exists("example.txt")){ Serial.println("example.txt exists."); } else { Serial.println("example.txt doesn't exist."); } } void loop() { }
#include <SD.h> File myFile; void setup() { Serial.begin(9600); Serial.print("Initializing SD card..."); pinMode(10, OUTPUT); if (!SD.begin(4)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); myFile = SD.open("test.txt", FILE_WRITE); if (myFile) { Serial.print("Writing to test.txt..."); myFile.println("testing 1, 2, 3."); myFile.close(); Serial.println("done."); } else { Serial.println("error opening test.txt"); } myFile = SD.open("test.txt"); if (myFile) { Serial.println("test.txt:"); while (myFile.available()) { Serial.write(myFile.read()); } myFile.close(); } else { Serial.println("error opening test.txt"); } } void loop() { }
联系客服