programování v Céčku snad máme v osnovách ve škole a protože zrovna maturuji, měl bych to mít už za sebou ale co si budem, trochu jsem to pozapomněl.
Každopádně jsem našel velmi elegantní způsob, jak to vyřešit
unsigned long predchozicas=0;
int interval = 1000;
void loop()
unsigned long aktualnicas = millis();
if ((unsigned long)(aktualnicas - prechozicas) >= interval)
{
predchozicas = aktualnicas;
// a vykoná se program
}
tak se sem, snad už naposledy, obracím s prosbou o pomoc. Poslední, co mi zbývá je každý příchod a jeho čas zapsat na SD kartu.. SD karta se inicializuje, ale nejde zapisovat do souboru, nevíte čím to je?
tady je část kódu za to zodpovědná
Tak pořád od včera večer se mi to nepovedlo zprovoznit. Zkoušel jsem jiné knihovny a stále nic. Když to zkusím jako samostatný program, který má umět jen toto (zapojím jen arduino, RTC modul a modul na paměťovku a každých 5 sekund to zapíše čas), tak to vše perfektně funguje.
Nevíte někdo, kde můžu najít chybu? Je zvláštní, že samostatně to funguje, tak nevim, jestli se ty dva programy perou..
Založen: May 10, 2004 Příspěvky: 4507 Bydliště: Košice
Zaslal: so duben 14 2018, 14:49 Předmět:
A ta sdkarta mieje na rovnakych pinoch ako lcd displej alebo klavesnica?
V tom alarmovom programe ide zapisatnieco na kartu napr jeden znak? ( bez toho zeby si saskoval s rtc modulom a jeho premenimi?
akorát v návodu je to takto
MOSI - pin 11 na Arduino Uno/Duemilanove/Diecimila
MISO - pin 12 na Arduino Uno/Duemilanove/Diecimila
CLK - pin 13 na Arduino Uno/Duemilanove/Diecimila
CS - pin 4 na Arduino Uno/Duemilanove/Diecimila
a já tam nemám CLK, ale SCK napsané, na tom microSD adaptéru, tak třeba v tom je chyba..
přes I2C sběrnici mám display a RTC modul, to je vše..
teď jsem ještě jednou zkoušel v tom programu jen napsat jedno slovo pokud zadám to heslo a nic se nestalo
// vytvoří pole čísel do kterých se bude ukládat čas
int rtc[7];
// CS pro četčku karet na pinu 4
// (pro Arduino UNO a Ethernet Shield
const int chipSelect = 4;
void setup()
{
// nastaví seriovou komunakaci na 9600
Serial.begin(9600);
Serial.print("Inicializace SD karty...");
// make sure that the default chip select pin is set to
// output, even if you don't use it:
pinMode(10, OUTPUT);
// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("/nKarta nenalezena...");
// don't do anything more:
return;
}
Serial.println("/n Karta inicializovana...");
}
void loop()
{
// zapíše data z modulu do pole čísel rtc
RTC.get(rtc,true);
// připraví pole znaků pro čas
char cas[9];
// zapíše do pole znaků cas hodnoty z rtc
sprintf(cas, "%02d:%02d:%02d", rtc[2],rtc[1],rtc[0]);
String dataString = ""; // inicializuje proměnou pro data
dataString = cas; // čas do proměné data
dataString = dataString + " :"; // vhodný oddělovač
dataString = dataString + String(analogRead(0));
// otevře soubor data.txt
File dataFile = SD.open("data.txt", FILE_WRITE);
// když soubor existuje zapíše do něj
if (dataFile) {
// samotný zápis - zapíše a skočí na nový řádek
dataFile.println(dataString);
dataFile.close();
Serial.print("Zapisuji do souboru data - ");
Serial.println(dataString);
}
// při chybě vypíše hlášku
else {
Serial.println("Chyba - nemohu otevřít soubor !!!");
}
// Čeká 5 sekund
delay(5000);
}
Stačí z něj ale jen odstranit tu kontrolu přes sériový kanál a už se nic nezapisuje a nefunguje to. A já jsem absolutně v koncích a nechápu, ke je chyba.
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2, 3
Strana 3 z 3
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.