Помогите пожалуйста разобраться с кодом записи на SD
- Войдите на сайт для отправки комментариев
Вс, 13/05/2018 - 12:50
[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 карту записывались данные с фоторезистора с привязкой ко времени.
Подскажите пожалуйста, как и где нужно подправить код? Спасибо.