Данные не записываются на SD-карту
Я хочу сохранить файл как дату и время и хочу открыть файл mySensorData = SD.open(filename, FILE_WRITE);
в настройке. Он показывает "вставьте карту SD", когда я пытаюсь открыть файл в настройке.
Данные не записываются на SD-карту. Файл создается, но не записывается в файл.
@brar_kev, 👍0
Обсуждение2 ответа
Вы начинаете регистрацию, установив значение 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!
Извините, я не получил вашего ответа. Пожалуйста, объясните мне., @brar_kev
@brar_kev Я сократил код до структуры, чтобы вы могли видеть ; первое, что делает ваш цикл, это проверяет, был ли он инициализирован (logging == HIGH), чтобы он был инициализирован как LOW, поэтому поток переходит к пункту else, вы делаете что-то, затем вызываете exit(0), который останавливает процессор, uC не будет выполнять больше инструкций, пока не будет сброшен. Поэтому ничего другого никогда не вызывается., @esoterik
Но в прерываниях logging = ! logging .. поэтому я делаю его низким .. Код работал нормально, но когда я добавил модуль RTC, он перестал записывать в файл. Я проверил, когда пытаюсь открыть файл в настройке, он показывает iNSERT sd CARD И если я закомментирую раздел открытого файла, то он работает. Я новичок в программировании и не знаю, как мне теперь это изменить. Спасибо за помощь, @brar_kev
@brar_kev exit(0) отключает прерывания, поэтому ваш обработчик прерываний также не может быть выполнен., @esoterik
Как мне теперь действовать? Я застрял, не знаю, что мне изменить, чтобы это заработало., @brar_kev
@brar_kev извините, если это неочевидно, но удалите exit(0) и посмотрите, как это работает., @esoterik
Я удалил его, но он все еще печатает «Вставьте SD-карту»., @brar_kev
работают ли примеры? также SD.begin(4) должен вызываться только один раз; удалите его из цикла while в настройке, @esoterik
Я попробовал примеры Sd, и они работают отлично. Я удалил SD.begin из цикла while, но он все еще показывает Insert Sd card. Большое спасибо за помощь., @brar_kev
Кто-нибудь знает.. Что мне делать?? Я застрял, @brar_kev
@brar_kev начни с образца и добавляй к нему детали, пока он не заработает или что-то не сломается. Любые поломки могут подсказать тебе, что сломалось, или какой вопрос лучше задать, @esoterik
Проблема была связана с памятью. Поэтому я закомментировал некоторые команды Serial.print, и тогда все заработало отлично. Я редактирую эту часть своего кода.
иначе
{
// Serial.print(mySensorData);
// Serial.println("Вставьте SD-карту для регистрации");
digitalWrite(led_pin, LOW);
lcd.clear();
lcd.print("Вставьте SD-карту");
задержка(1000);
//
}
Пожалуйста, перечислите строки, которые вам пришлось закомментировать. Ваш ответ может помочь кому-то с такой же проблемой., @Greenonline
- SD-карта не инициализируется
- Что означают эти контакты? Куда мне их подключить?
- Понимание того, почему следует избегать «String» и альтернативных решений
- Arduino: как записать значение переменной в текстовый файл и изменить его на SD-карте?
- Сохранение файла .txt на SD-карту и чтение данных каждого содержимого в файл txt, а затем сохранение его в переменной
- Простая веб-страница с Ethernet-шилдом Arduino на SD-карте
- чтение карты micro SD напрямую с ПК
- Проблема с открытием нескольких текстовых файлов одновременно/по порядку с использованием <SD.h>
а первая строка «Давление, Температура, Глубина, Высота» есть в файле?, @Juraj
в настройках вы открываете
"sensor1.txt"
и в циклеfilename
. тестируйтеif (!mySensorData)
, а неif (mySensorData==0)
, @JurajИзвините! Я только что загрузил новый код. Я хочу сохранить файл как дату и время. и я хочу открыть файл mySensorData = SD.open(filename, FILE_WRITE); в настройке. Он показывает вставьте SD-карту, когда я пытаюсь открыть файл в настройке., @brar_kev