Schritt 7: Das volle Programm.
#include < Wire.h >
#include < Time.h >
#include < DS1307RTC.h >
const Int SetH = 14; Taste zur Erhöhung der Stunde
const Int SetM = 15; Taste für Minute erhöhen
const Int UnitMin01 = 12;
const Int UnitMin02 = 9;
const Int UnitMin04 = 8;
const Int UnitMin08 = 7;
const Int UnitTen01 = 2;
const Int UnitTen02 = 11;
const Int UnitTen04 = 10;
const Int UnitHrs01 = 3;
const Int UnitHrs02 = 4;
const Int UnitHrs04 = 5;
const Int UnitHrs08 = 6;
void setup()
{
Delay(200);
PinMode (SetH, Eingabe);
PinMode (SetM, Eingabe);
PinMode (UnitMin01, OUTPUT);
PinMode (UnitMin02, OUTPUT);
PinMode (UnitMin04, OUTPUT);
PinMode (UnitMin08, OUTPUT);
PinMode (UnitTen01, OUTPUT);
PinMode (UnitTen02, OUTPUT);
PinMode (UnitTen04, OUTPUT);
PinMode (UnitHrs01, OUTPUT);
PinMode (UnitHrs02, OUTPUT);
PinMode (UnitHrs04, OUTPUT);
PinMode (UnitHrs08, OUTPUT);
}
void loop()
{
TmElements_t tm;
Wenn (RTC.read(tm))
{
Wenn (digitalRead(setM) == HIGH)
{
unsigned long j = RTC.get();
j = j + 60;
RTC.set(j);
}
Wenn (digitalRead(setH) == HIGH)
{
unsigned long j = RTC.get();
j = j + 3600;
RTC.set(j);
}
BinaryOutputHours (tm. (Stunde);
BinaryOutputMinutes (tm. (Minute);
}
Delay(1000);
}
void binaryOutputHours(int number)
{
Wenn (Zahl == 0)
{
Anzahl = 12;
}
Wenn (Zahl > = 13)
{
Zahl = Zahl - 12;
}
setBinaryHours(number);
}
void binaryOutputMinutes(int number)
{
Wenn (Zahl > = 10)
{
Int ten = Zahl/10;
Int-Einheiten = Zahl - (10 * 10);
setBinaryMins(units);
setBinaryTens(tens);
}
anderes
{
Int ten = 0;
Int-Einheiten = Anzahl;
setBinaryMins(units);
setBinaryTens(tens);
}
}
void setBinaryMins(int units)
{
Wenn (Einheiten > = 8)
{
DigitalWrite (UnitMin08, hohe);
Einheiten = Einheiten - 8;
}
anderes
{
DigitalWrite (UnitMin08, LOW);
}
Wenn (Einheiten > = 4)
{
DigitalWrite (UnitMin04, hohe);
Einheiten = Einheiten - 4;
}
anderes
{
DigitalWrite (UnitMin04, LOW);
}
Wenn (Einheiten > = 2)
{
DigitalWrite (UnitMin02, hohe);
Einheiten = Einheiten - 2;
}
anderes
{
DigitalWrite (UnitMin02, LOW);
}
Wenn (Einheiten > = 1)
{
DigitalWrite (UnitMin01, hohe);
Einheiten = Einheiten - 1;
}
anderes
{
DigitalWrite (UnitMin01, LOW);
}
}
void setBinaryTens(int tens)
{
Wenn (zig > = 4)
{
DigitalWrite (UnitTen04, hohe);
ten = Tens - 4;
}
anderes
{
DigitalWrite (UnitTen04, LOW);
}
Wenn (zig > = 2)
{
DigitalWrite (UnitTen02, hohe);
ten = Tens - 2;
}
anderes
{
DigitalWrite (UnitTen02, LOW);
}
Wenn (zig > = 1)
{
DigitalWrite (UnitTen01, hohe);
ten = Tens - 1;
}
anderes
{
DigitalWrite (UnitTen01, LOW);
}
}
void setBinaryHours(int hours)
{
Wenn (Stunden > = 8)
{
DigitalWrite (UnitHrs08, hohe);
Stunden = Stunden - 8;
}
anderes
{
DigitalWrite (UnitHrs08, LOW);
}
Wenn (Stunden > = 4)
{
DigitalWrite (UnitHrs04, hohe);
Stunden = Stunden - 4;
}
anderes
{
DigitalWrite (UnitHrs04, LOW);
}
Wenn (Stunden > = 2)
{
DigitalWrite (UnitHrs02, hohe);
Stunden = Stunden - 2;
}
anderes
{
DigitalWrite (UnitHrs02, LOW);
}
Wenn (Stunden > = 1)
{
DigitalWrite (UnitHrs01, hohe);
Stunden = Stunden - 1;
}
anderes
{
DigitalWrite (UnitHrs01, LOW);
}
}