Данные с SD в массив
- Войдите на сайт для отправки комментариев
Вс, 03/12/2017 - 13:56
Здравствуйте !
Не доходит до меня как построчно считывать данные с SD в массив . Буду признателен за пинок в нужном направлении.
На SD лежит тхт файл с данными такого вида
000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025,025 051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051,051 076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076,076 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102 127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153 178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204 229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229 204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204 178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000
Нужно построчно записывать в массив типа
byte Val[CHANNELS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
Читать в Serial весь файл получается . Данные читаются верно .
SD reader самодельный .
Читаю так
// подключение библиотек SPI и SD:
#include <SPI.h>
#include <SD.h>
#define CHANNELS 28
byte Val[CHANNELS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const uint8_t PIN_CS = 4; // указываем номер вывода arduino подключенного к выводу CS адаптера
File myFile; // создаём переменную myFile класса File, которая будет служить "указателем" на открытый файл
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
if (!SD.begin(PIN_CS)) {
Serial.println("SD-card not found"); return;
}
//проверяем наличие файла на SD-карте
if (SD.exists("test000.txt")) {
Serial.println("file exists");
} else {
Serial.println("file doesn't exist");
}
}
void loop() {
//открываем файл для чтения и записи
myFile = SD.open("test000.txt");
if (myFile) {
Serial.println("file is opened");
// чтение строк из файла :
while (myFile.available()) {
Serial.write(myFile.read());
}
}
}
Спасибо !
mobistrike, наводящий вопрос: понимаете ли Вы, в чем разница между символом и числом?
mobistrike, наводящий вопрос: понимаете ли Вы, в чем разница между символом и числом?
Понимаю , более того почти разобрался как и во что преобразовать . Наверно поторопился тему создавать .
Помогите разобраться. Взгляните на строки 55 и 62 . Что я делаю не так ?
// подключение библиотек SPI и SD: #include <SPI.h> #include <SD.h> #define MAX_CHANNELS 28 byte chVal[MAX_CHANNELS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; int col = 0; const uint8_t PIN_CS = 4; // указываем номер вывода arduino подключенного к выводу CS адаптера File myFile; // создаём переменную myFile класса File, которая будет служить "указателем" на открытый файл char a = 0; long b = 0; boolean End, minus = 0; void setup() { Serial.begin(9600); if (!SD.begin(PIN_CS)) { Serial.println("SD-card not found"); return; } //проверяем наличие файла на SD-карте if (SD.exists("test000.txt")) { Serial.println("file exists"); } else { Serial.println("file doesn't exist"); } } void loop() { ///открываем файл для чтения и записи myFile = SD.open("test000.txt"); if (myFile) { Serial.println("file is opened"); //чтение строк из файла : while (myFile.available()) { //Serial.write(myFile.read()); a = myFile.read(); if (a == 45) { minus = 1; } if (a >= 48 && a <= 57) { b += a - 48; b *= 10; End = 1; } else if (End == 1) { b /= 10; if (minus == 1) { b = -b; } //Serial.print(b, DEC); //Serial.print(chVal[col] = b);// вот тут все выводится верно //Serial.print(":"); chVal[col] = b; col++; if (col == MAX_CHANNELS) { for (int j = 0; j < MAX_CHANNELS ; j++) { Serial.print(chVal[j]); // а тут правильный только первый проход в loop Serial.print(";"); // и нет последней строки } Serial.println("stroka"); col = 0; } b = 0; minus = 0; End = 0; } } Serial.println("file closed"); myFile.close(); delay (5000); } }