我的数据位于SD卡的文本文件中,我正在尝试将其作为Arduino中的数组。我的数据只是一堆整数,每行看起来像270个数字。
122
50
255
0
96
我有270个这样的数字。我只是想让Arduino创建一个270的数组,以便我可以使用这些数据。稍后,我将拉出一个元素放在某个地方,依此类推。根据给出的示例,我可以从SD卡读取数据。我很难将它创建成阵列。
这是我到目前为止所尝试的。在我的代码中,我想要String3_5的数组只给出了数字0到269递增。
#include <SD.h>
const int chipSelect = 4;
int String3_5 [270];
int index = 0;
void setup() {
Serial.begin(9600);
Serial.print("Initializing SD Card....");
if(!SD.begin(chipSelect)) {
Serial.println("Card failed, or not Present");
return;
}
Serial.println("Card Initialized");
File dataFile = SD.open("Strip3_5.txt");
if(dataFile) {
while(dataFile.available()) {
Serial.write(dataFile.read());
String3_5[index] = Serial.read();
index++;
String3_5[index] = '\0';
}
dataFile.close();
} else {
Serial.println("File does not exist or named wrong");
}
}
void loop() {
}
答案 0 :(得分:0)
您的整数如何保存到文件中? ASCII?或二进制。您的代码目前所做的是读取8位值,将它们发送到UART /终端,然后读取终端并将一个字节保存到阵列中。我不认为这就是你想要的......
Read a byte from the file.
read() inherits from the Stream utility class.
线String3_5[index] = '\0';
看起来更像是用于字符串的东西......
假设您的文件实际上是一个ASCII文件,您需要做的是实现读取ASCII数字的代码,将它们转换为整数,然后保存它。
答案 1 :(得分:0)
这些代码应该是您正在寻找的代码
File dataFile = SD.open("Strip3_5.txt");
if (datafile) {
for (index = 0; index <= 9; index++) {
int input = datafile.parseInt();
String3_5[index] = input;
Serial.println(input);
}
file.close();
}