IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Petr Dudek
Člen
Avatar
Petr Dudek:19.8.2019 18:53

Ahoj, byl by tu někdo ochotný a poradil mi? Jsem začátečník. Postavil jsem si hodiny podle tohoto návodu http://merkurrobot.cz/?…, vše funguje, až na to, že se mi nevypisuje na displeji na prvním řádku čas, zbylý text a datum je ok, na serial taky běží jen datum...Mám Uno, disp 2x16 a DS1307.

 
Odpovědět
19.8.2019 18:53
Avatar
Jan Kerhart
Člen
Avatar
Jan Kerhart:21.8.2019 18:11

Ahoj, kód používáš přesně ten z návodu, bez žádných úprav? Takhle na pohled tam nevidím žádnou chybu a aktuálně žádné DS1307 na vyzkoušení bohužel nemám...

Zkusil bych nějaký jiný kód, třeba: (před kompilací je ale nutné přes Arduino Library Manager nainstalovat knihovnu "RTClib by Adafruit")

// připojení knihoven
#include <Wire.h>
#include "RTClib.h"

// vytvoření instance DS1307 z knihovny RTClib
RTC_DS1307 DS1307;

// vytvoření pole seznamDni s názvy jednotlivých dní
char seznamDni[7][8] = {"nedele", "pondeli", "utery", "streda", "ctvrtek", "patek", "sobota"};

void setup () {
  // komunikace přes sériovou linku rychlostí 9600 baud
  Serial.begin(9600);
  // kontrola připojeného obvodu reálného času
  if (! DS1307.begin()) {
    Serial.println("Hodiny nejsou pripojeny!");
    while (1);
  }
  // kontrolu spuštění obvodu reálného času
  if (! DS1307.isrunning()) {
    Serial.println("Hodiny nejsou spusteny! Spoustim nyni..");
  }
}

void loop () {
  // načtení aktuálního času a data do proměnné datumCas
  DateTime datumCas = DS1307.now();
  // vypsání informací o aktuálním času a datu po sériové lince
  Serial.print("Aktualni cas ");
  Serial.print(datumCas.hour());
  Serial.print(':');
  Serial.print(datumCas.minute());
  Serial.print(':');
  Serial.print(datumCas.second());
  Serial.print(", ");
  Serial.print(seznamDni[datumCas.dayOfTheWeek()]);
  Serial.print(" ");
  Serial.print(datumCas.day());
  Serial.print('.');
  Serial.print(datumCas.month());
  Serial.print('.');
  Serial.print(datumCas.year());
  Serial.println();
  // pauza mezi výpisy
  delay(2000);
}
 
Nahoru Odpovědět
21.8.2019 18:11
Avatar
Petr Dudek
Člen
Avatar
Odpovídá na Jan Kerhart
Petr Dudek:26.8.2019 19:12

Díky za reakci, zkouším tu konstrukci s LCD displejem, zjistil jsem že tam dochází při běhu programu k přepsání řádku 1, pokud řádek 2 zakomentuju, tak se řádek 1 zobrazuje, sice divně, protože za výpisem vteřin se zobrazují další nesmyslné znaky a to i přes serial, zkusím jiné konstrukce nebo se s tím nějak porvu :-)

 
Nahoru Odpovědět
26.8.2019 19:12
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.