Пт фев 16, 2024 20:39:08
Пт фев 16, 2024 21:01:56
Пт фев 16, 2024 21:33:06
Пт фев 16, 2024 22:22:11
Сб фев 17, 2024 10:50:19
Сб фев 17, 2024 13:57:13
Сб фев 17, 2024 16:31:10
Сб фев 17, 2024 18:26:27
Сб фев 17, 2024 20:33:27
Сб фев 17, 2024 20:41:39
Сб фев 17, 2024 20:45:58
Сб фев 17, 2024 20:52:00
Сб фев 17, 2024 20:57:13
Сб фев 17, 2024 21:06:23
Сб фев 17, 2024 22:50:14
#include "RTClib.h"
RTC_DS1307 rtc;
#include <GyverNTC.h>
GyverNTC therm(0, 10000, 3950);
//---- ПИНЫ ----
byte SCLK = 7;
byte RCLK = 6;
byte DIO = 5;
//---- ПИНЫ ----
#include <TM74HC595Display.h>
#include <TimerOne.h>
TM74HC595Display disp(SCLK, RCLK, DIO);
unsigned char SYM[18];
unsigned long dispIsrTimer, countTimer;
void setup() {
}
//char displayTime[4];
void loop() {
if (millis() - countTimer > 1000) { // каждые 50 миллисекунд ("прозрачный" аналог delay)
DateTime now = rtc.now();
int displaytime = ((now.hour() * 100) + now.minute());
disp.digit4(displaytime);
countTimer = millis(); // сбросить таймер
}
disp_isr(); // динамическая индикация
}
void disp_isr() {
if (micros() - dispIsrTimer > 300) { // таймер динамической индикации (по-русски: КОСТЫЛЬ!)
disp.timerIsr(); // "пнуть" дисплей
dispIsrTimer = micros(); // сбросить таймер
}
}
int displaytime = ((now.hour() * 100) + now.minute());
disp.digit4(displaytime);
disp.digit4(2024);
/*
Основные методы библиотеки:
disp.set(X, port); // вывести 16 ричный код X в порт port (либо элемент массива SYM!!!)
// вывести двухзначное число value на порт port (0 - первый и второй порт, 2 - 2 и 3, 3 - 3 и 4 порты))
disp.digit2(value, port);
disp.digit4(value); // вывести число value
disp.digit4showZero(value); // вывести число value с нулями СЛЕВА
disp.float_dot(value, pos); // вывести float число value с точкой СПРАВА по счёту pos
disp.int_dot(value, pos); // вывести int число value с точкой СПРАВА по счёту pos
disp.clear(); // очистить дисплей
*порты идут справа налево! (3 2 1 0)
*/
rtc.begin();
Сб фев 17, 2024 23:13:48
secundot ^= 1;
if (!secundot)
{
disp.digit4(displaytime);
}
else
{
disp.int_dot(value, 2);
}
#define HALFSEC 5000 // или сколько там составит примерное время свечения
int secundot = HALFSEC;
.....
int displaytime = ((now.hour() * 100) + now.minute());
secund = now.secund();
if (oldsecund != secund )
{
oldsecund = secund;
secundot = HALFSEC;
}
if (secundot)
{
secundot--;
disp.int_dot(value, 2);
}
else
{
disp.digit4(displaytime);
}
Вс фев 18, 2024 10:20:20
Вс фев 18, 2024 11:36:48
Пн фев 19, 2024 22:47:51
Пн фев 19, 2024 22:54:50