Проверьте пожалуйста работоспособность скетча запись на SD

Тема в разделе "Arduino & Shields", создана пользователем РоманИ, 27 фев 2016.

  1. РоманИ

    РоманИ Нерд

    Здравствуйте уважаемые форумчане! Никак не могу победить запись на SD карту. Написал ( вернее списал) скетч Джереми Блюма. Всё что Void loop - работает(открывает, пишет, читает), Что в Void loop не работает. И так с любой программой записи на sd. как до loop-а доходит Всё failed. грешу на карт ридер. пока придет пройдет полтора месяца.

    В связи с этим прошу если у кого-то есть возможность прогнать скетч, проверьте пожалуйста его работоспособность. особенно интересует исполнение программы в цикле loop.
    Код (C++):

    #include <SD.h>
    int Cs_pin=4;
    int pow_pin =8;
    void setup() {
      // put your setup code here, to run once:
    Serial.begin(9600);
    Serial.println("Initializing Cart");
    pinMode(Cs_pin,OUTPUT);
    pinMode(pow_pin,OUTPUT);
    digitalWrite(pow_pin,HIGH);
    if(!SD.begin(Cs_pin))
    {
      Serial.println("Cart Faild");
      return;
      }
      Serial.println("Cart Ready");
    }

    void loop() {
      String dataString = "Working version"; // put your main code here, to run repeatedly:
    File dataFile = SD.open("log.txt,FILE_WRITE");
    if (dataFile)
    {
      Serial.println("otkryli file");
    dataFile.println(dataString);
    dataFile.close();
    Serial.println(dataString);
    }
    else
    {
      Serial.println("ni figa!!!");
      }

    delay (5000);
    }
    С уважением Роман
     
  2. vvr

    vvr Инженерище

    вы бы не морочили себе голову, а взяли и попробовали примеры из библиотеки SD.
     
  3. Sindbad

    Sindbad Гик

    Смотрите внимательнее вот сюда:
    Код (C++):
    File dataFile = SD.open("log.txt,FILE_WRITE");
    Вообще, Джереми Блюм существенно упрощает, т.к. книжка для подростков. Когда что-то не работает нужно копать в глубину.
     
    Tomasina нравится это.
  4. РоманИ

    РоманИ Нерд

    А то стал бы я людям морочить голову? я их всех пере пробовал. первый работает. последний работает, Всё что до(!!!) Void loop - работает(открывает, пишет, читает), Что в(!!!) Void loop не работает, т.е не пишет, т.е пишет " Serial.println("ni figa!!!")"

    . Потому и взял самый простой пример, который тоже у меня не работает:oops:. Потому и прошу прогнать у кого есть заведомо рабочий карт-ридер, чтобы исключить железо из этой порочной цепи:mad:.
    Ради Бога! ВЫ мне можете сказать ЧТО?!? я должен там увидеть?
     
    Последнее редактирование: 27 фев 2016
  5. Sindbad

    Sindbad Гик

    Отсутствие двух символов <"> по сравнению с образцом из книги
     
  6. РоманИ

    РоманИ Нерд

    У меня нет книги :confused:. Вы не могли бы правильно написать как должно быть.
     
  7. Sindbad

    Sindbad Гик

    Код (C++):
    File dataFile = SD.open("log.txt",FILE_WRITE);
    А откуда же был переписан скетч? Должен же был быть какой-то источник?
     
  8. РоманИ

    РоманИ Нерд

    дак you tube! Спасибо большое. Кавычки стронули дело с места. Проблема у меня в другом была, но толчок "размылил" глаз. Пока есть движение. Теперь вопрос стоит как в текстовом файле организовать запись ввиде "дата-температура" а то в столбик "дата
    температура"

    трудно воспринимать
     
  9. Sindbad

    Sindbad Гик

    Код (C++):
    dataFile.print(dateString);
    dataFile.print("   ");
    dataFile.println(tempString);
    Сам файл SD.h очень полезно посмотреть глазами, в нем перечислены заголовки всех функций, которые можно вызывать из программы. Сразу будет понятно, какие возможности предоставляет библиотека.
     
  10. РоманИ

    РоманИ Нерд

    Простите за тупой вопрос а где их смотрят? говорят :-" откройте Servo.h и посмотрите". А где открывается не понятно. Я должен сам файл открыть, или найти листинг этой библиотеки?
     
  11. Sindbad

    Sindbad Гик

    Да, нужно открыть сам файл.
    Я думал, что библиотека SD.h ставится отдельно, было бы странно в таком случае установить библиотеку и не знать, где её искать.
    Нет, оказывается, это одна из стандартных библиотек, доступных после установки IDE. Тогда необходимости просмотра непосредственно файла библиотеки нет, т.к. возможности библиотеки задокументированы на оф. сайте: https://www.arduino.cc/en/Reference/SD
    Тем не менее, раз есть библиотека, то и файл реально существует и спрятан где-то в недрах каталога с IDE. У меня, например, здесь: C:\Program Files\Arduino\libraries\SD\src\SD.h
     
  12. РоманИ

    РоманИ Нерд

    я чувствую себя деревянным пеньком. где находятся библиотеки я знаю. Много установил самостоятельно из числа дополнительных, много косячных менял на нормально работающие. Но когда я кликаю двойным кликом на файл (например SD.h), он у меня не открывается или спрашивает в чем его мне открывать? и тут я упираюсь и двигатель глохнет. пленка обрывается и кино не состоится.
     
  13. Sindbad

    Sindbad Гик

    Файлы *.h содержат текст программы на языке С++, открывать или редактировать можно также как и другие программы.
    Во-первых средствами установленных на компьютере сред разработки. Для Ардуино, создать скетч, удалить из папки скетча файл .ino, вместо него скопировать файл библиотеки, заменив расширение на .ino. Изврат, конечно. Но это у Ардуино среда капризная, в большинстве других средств разработки файлы можно открывать без лишних телодвижений.
    Во-вторых поставить какой-нибудь универсальный редактор, например Notepad++ (notepad-plus-plus.org)
     
    РоманИ нравится это.
  14. РоманИ

    РоманИ Нерд

    спасибо болльшое!