чтение/запись SD карты

xazard
Offline
Зарегистрирован: 04.01.2017

Добрый день.
Комплектность 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);

Надеюсь на помощь. Если что-то досказать требуется, спрашивайте.

Чрезмерно благодарен Вам за участие.

xazard
Offline
Зарегистрирован: 04.01.2017

Решил проблему, оказывается все на поверхности лежало. Спасибо, что хоть никто не послал никуда:-)

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

xazard пишет:

Спасибо, что хоть никто не послал никуда:-)

виноват, исправлюсь.