Не, может быть страшным, но, хотя бы читабельным! Вон @v258 предложил из 6-и, и у Гайвера похожий, а с доработкой даже симпатишний(для меня)
А как он выглядит?
если так делать, тогда всегда 4 символа будет выводить… тоесть мы печатаем пустоту как символ… и их всегда 4… можно еще палку из единицы вставлять, но все равно вроде не то
и ваш вариант вроде лучше)))
Не надо печатать пустоту ![]()
Желательно иметь набор красивых цифр на размер 2,4,6 знакоместа из расчёта 8 фрагментов-сегментов
…про буквы русские молчу, уже был проект на старом форуме у товарища ![]()
(Технолаб вроде позывной)
Красиво смотрится.
А тут экономно.
Есть и графические дисплеи такого типа – всякое добро есть.
На ка кой они нужны? Читабельней точно не будет.
Скетч последний выложите.
Спойлер
#include <Wire.h>
#include "LiquidCrystal_I2C.h"
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte fragm_1[] = {
B00011,
B00011,
B00011,
B00011,
B00011,
B00011,
B00011,
B00011
};
byte fragm_2[] = {
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11111,
B01111
};
byte fragm_3[] = {
B11110,
B11111,
B00011,
B00011,
B00011,
B00011,
B00011,
B00011
};
byte fragm_4[] = {
B01111,
B11111,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000
};
byte fragm_5[] = {
B01110,
B11111,
B11011,
B11011,
B11011,
B11011,
B11011,
B11011
};
byte fragm_6[] = {
B11011,
B11011,
B11011,
B11011,
B11011,
B11011,
B11111,
B01110
};
byte fragm_7[] = {
B11110,
B11111,
B00011,
B00011,
B00011,
B00011,
B11111,
B11110
};
byte fragm_8[] = {
B01110,
B11111,
B11011,
B11011,
B11011,
B11011,
B11111,
B01110
};
struct {
byte *bitmap;
}
fragm_1_8[]={fragm_1,fragm_2,
fragm_3,fragm_4,
fragm_5,fragm_6,
fragm_7,fragm_8,
};
byte perehodnik[]={4,5,0,0,6,1,2,6,5,0,3,6,3,7,2,0,7,7,4,6};
///
void setup() {
lcd.init();
lcd.backlight();
for(byte i=0;i<8;i++){
lcd.createChar(i,fragm_1_8[i].bitmap );
}
byte k=0;
for(byte i=0;i<10;i++){
zifra(i,k+1);
k++;if(i%2==1){k++;}
}
}
void loop() {
}
///////////////////////
void zifra(byte zif,byte poz){// функция вывода цифры по позиции
lcd.setCursor(poz, 0);
lcd.write(perehodnik[2*zif]);
lcd.setCursor(poz, 1);
lcd.write(perehodnik[2*zif+1]);
}
///////////////////////
Он без прогмем и с файлами библиотеки внутри папки скетча.
Как говорил мой покойный сосед - Ну а вдруг !?
Да, гораздо лучше. Выкладывайте скетч.
Это если дисплей боком не поставить ![]()







