Разделение LCD на сектора/зоны.

Вопросы от новичков
DmitriyR
Рядовой
Сообщения: 26
Зарегистрирован: 11.03.2022{, 19:17}
Репутация: 1
Имя: Дмитрий

Разделение LCD на сектора/зоны.

#1

Сообщение DmitriyR » 15.03.2023{, 06:59}

Здравствуйте, форумчане!
Имеется дисплей 2004. С помощью блока дисплея могу вывести информацию в каждую строку и включить выравнивание по левому краю, правому или по центру строки...

Вопрос: а как сделать так, чтобы каждую строку дисплея поделить пополам (20/2=10 столбцов) и в каждой из половин отображать текст, выравнивая его по центру/слева/справа? То есть, должно из строки по 20 столбцов получиться две по 10 столбцов и в каждой из двух я должен иметь возможность выравнивания текста слева, справа или по центру этой области.
Или обозначить как- то произвольно область экрана (скажем 5 столбцов в любой строке) и выполнить выравнивание в этой области...

Может есть такие блоки у кого?

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Разделение LCD на сектора/зоны.

#2

Сообщение AlexCrane » 15.03.2023{, 09:01}

DmitriyR, И для чего это может понадобиться? Выводить по нужным координатам не вариант?
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

DmitriyR
Рядовой
Сообщения: 26
Зарегистрирован: 11.03.2022{, 19:17}
Репутация: 1
Имя: Дмитрий

Разделение LCD на сектора/зоны.

#3

Сообщение DmitriyR » 15.03.2023{, 11:40}

AlexCrane, это нужно для того, чтобы выглядело красиво. Выводить по координатам - это указывать с какого столбца? Нет. Этот вариант не нравится. Хочется выводить информацию нормально, а не лепить все подряд в одну строку. Если я вывожу на дисплей некое изменяющееся число, то я хочу видеть его в нужном мне месте и чтоб разряды этого числа расширялись в обе стороны, а не в какую-то одну. Надеюсь, я подобрал правильные слова и моя задумка понятна. Меня интересует как это можно реализовать. Должны же быть инструменты для этого.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разделение LCD на сектора/зоны.

#4

Сообщение Dryundel » 15.03.2023{, 11:48}

DmitriyR писал(а):
15.03.2023{, 06:59}
Может есть такие блоки у кого?
Таких блоков нет. Во всяком случае не видел. Задача специфическая, не будет иметь спроса. А сделать не очень просто.
Может Вы расскажете вашу идею для чего это надо? Будет проще что то предложить.

Отправлено спустя 1 минуту 10 секунд:
DmitriyR писал(а):
15.03.2023{, 11:40}
Должны же быть инструменты для этого.
Они есть. С++ сила!

DmitriyR
Рядовой
Сообщения: 26
Зарегистрирован: 11.03.2022{, 19:17}
Репутация: 1
Имя: Дмитрий

Разделение LCD на сектора/зоны.

#5

Сообщение DmitriyR » 15.03.2023{, 12:04}

Dryundel, допустим, я хочу сделать спидометр. Моя задумка такова. Я делаю рамку из символов и помещаю в нее значение скорости. Значение может иметь вид одно-двух или трехзначного числа. Можно указать столбец с которого значение будет выводиться на дисплей. Тогда получается, что оно будет выводиться слева направо. Если значение равно, скажем, четырем, то я получаю пустое поле после этого значения под другие разряды. Выглядит это отвратительно. Вот и хочется иметь возможность выводить значение по центру некой заранее отведенной области. Тогда будет глаз радовать.

Аватара пользователя
cmept-27
Сержант
Сообщения: 270
Зарегистрирован: 08.12.2016{, 15:51}
Репутация: 76

Разделение LCD на сектора/зоны.

#6

Сообщение cmept-27 » 15.03.2023{, 12:13}

DmitriyR, Добавь нули в начале что бы было 000 025
OK

DmitriyR
Рядовой
Сообщения: 26
Зарегистрирован: 11.03.2022{, 19:17}
Репутация: 1
Имя: Дмитрий

Разделение LCD на сектора/зоны.

#7

Сообщение DmitriyR » 15.03.2023{, 12:15}

cmept-27, ну... Это не решение, как по мне. И зачем отрисовывать эти нули? Это тоже не радует глаз. Костыли какие-то.

Аватара пользователя
cmept-27
Сержант
Сообщения: 270
Зарегистрирован: 08.12.2016{, 15:51}
Репутация: 76

Разделение LCD на сектора/зоны.

#8

Сообщение cmept-27 » 15.03.2023{, 12:17}

