Помогите пожалуйста разобраться с кодом записи на SD

Нет ответов
SVD
Offline
Зарегистрирован: 05.04.2018
[code]
#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#include <SPI.h>
#include <SD.h>
File dataFile;
int sensePin = 0;
String dataString = "";
unsigned long timing;

void setup()
{
Serial.begin(9600);
Serial.print("Initializing SD card...");
pinMode(10, OUTPUT);
if (!SD.begin(10)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
}
void loop()
{
 dataString = "";
 int Hour;  
 int Minute; 
 int Second;
 int check; 

 int val = analogRead(sensePin);
 val = constrain(val, 650, 975);
 int sdv = map(val,650,975,1,0);

 tmElements_t tm;

   switch (check) {
    RTC.read(tm);
    Hour = print2digits(tm.Hour);
    Minute = print2digits(tm.Minute);
    Second = print2digits(tm.Second);
    if (RTC.read(tm)) {
    dataString += String(tm.Day);
    dataString += ".";
    dataString += String(tm.Month);
    dataString += ".";
    dataString += String(tmYearToCalendar(tm.Year));
    dataString += "\t"; // ставим знак табуляции
    dataString += String (Hour);
    dataString += ":";
    dataString += String (Minute);
    dataString += ":";
    dataString += String (Second);
    dataString += ":"; 
    dataString += String(sdv);

    Serial.print(dataString);     // выводим результаты в serial-порт

    Serial.println();
   else {
    if (RTC.chipPresent()) {
      Serial.println("The DS1307 is stopped.  Please run the SetTime");
      Serial.println("example to initialize the time and begin running.");
      Serial.println();
    } else {
      Serial.println("DS1307 read error!  Please check the circuitry.");
      Serial.println();
    }
    delay(9000);
  }
  if (millis() - timing > 10000){ // Вместо 10000 можно подставить другую периодичность для сохранения
  timing = millis();
  saveSD();     // сохраняем на microSD
}
      break;
    case DHT_ERROR_CHECKSUM:    // ошибка контрольной суммы
      Serial.println("Checksum error");
      break;
    default:     // неизвестная ошибка
      Serial.println("Unknown error");
      break;
   }
   delay(1000);
}

void print2digits(int number) {
  if (number >= 0 && number < 10) {
    Serial.write('0');
  }
  Serial.print(number);
}

void saveSD()
{
  File dataFile = SD.open("sdv.txt", FILE_WRITE);  // создаём файл для записи
  if (dataFile) {   // если файл доступен для записи
    dataFile.println(dataString);     // сохраняем данные
    dataFile.close();    // закрываем файл
    Serial.println("Save OK");    // выводим сообщение об удачной записи
  } else {
    Serial.println("Error opening sdv.txt");    // если файл не доступен
  }
}


[/code]

Не могу понять, где я накосячил с кодом… нужно что бы на sd карту записывались данные с фоторезистора с привязкой ко времени.

Подскажите пожалуйста, как и где нужно подправить код? Спасибо.