Enkla 7 Segment LED-klocka (4 / 5 steg)
Steg 4: Kod loop()
I den loop() koden, timme och minut hämtas från RTC och passerade på displayen rutin som en 4-siffriga heltal, varje siffra demonteras till enskilda segment position och skickats till funktionen shiftout.
void loop() {
Tiden t = rtc.time();
ledNumberWrite(t.hr*100+t.min);
}
void ledNumberWrite (int timeDisplay) {
ledSegmentWrite (0, timeDisplay/1000);
ledSegmentWrite (1, timeDisplay % 1000/100);
ledSegmentWrite (2, timeDisplay % 100/10);
ledSegmentWrite (3, timeDisplay % 10).
}
void ledSegmentWrite (byte segmentNo, byte digitValue) {
digitalWrite (pinLatch, låg);
om (segmentNo == 1) //display decimalkomma på 2: a siffran
shiftOut (pinData, pinClock, MSBFIRST, characterMap [digitValue] & 0x7F);
annat
shiftOut (pinData, pinClock, MSBFIRST, characterMap[digitValue]);
shiftOut (pinData, pinClock, MSBFIRST, characterBuffer [segmentNo]);
digitalWrite (pinLatch, hög);
}