Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <WProgram.h>
  2. #include <Wire.h>
  3. #include <DS1307.h>
  4. #include <SD.h>
  5.  
  6. // vytvoří pole čísel do kterých se bude ukládat čas
  7. int rtc[7];
  8. // CS pro četčku karet na pinu 4
  9. // (pro Arduino UNO a Ethernet Shield
  10. const int chipSelect = 4;
  11.  
  12. void setup()
  13. {    
  14.   // nastaví seriovou komunakaci na 9600
  15.   Serial.begin(9600);
  16.  
  17.   Serial.print("Inicializace SD karty...");
  18.  
  19.   pinMode(4, OUTPUT);
  20.  
  21.   if (!SD.begin(chipSelect)) {
  22.     Serial.println("\nKarta nenalezena...");
  23.     //když není karta nalazena, již nic nedělej
  24.     return;
  25.   }
  26.   Serial.println("\nKarta inicializovana...");
  27.    
  28. }
  29. void loop()
  30. {
  31.   // zapíše data z modulu do pole čísel rtc
  32.   RTC.get(rtc,true);  
  33.   // připraví pole znaků pro čas
  34.   char cas[20];  
  35.   // zapíše do pole znaků datum a cas hodnoty z rtc
  36.   sprintf(cas, "%4d-%02d-%02d %02d:%02d:%02d",rtc[6],rtc[5],rtc[4],rtc[2],rtc[1],rtc[0]);  
  37.  
  38.   String dataString = ""; // inicializuje proměnou pro data
  39.   dataString = cas; // čas do proměné data
  40.   dataString = dataString + ";"; // vhodný oddělovač
  41.   dataString = dataString + String(analogRead(0));
  42.    
  43.    // otevře soubor data.csv
  44.    File dataFile = SD.open("data.csv", FILE_WRITE);
  45.  
  46.   // když soubor existuje zapíše do něj
  47.   if (dataFile) {
  48.     // samotný zápis - zapíše a skočí na nový řádek
  49.     dataFile.println(dataString);
  50.     dataFile.close();
  51.    
  52.     Serial.print("Zapisuji do souboru data - ");
  53.     Serial.println(dataString);
  54.   }  
  55.   // při chybě vypíše hlášku
  56.   else {
  57.     Serial.println("Chyba - nemohu otevrit soubor !!!");
  58.   }
  59.   // Čeká 20 sekund
  60.   delay(20000);
  61.  
  62. }