Откель? Там всё поле 5Х8!
а чей то мы тут делаем ?))
может поучаствовать художником цифровых ландшафтов чтоль…
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Укажите правильный адрес I2C
// Левый верхний угол нуля
byte zeroTopLeft[8] = {
0b11111,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000
};
// Правый верхний угол нуля
byte zeroTopRight[8] = {
0b11111,
0b00001,
0b00001,
0b00001,
0b00001,
0b00001,
0b00001,
0b00001
};
// Левый нижний угол нуля
byte zeroBottomLeft[8] = {
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b11111
};
// Правый нижний угол нуля
byte zeroBottomRight[8] = {
0b00001,
0b00001,
0b00001,
0b00001,
0b00001,
0b00001,
0b00001,
0b11111
};
void setup() {
lcd.init();
lcd.backlight();
// Создаем пользовательские символы
lcd.createChar(0, zeroTopLeft); // Индекс 0
lcd.createChar(1, zeroTopRight); // Индекс 1
lcd.createChar(2, zeroBottomLeft); // Индекс 2
lcd.createChar(3, zeroBottomRight); // Индекс 3
// Очищаем дисплей
lcd.clear();
// Выводим большую цифру 0
lcd.setCursor(0, 0); // Устанавливаем курсор в начало первой строки
lcd.write(0); // Левый верхний угол
lcd.write(1); // Правый верхний угол
lcd.setCursor(0, 1); // Устанавливаем курсор в начало второй строки
lcd.write(2); // Левый нижний угол
lcd.write(3); // Правый нижний угол
}
void loop() { }
Не, не лучше, нет сетки, тяжко догадаться где границы символа.
…млять, ничего по человечески нарисовать не могут, ну ведь ясно, что смещение на пиксель при таких масштабах существенно меняет вид изображения.
Хотим из символьного сделать графический дисплей.
кстати эти мониторы могут не пропускать солнечные лучи ? при включении пикселей…
заказ просто в сети видел… вроде в телеге, ссылку не найду…
то что так вроде можно сделать это понятно
https://ya.ru/video/preview/3306705161029550491
может тоже попробую))) получится, скину ночью код
Символ 1100 0111 там используется только в путь, посмотрите сами.
ЫЫ гаденыш восстал! не хочет мне рисовать цифры)))
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Массив для всех цифр 0-9, каждая цифра использует 4 слота
byte digits[10][4][8] = {
{ // Цифра 0
{0b11111,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000},//левый угол
{0b11111, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001},
{0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b11111},
{0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b11111}
},
{ // Цифра 1
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b00111, 0b00011, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b11111, 0b11111}
},
{ // Цифра 2
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111, 0b11111},
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000}
},
{ // Цифра 3
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111},
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000}
},
{ // Цифра 4
{0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b11111},
{0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b11111},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000}
},
{ // Цифра 5
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111},
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000}
},
{ // Цифра 6
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b11111},
{0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b11111}
},
{ // Цифра 7
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000}
},
{ // Цифра 8
{0b11111, 0b11111, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b11111},
{0b11111, 0b11111, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b11111},
{0b11111, 0b11111, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b11111},
{0b11111, 0b11111, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b11111}
},
{ // Цифра 9
{0b11111, 0b11111, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b11111},
{0b11111, 0b11111, 0b00001, 0b00001, 0b00001, 0b00001, 0b00001, 0b11111},
{0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111},
{0b11111, 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000}
}
};
void showDigit(int number) {
// Загружаем символы для текущей цифры в фиксированные слоты 0-3
lcd.createChar(0, digits[number][0]);
lcd.createChar(1, digits[number][1]);
lcd.createChar(2, digits[number][2]);
lcd.createChar(3, digits[number][3]);
// Очищаем только область цифры
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
// Выводим большую цифру
lcd.setCursor(0, 0);
lcd.write(0);
lcd.write(1);
lcd.setCursor(0, 1);
lcd.write(2);
lcd.write(3);
// Выводим обычную цифру справа для проверки
lcd.setCursor(5, 0);
lcd.print("Digit: ");
lcd.setCursor(5, 1);
lcd.print(" ");
lcd.setCursor(7, 1);
lcd.print(number);
}
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
// Выводим надпись один раз
lcd.setCursor(0, 0);
lcd.print("Big: Normal:");
}
void loop() {
// Поочередно показываем цифры от 0 до 9
for (int i = 0; i < 10; i++) {
showDigit(i);
delay(1500);
}
}
сможет кто в ручную нарисовать ?)))
Не. Там единичная линия по центру, а надо двойную с левого края.
Проще в поисковик картинку вставить из поста 25 и найти код автора…наверное…у меня по картинке почему- то не выпало совпадений.
Ня! font_tron
Спасибо! Вот это человек поработал, есть что почитать.
На здоровье! У него же есть это. Уже не раз попадалось, но что это(учитывая видео производства)?
![]()
А что это?
e paper? Минутного свечения?
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display
byte customChar[] = {//сердечко
B00000,
B01010,
B10101,
B10001,
B01010,
B00100,
B00000,
B00000
};
byte customChar1[] = {//молния
B00001,
B00010,
B00100,
B01000,
B11111,
B00010,
B00100,
B01000
};
void setup()
{
lcd.init();
lcd.backlight();
}
void loop()
{
lcd.createChar(0, customChar);
lcd.setCursor(0, 0);
lcd.write(0);
lcd.setCursor(0, 0);
lcd.print(char(254));
//
lcd.createChar(0, customChar1);
lcd.setCursor(15, 1);
lcd.write(0);
lcd.setCursor(15, 1);
lcd.print(char(254));
}
В симуляторе моргают поочерёдно, символы читаемы. То-есть теоритически/извратически можно 16 символов своих рисовать…для симулятора ![]()
Не, только восемь! Библиотекари, чай не тупее. При записи в любую из восьмёрок, в другой на соответствующем месте - переписывается и МЕНЯЕТСЯ
на дисплее. Вооот.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display
byte customChar[8] = {};
void setup()
{
lcd.init();
lcd.backlight();
for (uint8_t i = 0; i < 8; i++) {
(customChar[i] = customChar[i] - 1);
lcd.createChar(i, customChar);
lcd.setCursor(i, 0);
lcd.write(i);
delay(500);
}
for (uint8_t i = 0; i < 8; i++) {
(customChar[i] = customChar[i] + 1);
lcd.createChar(i + 8, customChar);
lcd.setCursor(i + 8, 0);
lcd.write(i + 8);
delay(500);
}
}
void loop()
{
}
![]()
Это в статической индикации, а мне предлагали глянуть в динамической. Моргать, по крайней мере в симуляторе, можно поочерёдно и даже успевать рассматривать надписи.



