Библиотека для TM1637 с десятичной точкой

fordisimo

✩✩✩✩✩✩✩
9 Дек 2019
8
0
Добрый день.

Суть проблемы : - Заменил дисплей с ":" по середине на дисплей с Десятичными точками.
- Обнаружил, что точки не управляются.
Просьба к авторам библиотеки рассмотреть проблему и добавить/расширить функции библиотеки.

Ниже привожу быстрое решение, которое из-за лимита времени применил. Оно справедливо только для функции point() и display().
Подчеркиваю, что с огромным уважение отношусь к авторам библиотеке и позволил себе внести изменения только из-за крайнего цейтнота.
(в файлах библиотеки отмечены строки, в которых произведены изменения).

Пример (все как для Оригинальной библиотеки + небольшие изменения):

#include <GorTM1637.h>

#define CLK A5 //pin-ы для TM1637
#define DIO A4

GorTM1637 disp(CLK, DIO);

void setup()
{
disp.clear(); // инициализация TM1637
disp.brightness(7); // ярк, 0 - 7 (минимум - максимум)
}


void loop()
{
disp.point(POINT_ON,2); // ТОЧКУ поставим во 2-ю поз. ( слева направо, начиная с нуля)

disp.displayInt(301); // получим па дисплее 30.1

delay(2000);

disp.point(POINT_OFF,2); // погасить точку (если надо)
disp.displayInt(103); // получим па дисплее 103

delay(2000);

}
 

Вложения

Wan-Derer

★★★★★✩✩
Команда форума
31 Июл 2018
2,034
406
Москва
wan-derer.ru
@fordisimo, М.б. это лучше на гихаб или где она там живёт? Вероятность что сюда заглянет автор оригинальной библиотеки равна нулю
 

DMUTPUUM

✩✩✩✩✩✩✩
6 Ноя 2019
6
0
Числа 0.1 ... 0.9 как будут отображаться? Там вроде ноль гасится
 

gorby777

✩✩✩✩✩✩✩
24 Мар 2021
2
0
screen2.display(0,day / 10);
byte b = day % 10;
switch(b){
case 0: b = 0x3f|0x80; break;
case 1: b = 0x06|0x80; break;
case 2: b = 0x5b|0x80; break;
case 3: b = 0x4f|0x80; break;
case 4: b = 0x66|0x80; break;
case 5: b = 0x6d|0x80; break;
case 6: b = 0x7d|0x80; break;
case 7: b = 0x07|0x80; break;
case 8: b = 0x7f|0x80; break;
case 9: b = 0x6f|0x80; break;
}
screen2.displayByte(1,b);
screen2.display(2,month / 10);
screen2.display(3,month % 10);
 

gorby777

✩✩✩✩✩✩✩
24 Мар 2021
2
0
Т.е. резюмируем: screen.display(n, sign | 0x80); где sign - любой знак (символ, цифра, буква ...)
 

Nikanor

★★✩✩✩✩✩
1 Окт 2020
180
52
а не проще взять стандартную библиотеку вместо редкой и мало кем используемой.
 
  • Лойс +1
Реакции: PiratFox