Еще одни часики, на этот раз используем модуль из 8-ми 7-ми сегментных индикаторов на базе MAX7219
Код:
// Выводим на дисплей (8 x 7DIG MAX7219) ЧАСЫ // Версия: 2.06.2015 // В формате: // ЧЧ .ММ .СС // 76 543 210 <- знакоместо на дисплее // Ч-часы М-минуты С-секунды // Железо: // Arduino Uno + дисплей модуль 8CHAR 7DIG MAX7219 + RTC #include "LedControl.h" #include <Wire.h> #include "RTClib.h" RTC_DS1307 RTC; // Подключение модуля RTC // SDA - A4 // SCL - A5 // 5v - Vcc // GND - GND // Подключение дисплея LedControl lc=LedControl(7,6,5,1); // LedControl(dataPin, clkPin, csPin, numDevices=1); void setup() { lc.shutdown(0,false); // Иниц дисплей lc.setIntensity(0,0); // яркость дисплея lc.clearDisplay(0); // очистить дисплей Wire.begin(); RTC.begin(); // Установка текущего времени PC в модуль RTC // после установки закоментировать и зашить скетч в контроллер // RTC.adjust(DateTime(__DATE__, __TIME__)); Serial.begin(9600); // Serial.println(__DATE__); // Serial.println(__TIME__); DateTime now = RTC.now(); Serial.print(now.hour()); Serial.print(':'); Serial.print(now.minute()); Serial.print(':'); Serial.print(now.second()); Serial.println(); } void clock_hours(int ch) { // Разобьем число на 2 разряда int ch1=ch/10; // Первая цифра числа int ch2=ch%10; // Вторая цифра числа lc.setDigit(0,7,ch1,false); lc.setDigit(0,6,ch2,false); lc.setChar(0,5,'.',false); } void clock_minutes(int cm) { int cm1=cm/10; // Первая цифра числа int cm2=cm%10; // Вторая цифра числа lc.setDigit(0,4,cm1,false); lc.setDigit(0,3,cm2,false); lc.setChar(0,2,'.',false); } void clock_sec(int cs) { int cs1=cs/10; // Первая цифра числа int cs2=cs%10; // Вторая цифра числа lc.setDigit(0,1,cs1,false); lc.setDigit(0,0,cs2,false); } void loop() { DateTime now = RTC.now(); int THour=now.hour(); int TMinutes=now.minute(); int TSeconds=now.second(); clock_hours(THour); clock_minutes(TMinutes); clock_sec(TSeconds); }