чтение/запись SD карты
- Войдите на сайт для отправки комментариев
Добрый день.
Комплектность Arduino mega 2560, Ethernet Shield и соответственно SD карта.
Что хочу сделать, поднять сервер на ардуинке, создать простецкую страничку с 2 ссылками, первая ссылка запись в файл на SD, другая ссылка это чтение из файла и отображение в браузер содержимого.
Что сделал, поднял сервер с использованием Webduino.h, создал стартовую страницу с двумя ссылками и определил для Веб-сервера две команды - writeCARD и readCARD. Создал по ссылке на исполнение каждой из них.
Для работы с SD картой использую библиотеку SD.h. Ниже представлен код двух добавленных команд для Веб-сервера, образец, прикрепленный к библиотеке. Первое вхождение в команду записи всегда успешное, то есть один раз мы записать можем, дальше ответ "ERR_EMPTY_RESPONSE". Чтение всегда с такой штукой вылезает.
Я думаю, что ошибка кроется в неправильном определении выходного ПИНа для SD карты. В примере и везде фигурирует 10 ПИН (53 для МЕГА).
void writeSD(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete){
if (!SD.begin(ВОТ ТУТ КАКОЙ ПИН?)) {
Serial.println("Ошибка инициализации карты");
return;
}
Serial.println("Инициализация карты прошла успешно");
systemData = SD.open("textFile.txt", FILE_WRITE);
if (systemData){
Serial.print("Осуществляется запись в файл");
systemData.println("123");
server.print("WRITING COMPLETED");
systemData.close();
Serial.println(systemData);
Serial.println("Файл успешно закрыт");
}else{
Serial.println("Ошибка при открытии файла");
}
}
void readSD(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete){
systemData = SD.open("textFile.txt");
if (systemData){
Serial.println("textFile.txt:");
while (systemData.available()) {
Serial.write(systemData.read());
}
server.print("READING COMPLETED");
systemData.close();
}else{
Serial.println("Ошибка при открытии файла");
}
}
Также начальная инициализация представлена ниже. Вопрос в том, какой же это ПИН, я потихоньку осваиваю это дело, но возникают проблемы...
pinMode(ТУТ ПИН, OUTPUT); digitalWrite(ТУТ, HIGH);
Надеюсь на помощь. Если что-то досказать требуется, спрашивайте.
Чрезмерно благодарен Вам за участие.
Решил проблему, оказывается все на поверхности лежало. Спасибо, что хоть никто не послал никуда:-)
Спасибо, что хоть никто не послал никуда:-)
виноват, исправлюсь.