Witam szanownych forumowiczów !
Zaczynam dopiero zabawę z Adrduino i od razu mam pod górkę :/ z większością problemów sobie poradziłem ale tu nie wiem co mam zrobić , mianowicie chcę zrobić sterownik do lampki nad akwarium z funkcją świtu i zmierzchu / i to mniej więcej mi się udało / ale DS1307 wskazuje zły czas / jak w załączniku / jak go naprostować żeby pokazywał czas rzeczywisty ?
z góry dziękuję za odp , dla Was to pewnie pestka a ja się juz 2 dzien z tym męczę
Zaczynam dopiero zabawę z Adrduino i od razu mam pod górkę :/ z większością problemów sobie poradziłem ale tu nie wiem co mam zrobić , mianowicie chcę zrobić sterownik do lampki nad akwarium z funkcją świtu i zmierzchu / i to mniej więcej mi się udało / ale DS1307 wskazuje zły czas / jak w załączniku / jak go naprostować żeby pokazywał czas rzeczywisty ?
Kod:
#include <DS1307.h>
#include <Wire.h>
#define DS1307_ADDRESS 0x68
byte zero = 0x00;
int LED1 = 11;
int GODZ;
int MIN;
int SEC;
void setup()
{
Wire.begin();
pinMode(LED1, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int CZAS = (GODZ * 60 + MIN);
int dzienG = 2;
int dzienM = 52;
int nocG = 13;
int nocM = 50;
int maxD1 = 100;
int ZMIANA = 60;
int STEP = 1;
int czas1 = (dzienG * 60 + dzienM);
int czas2 = (nocG * 60 + nocM);
GODZ = (RTC.get(DS1307_HR, true));
MIN = (RTC.get(DS1307_MIN, true));
SEC = (RTC.get(DS1307_SEC, true));
static int D1;
int mocD1[61] =
{
240, 230, 220, 210, 200, 195, 190, 185, 180, 175,
170, 165, 160, 155, 150, 145, 140, 135, 130, 125,
120, 115, 110, 105, 100, 95, 90, 85, 80, 75,
70, 65, 60, 55, 50, 45, 40, 35, 30, 25,
20, 19, 18, 17, 16, 15, 14, 13, 12, 11,
10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
0
};
if (CZAS < czas1) //noc
{
D1 = 0;
Serial.print("noc ");
}
if ((czas1 <= CZAS) && (CZAS < (czas1 + ZMIANA)))
{
D1 = ((CZAS - czas1) / STEP);
Serial.print("swit ");
}
if (((czas1 + ZMIANA) <= CZAS) && (CZAS < (czas2 - ZMIANA)))
{
D1 = maxD1;
Serial.print("dzien ");
}
if (((czas2 - ZMIANA) <= CZAS) && (CZAS < czas2))
{
D1 = ((czas2 - CZAS) / STEP);
Serial.print("zmrok ");
}
if (czas2 <= CZAS)
{
D1 = 8;
Serial.print("noc ");
}
analogWrite(LED1, mocD1[D1]);
Serial.print("LED:");
Serial.print((D1 * 100) / maxD1);
Serial.print(" ");
Serial.print(GODZ);
Serial.print(":");
Serial.print(MIN);
Serial.print(":");
Serial.print(SEC);
Serial.println(" ledy ");
delay (1000);
}
z góry dziękuję za odp , dla Was to pewnie pestka a ja się juz 2 dzien z tym męczę