Arduino Polska Forum
Zegarek DS1307 (problem) - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Zegarek DS1307 (problem) (/watek-zegarek-ds1307-problem)



Zegarek DS1307 (problem) - Lata - 17-12-2015

Witam ! 

Poznaje układ czasowy DS1307 z baterią, wyświetlam czas i datę na wyświetlaczu i mam problem, bo raz jak odłączę i podłącze pokazuje poprawna godzinę. Natomiast innym razem jakby się resetował pokazuje same 0 w miejscach dat

Kod:
#include <Wire.h>
#include <DS1307.h>
#include <LiquidCrystal_I2C.h>

DS1307 clock;
RTCDateTime dt;
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
  lcd.init();                      // initialize the lcd
  lcd.backlight();                  //Włącz podświetlenie
  // Inicjalizacja DS1307

  clock.begin();
  { lcd.backlight();
  }
  lcd.print("Witaj!");
  lcd.setCursor(0, 1);
  lcd.print("test zegarka");
  delay(1000);
  lcd.clear();

  // Jeśli nie ustawiono daty, ustawiamy
  // if (!clock.isReady())
  // {
  // Data i czas z momentu kompilacji
//clock.setDateTime(__DATE__, __TIME__);//Ustaw date z komputera
  // }
}

void loop()
{

  int sensorValue = analogRead(A0); // Wprowadz wartość wejsia analogowego

  if (dt.hour <= 7) {           //Jeżeli godzina 24-7 zgaś podświetlenie
    lcd.noBacklight();          //Kazda inna włącz
  }                             //
  else
  { lcd.backlight();
  }

  dt = clock.getDateTime(); // przypisz date i czas do "dt"
  lcd.setCursor(0, 0); //ustaw kursor na wyswietlaczu na 0,0

  lcd.print(dt.hour);   lcd.print(":"); // wyswietl godzine 
  if (dt.minute < 10) {// jeżeli minuta mniejsza od 10 dopisz 0
    lcd.print("0");
  }

  lcd.print(dt.minute); lcd.print(":");//wswietl minute
  if (dt.second < 10) { // jezeli sec mniejsza od 10 dopisz 0
    lcd.print("0");
  }
  lcd.print(dt.second); lcd.print(" "); // wyswietl sec
  lcd.setCursor(0, 1); // ustaw kursor na 0,0
  lcd.print(dt.day);    lcd.print("-"); //wyswietl dzien 
  lcd.print(dt.month);  lcd.print("-"); // wyświetl mieciac
  dt.year = dt.year - 2000;   // skrocony zapis daty do 2 miejsc
  lcd.print(dt.year);   lcd.print(""); // wyswietl skrócona date
  lcd.setCursor(9, 0); // ustwa kurdor na 12,0
  float d; //wprowac zmienna float
  d = sensorValue / 205; // oblicz napiecie 
  lcd.print("Bat");
  lcd.print(d); // wyswietl napiecie d
  lcd.setCursor(15, 0);
  lcd.print("v");
  delay(250); // czekaj 250 ms
}



RE: Zegarek DS1307 (problem) - JasQ - 18-12-2015

sprawdź połączenie baterii mi nie stykała czasami i takie cuda się działy daj też na wejściu zasilania kondziora 100nf - 1uf jak go niema też lubi się zresetować .


RE: Zegarek DS1307 (problem) - Lata - 18-12-2015

Kurde! Dzieki bede walczyl !


RE: Zegarek DS1307 (problem) - JasQ - 18-12-2015

swoją drogą ds1307 i inne zegary są strasznie czułe na wyładowania elektrostatyczne więc sweterek wełniany przy zabawie z nim odpada .