19-01-2019, 00:45
(Ten post był ostatnio modyfikowany: 19-01-2019, 00:59 przez Julek Rogalski.)
Witam!
Jestem początkującym więc proszę o wyrozumiałość. Mam podstawową wiedzę o Arduino lecz porykam się z problemem dotyczącym programu. Robię projekt oparty na Arduino UNO polegający na wyświetlaniu czasu i daty oraz po kliknięciu przycisku, temperatury. Program działa lecz jest jeden problem. Przerabiałem to sam i czas jest ustawiony z komputera, więc gdy odłączam od prądu to zegar się resetuje i pokazuje godzinie o której wgrałem program. Chciałbym mieć możliwość ustawienia daty przy pomocy tact switchy. Starałem się sam przerobić program lecz nie udawało mi się to. Proszę o pomoc. Tu podaje program.
Jestem początkującym więc proszę o wyrozumiałość. Mam podstawową wiedzę o Arduino lecz porykam się z problemem dotyczącym programu. Robię projekt oparty na Arduino UNO polegający na wyświetlaniu czasu i daty oraz po kliknięciu przycisku, temperatury. Program działa lecz jest jeden problem. Przerabiałem to sam i czas jest ustawiony z komputera, więc gdy odłączam od prądu to zegar się resetuje i pokazuje godzinie o której wgrałem program. Chciałbym mieć możliwość ustawienia daty przy pomocy tact switchy. Starałem się sam przerobić program lecz nie udawało mi się to. Proszę o pomoc. Tu podaje program.
Kod:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <RTClib.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
OneWire oneWire(A3); //Podłączenie do A5
DallasTemperature sensors(&oneWire); //Przekazania informacji do biblioteki
DateTime now;
char daysOfTheWeek[7][12] = {"Ndz", "Pon", "Wt", "Sr", "Czw", "Pt", "Sob"};
RTC_DS3231 rtc;
LiquidCrystal_I2C lcd(0x3F, 16, 2);
void showDate(void);
void showTime(void);
void showDay(void);
int przycisk = 6;
void setup ()
{
Serial.begin(9600);
pinMode(przycisk, INPUT_PULLUP);
lcd.begin();
lcd.backlight();
sensors.begin();
if (! rtc.begin())
{
Serial.println("Couldn't find RTC Module");
while (1);
}
if (rtc.lostPower())
{
Serial.println("RTC lost power, lets set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop ()
{
if(digitalRead(przycisk)== LOW)
{
lcd.clear();
sensors.requestTemperatures();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(sensors.getTempCByIndex(0));
delay(4500);
lcd.clear();
}
now = rtc.now();
showDate();
showDay();
showTime();
}
void showDate()
{
lcd.setCursor(0,0);
lcd.print(now.day());
lcd.print('-');
lcd.print(now.month());
lcd.print('-');
lcd.print(now.year());
}
void showDay()
{
lcd.setCursor(11,0);
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
}
void showTime()
{
lcd.setCursor(0,1);
lcd.print("Czas:");
lcd.print(now.hour());
lcd.print(':');
lcd.print(now.minute());
lcd.print(':');
lcd.print(now.second());
lcd.print(" ");
}