ARDUINO - funkce pro zapis na SD kartu - VYŘEŠENO
Napsal: 23 srp 2015, 18:51
Zdravím,
nějak jsem se zasekl s funkcí pro zápis na SD, tak bych tu chtěl někoho
z Vás požádat o radu.
Program viz níže zapisuje na SD kartu dobu běhu přístroje podle delay,
tedy každých 10s a já bych potřeboval, aby ten program fungoval trochu
jinak.
Přesněji, že pokud bude "Dobabehu" = např: 2 minuty, tak to spustí funkci pro zápis na SD a zapíše ji to tam.
Nějak přesně nevím, jak to správně zapsat, aby mi to takhle fungovalo?
Předem děkuji za pomoc
nějak jsem se zasekl s funkcí pro zápis na SD, tak bych tu chtěl někoho
z Vás požádat o radu.
Program viz níže zapisuje na SD kartu dobu běhu přístroje podle delay,
tedy každých 10s a já bych potřeboval, aby ten program fungoval trochu
jinak.
Přesněji, že pokud bude "Dobabehu" = např: 2 minuty, tak to spustí funkci pro zápis na SD a zapíše ji to tam.
Nějak přesně nevím, jak to správně zapsat, aby mi to takhle fungovalo?
Předem děkuji za pomoc
Kód: Vybrat vše
#include <SD.h>
File myFile;
char Dobabehu[19];
int vterin = 0; //pro cas doby behu pristroje
int minut = 0; //pro cas doby behu pristroje
int hodin = 0; //pro cas doby behu pristroje
int dny = 0; //pro cas doby behu pristroje
void setup() {
Serial.begin(9600);
//------------------------------------nacteni SD karty
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Hledam SD kartu...");
pinMode(10, OUTPUT);
if (!SD.begin(4)) {
Serial.println("Karta nenalezena");
return;
}
Serial.println("Karta nalezena.");
//------------------------------------konec nacitani SD karty
}
void loop() {
Serial.print("Doba behu - ");
Serial.println(Dobabehu);
//----------------------------------------zacatek zapisu na SD
// nothing happens after setup
myFile = SD.open("test.txt", FILE_WRITE);
// if the file opened okay, write to it:
if (myFile) {
Serial.print("Writing to test.txt...");
myFile.print(Dobabehu);
myFile.print(" ; ");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
//-------------------------------------------konec zapisu na SD
//-----------------------------------------doba behu pristroje
vterin = vterin + 10; // přičtem další vteřinu
if (vterin == 60){ // pokud je vteřin 60
vterin = 0; // vynulujem vteřiny
minut ++; // přičtem minutu
}
if (minut == 60){ // pokud je minut 60
minut = 0; // vynulujem minuty
hodin ++; // přičtem hodinu
}
if (hodin == 24){ // pokud je hodin 24
hodin = 0; // vynulujem hodiny
dny ++; // prictem den
}
//char Dobabehu[19];
sprintf(Dobabehu, "Dny: %d - %02d:%02d:%02d", (dny),(hodin),(minut),(vterin));
//------------------------------------konec doby behu pristroje
delay(10000); //opakovani
}