我不擅长编码。我在SD卡中有一个名为Test.cal的文件包含6个数字。 20,21,22,23,24,25 但我不知道如何获得这六个数字。有人能帮我吗 ?以下是我对编码的看法。
#include <SD.h>
float meterTemp[6];
String theLines[15];
File myFile;
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Initializing SD card...");
// On the Ethernet Shield, CS is pin 4. It's set as an output by default.
// Note that even if it's not used as the CS pin, the hardware SS pin
// (10 on most Arduino boards, 53 on the Mega) must be left as an output
// or the SD library functions will not work.
pinMode(53, OUTPUT);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
// re-open the file for reading:
myFile = SD.open("Test.cal");
if (myFile) {
//我想把文件号放到数组,meterTemp [6],而不是逗号,所以当我得到meterTemp [0] = - 32时,等等。
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
}
void loop()
{
// nothing happens after setup
}
答案 0 :(得分:1)
#include <SD.h>
float meterTemp[6];
String theLines;
File myFile;
String filename="Test.cal";
int line=0;
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Initializing SD card...");
// On the Ethernet Shield, CS is pin 4. It's set as an output by default.
// Note that even if it's not used as the CS pin, the hardware SS pin
// (10 on most Arduino boards, 53 on the Mega) must be left as an output
// or the SD library functions will not work.
pinMode(53, OUTPUT);
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
// re-open the file for reading:
myFile = SD.open("Test.cal");
if (myFile) {
Serial.println("test.txt:");
;
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
theLines=readFile(filename,line);
Serial.println(theLines);
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
}
void loop()
{
// nothing happens after setup
}
String readFile(String filename, int line)
{
char s[20];
char FileName[sizeof(filename)];
filename.toCharArray(FileName, sizeof(FileName));
File myFile = SD.open(FileName,FILE_READ);
if(myFile)
{
String recived = "";
int cur = 0;
char ch;
while (myFile.available())
{
ch = myFile.read();
if(ch == ',')
{
cur++;
if(cur == line)
{
myFile.close();
return String(recived);
}
}
else
{
recived += ch;
}
}
}
return "";
}
答案 1 :(得分:0)
String readFile(String filename, int line)
{
char FileName[sizeof(filename)];
filename.toCharArray(FileName, sizeof(FileName));
File myFile = SD.open(FileName,FILE_READ);
if(myFile)
{
String recived = "";
int cur = 0;
char ch;
while (myFile.available())
{
ch = myFile.read();
if(ch == '\n')
{
cur++;
if(cur == line)
{
myFile.close();
return String(recived);
}
}
else
{
recived += ch;
}
}
}
return "";
}
来自Arduino可视代码生成器。使用您的char
放置“\ n”