чтение/запись 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);
Надеюсь на помощь. Если что-то досказать требуется, спрашивайте.
Чрезмерно благодарен Вам за участие.
Решил проблему, оказывается все на поверхности лежало. Спасибо, что хоть никто не послал никуда:-)
Спасибо, что хоть никто не послал никуда:-)
виноват, исправлюсь.