Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Pomoc s programem - arduino uno
Jdi na stránku Předchozí  1, 2, 3
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další)
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
luki28n



Založen: Mar 06, 2018
Příspěvky: 23

PříspěvekZaslal: pá duben 13 2018, 11:56    Předmět: Citovat

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 Very Happy 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
}
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
FHonza



Založen: Nov 20, 2012
Příspěvky: 1453
Bydliště: Praha

PříspěvekZaslal: pá duben 13 2018, 12:10    Předmět: Citovat

no to je totéž co sem ti psal Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
luki28n



Založen: Mar 06, 2018
Příspěvky: 23

PříspěvekZaslal: pá duben 13 2018, 12:14    Předmět: Citovat

já si vůbec nevšimnul tvé první zprávy, omlouvám se.. děkuji ti moc Embarassed


na ten formát kódu kouknu.. je to má maturitní práce, mohlo by to vypadat Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
luki28n



Založen: Mar 06, 2018
Příspěvky: 23

PříspěvekZaslal: pá duben 13 2018, 16:15    Předmět: Citovat

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á
kód:

else if ((pressedKey[0] == code2[0]) && (pressedKey[1] == code2[1]) && (pressedKey[2] == code2[2]) && (pressedKey[3] == code2[3]))
    {
    lcd.print("Vitej mami");
          zamceno=0;
          delay(2000);
          lcd.clear();
         
          // vynuluj stiskuté tlačítka
          pressedKey[0] = '0';
          pressedKey[1] = '0';
          pressedKey[2] = '0';
          pressedKey[3] = '0';
   
   
    char cas[15];
    sprintf(cas, "%02d.%02d.%02d  %02d:%02d", rtc[4],rtc[5],rtc[6],rtc[2],rtc[1]);
           String dataString = ""; // inicializuje proměnou pro data
          dataString = cas; // čas do proměné data
        dataString = cas; // čas do proměné data
  dataString = dataString + " - Mamka "; // vhodný oddělovač
  File dataFile = SD.open("data.txt", FILE_WRITE);
         
    dataFile.println(dataString);
    dataFile.close();
   
   
 
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
luki28n



Založen: Mar 06, 2018
Příspěvky: 23

PříspěvekZaslal: so duben 14 2018, 14:15    Předmět: Citovat

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..
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Atlan



Založen: May 10, 2004
Příspěvky: 4507
Bydliště: Košice

PříspěvekZaslal: so duben 14 2018, 14:49    Předmět: Citovat

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?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
luki28n



Založen: Mar 06, 2018
Příspěvky: 23

PříspěvekZaslal: so duben 14 2018, 15:03    Předmět: Citovat

Není, to jsem si ještě kontroloval

hodím sem schéma zapojení




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
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
luki28n



Založen: Mar 06, 2018
Příspěvky: 23

PříspěvekZaslal: so duben 14 2018, 19:38    Předmět: Citovat

Po pravdě jsem z toho úplně mimo.. toto je základní program, který mi funguje a na SD kartu zapisuje data

kód:
#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h>
#include <SD.h>
 
// 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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
FHonza



Založen: Nov 20, 2012
Příspěvky: 1453
Bydliště: Praha

PříspěvekZaslal: po duben 16 2018, 8:43    Předmět: Citovat

Dej sem prosim odkaz na knihovnu SD, kterou používáš.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další) Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3
Strana 3 z 3

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.14 sekund