DmitriyR, Ну не знаю у меня норм получилось viewtopic.php?t=2613&start=20#p110119 . Можешь считать длину строки и по ней менять координаты
OK

DmitriyR
Рядовой
Сообщения: 26
Зарегистрирован: 11.03.2022{, 19:17}
Репутация: 1
Имя: Дмитрий

Разделение LCD на сектора/зоны.

#9

Сообщение DmitriyR » 15.03.2023{, 12:21}

AlexCrane, Dryundel, cmept-27, пока вижу лишь вариант дорисовывать пробелы перед числом, чтобы сдвинуть строку. Если число больше, либо равно 10 то убираем один пробел перед числом. И т.д. Но, как-то это тоже громоздко будет выглядеть в программе.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разделение LCD на сектора/зоны.

#10

Сообщение Dryundel » 15.03.2023{, 12:25}

DmitriyR писал(а):
15.03.2023{, 12:04}
Моя задумка такова. Я делаю рамку из символов и помещаю в нее...
О-о! Такая задача вообще не для LCD2004. Возьмите какой нибудь пиксельный дисплей или ещё что нибудь посерьезней.

Аватара пользователя
cmept-27
Сержант
Сообщения: 270
Зарегистрирован: 08.12.2016{, 15:51}
Репутация: 76

Разделение LCD на сектора/зоны.

#11

Сообщение cmept-27 » 15.03.2023{, 12:28}

DmitriyR,
изображение_2023-03-15_192729790.png
изображение_2023-03-15_192729790.png (3.38 КБ) 917 просмотров
Как то так примерно вместо 0 пробел
OK

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разделение LCD на сектора/зоны.

#12

Сообщение Dryundel » 15.03.2023{, 12:29}

DmitriyR писал(а):
15.03.2023{, 12:21}
Если число больше, либо равно 10 то убираем один пробел перед числом. И т.д. Но, как-то это тоже громоздко будет выглядеть в программе.
В коде это еще громоздче получится, для того, что бы предоставить Вам блок с такой блажью.

DmitriyR
Рядовой
Сообщения: 26
Зарегистрирован: 11.03.2022{, 19:17}
Репутация: 1
Имя: Дмитрий

Разделение LCD на сектора/зоны.

#13

Сообщение DmitriyR » 15.03.2023{, 12:42}

Dryundel писал(а):
15.03.2023{, 12:25}
DmitriyR писал(а):
15.03.2023{, 12:04}
Моя задумка такова. Я делаю рамку из символов и помещаю в нее...
О-о! Такая задача вообще не для LCD2004. Возьмите какой нибудь пиксельный дисплей или ещё что нибудь посерьезней.
Вполне нормальная задача для 2004.
Где-то на ютубе попадалось мне такое. Кажется, там человек погодную станцию делал. Вполне нормально отрисовывал рамку символом градуса. Графический дсплей купить хорошо, конечно, но там еще с какими-нибудь проблемами столкнусь. Хотелок больше появится. А если уж на то пошло, то проще готовое устройство купить по своим нуждам, но мы ведь не для того тут, верно? На счет C++, согласен с вами - вещь, только вот на изучение уйдет много времени, да помимо понимания команд нцжно еще и логику иметь нестандартную. Годы, когда можно было за это браться и учиться, прошли. Впереди... Кто знает сколько еще осталось? Браться за изучение языков программирования нет уже смысла. Спасибо Сергею Глушенко за этот подарок - flprog! Спасибо всему сообществу за работу и помощь! Понятно, что всех хотелок не реализовать без кода, но без flprog я бы вообще сейчас скучал. Что же? Нет, так нет.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разделение LCD на сектора/зоны.

#14

Сообщение Dryundel » 15.03.2023{, 12:54}

DmitriyR писал(а):
15.03.2023{, 12:42}
Годы, когда можно было за это браться и учиться, прошли.
Не спешите себя хоронить. :)Показать

DmitriyR
Рядовой
Сообщения: 26
Зарегистрирован: 11.03.2022{, 19:17}
Репутация: 1
Имя: Дмитрий

Разделение LCD на сектора/зоны.

#15

Сообщение DmitriyR » 15.03.2023{, 12:58}

Dryundel, да мы-то не спешим себя... Есть те, кто спешит нас. Мира всем и добра!

Отправлено спустя 3 минуты 43 секунды:
Dryundel, на счет рамки из символов... Это можно и не делать. Просто с рамкой более понятен смысл этой темы - отрисовывать числа в произвольной области с выравниванием по центру этой области, а не у краев экрана или в его центре.

