Данные не записываются на SD-карту

Я хочу сохранить файл как дату и время и хочу открыть файл mySensorData = SD.open(filename, FILE_WRITE); в настройке. Он показывает "вставьте карту SD", когда я пытаюсь открыть файл в настройке.

Данные не записываются на SD-карту. Файл создается, но не записывается в файл.

, 👍0

Обсуждение

а первая строка «Давление, Температура, Глубина, Высота» есть в файле?, @Juraj

в настройках вы открываете "sensor1.txt" и в цикле filename. тестируйте if (!mySensorData), а не if (mySensorData==0), @Juraj

Извините! Я только что загрузил новый код. Я хочу сохранить файл как дату и время. и я хочу открыть файл mySensorData = SD.open(filename, FILE_WRITE); в настройке. Он показывает вставьте SD-карту, когда я пытаюсь открыть файл в настройке., @brar_kev


2 ответа


1

Вы начинаете регистрацию, установив значение LOW, а затем проверяете, высокое ли оно, и если это не так, вы переходите к предложению else, вызываете exit(0) и завершаете работу процессора, следовательно, ваш код никогда не будет выполнен!

volatile boolean logging = LOW;

...

void loop() 
{ 
   if(logging == HIGH) // начинается с низкого
   {
    ... // никогда не выполняется
   }
   else 
   {
    ... //
    exit(0); // теперь ваш Arduino мертв!
   }
}

Многоточия (...) — это то место, где я вырезал ваш код.

exit(0) отключает прерывания и зацикливается на всегда с while(1); что приводит к полной остановке, потребляющей много энергии; в exit(0) должен быть вызов sleep, потому что то, что делает exit(...), не очень полезно для Arduino!

,

0

Проблема была связана с памятью. Поэтому я закомментировал некоторые команды Serial.print, и тогда все заработало отлично. Я редактирую эту часть своего кода.

иначе { // Serial.print(mySensorData); // Serial.println("Вставьте SD-карту для регистрации"); digitalWrite(led_pin, LOW); lcd.clear(); lcd.print("Вставьте SD-карту"); задержка(1000); //
}

,

Пожалуйста, перечислите строки, которые вам пришлось закомментировать. Ваш ответ может помочь кому-то с такой же проблемой., @Greenonline