#include <Wire.h>
#include <RTClib.h>
RTC_DS1307 rtc;
const int pin7 = 7;
const int pin8 = 8;
const unsigned long duration = 1000; // Czas trwania sygnału (1 sekunda)
unsigned long previousMillis = 0; // Czas poprzedniego sygnału
unsigned long interval = 60000; // Czas oczekiwania na kolejny sygnał (59 sekund)
boolean isPin7High = true; // Flaga określająca stan pinu 7
void setup() {
Wire.begin();
rtc.begin();
if (!rtc.isrunning()) {
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
pinMode(pin7, OUTPUT);
pinMode(pin8, OUTPUT);
}
void loop() {
DateTime now = rtc.now();
unsigned long currentMillis = millis();
// Wyzwolenie sygnału na pinie 7 lub 8 przez 1 sekundę
if (isPin7High) {
if (currentMillis - previousMillis < duration) {
digitalWrite(pin7, HIGH);
} else {
digitalWrite(pin7, LOW);
}
} else {
if (currentMillis - previousMillis < duration) {
digitalWrite(pin8, HIGH);
} else {
digitalWrite(pin8, LOW);
}
}
// Oczekiwanie na kolejny sygnał
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
isPin7High = !isPin7High; // Zmiana flagi po każdym pełnym cyklu
}
}