Отправлено спустя 5 минут 14 секунд:
Вообще интересна стала работа с дисплеем в программе. Вот, например, такой еще вариант было бы неплохо реализовать - отрисовка из центра дисплея (или произвольной области) справа налево. Такого я тоже не встречал, кажется. Интересно, почему это никому не интересно? :D

WildCat
Лейтенант
Сообщения: 426
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Разделение LCD на сектора/зоны.

#16

Сообщение WildCat » 15.03.2023{, 13:28}

DmitriyR писал(а):
15.03.2023{, 13:07}
Интересно, почему это никому не интересно
1. Задача нетипичная.
2. Нафиг никому не надо
3. Хороший интерфейс на древнем и примитивном дисплее не сделаешь.
4. Хотите красоты - возьмите Nextion (или аналоги)

ecoins
Полковник
Сообщения: 2945
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 454
Откуда: Шатура
Имя: Энвер

Разделение LCD на сектора/зоны.

#17

Сообщение ecoins » 15.03.2023{, 16:21}

DmitriyR писал(а):
15.03.2023{, 06:59}
Имеется дисплей 2004. С помощью блока дисплея могу вывести информацию в каждую строку и включить выравнивание по левому краю, правому или по центру строки...

Вопрос: а как сделать так, чтобы каждую строку дисплея поделить пополам (20/2=10 столбцов) и в каждой из половин отображать текст, выравнивая его по центру/слева/справа? То есть, должно из строки по 20 столбцов получиться две по 10 столбцов и в каждой из двух я должен иметь возможность выравнивания текста слева, справа или по центру этой области.
Или обозначить как- то произвольно область экрана (скажем 5 столбцов в любой строке) и выполнить выравнивание в этой области...

Может есть такие блоки у кого?
Если правильно понял, то требуется разбить строки на поля.
Если так, то это делают блоки ecoins.

DmitriyR
Рядовой
Сообщения: 26
Зарегистрирован: 11.03.2022{, 19:17}
Репутация: 1
Имя: Дмитрий

Разделение LCD на сектора/зоны.

#18

Сообщение DmitriyR » 15.03.2023{, 18:54}

ecoins, можно и так сказать. А в полях имеется возможность выполнить выравнивание по центру поля, по краям?

Отправлено спустя 10 минут 53 секунды:
WildCat писал(а):
15.03.2023{, 13:28}

1. Задача нетипичная.
2. Нафиг никому не надо
3. Хороший интерфейс на древнем и примитивном дисплее не сделаешь.
4. Хотите красоты - возьмите Nextion (или аналоги)
1.Задача нетипичная - это... Нарисовать кораблик в несколько строк из пикселей. И то, с натяжкой можно так сказать. :smile171:
2. Кому-то это надо, по-любому. Только те, кто это делает свободно, на этом форуме не сидят, похоже.
3. Так и цели нет делать что-то из ряда вон. Просто чуть окультурить, так сказать.
4. Вот именно такая красота мне ни к чему. Это лишнее. Посему, совет не принимается :no:
Последний раз редактировалось DmitriyR 15.03.2023{, 19:43}, всего редактировалось 1 раз.

ecoins
Полковник
Сообщения: 2945
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 454
Откуда: Шатура
Имя: Энвер

Разделение LCD на сектора/зоны.

#19

Сообщение ecoins » 15.03.2023{, 19:26}

DmitriyR писал(а):
15.03.2023{, 19:21}
ecoins, можно и так сказать. А в полях имеется возможность выполнить выравнивание по центру поля, по краям?
Каждое поле выравнивается влево, вправо, по центру. К каждому полю может быть привязан заголовок(текстовый, хранится в PROGMEM), суффикс(символ), за предела поля избыточное сообщение не выходит. Если длина поля=0, то длина поля определяется от текущей позиции до конца строки.

DmitriyR
Рядовой
Сообщения: 26
Зарегистрирован: 11.03.2022{, 19:17}
Репутация: 1
Имя: Дмитрий

Разделение LCD на сектора/зоны.

#20

Сообщение DmitriyR » 15.03.2023{, 19:45}

ecoins, имеется ли возможность где-то скачать все ваши блоки одним архивом? Вообще все, чтоесть для flprog у вас. Возможно что-то когда-то пригодится еще. Рыскать по всему форуму как-то неудобно совсем. Чтобы что-то найти, нужно еще обозвать это так, как обозвал автор, а это не всегда получается. Поиск надо с искусственным интеллектом и наводящими вопросами по ходу дела. :D

Ответить

Вернуться в «Начинающим»