Страница 1 из 2

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

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

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

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

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

Добавлено: 15.03.2023{, 09:01}
AlexCrane
DmitriyR, И для чего это может понадобиться? Выводить по нужным координатам не вариант?

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

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

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

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

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

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

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

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

Добавлено: 15.03.2023{, 12:13}
cmept-27
DmitriyR, Добавь нули в начале что бы было 000 025

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

Добавлено: 15.03.2023{, 12:15}
DmitriyR
cmept-27, ну... Это не решение, как по мне. И зачем отрисовывать эти нули? Это тоже не радует глаз. Костыли какие-то.

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

Добавлено: 15.03.2023{, 12:17}
cmept-27
DmitriyR, Ну не знаю у меня норм получилось viewtopic.php?t=2613&start=20#p110119 . Можешь считать длину строки и по ней менять координаты

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

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

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

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

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

Добавлено: 15.03.2023{, 12:28}
cmept-27
DmitriyR,
изображение_2023-03-15_192729790.png
изображение_2023-03-15_192729790.png (3.38 КБ) 995 просмотров
Как то так примерно вместо 0 пробел

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

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

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

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

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

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

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

Добавлено: 15.03.2023{, 12:58}
DmitriyR
Dryundel, да мы-то не спешим себя... Есть те, кто спешит нас. Мира всем и добра!

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

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

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

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

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

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

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

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

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

Добавлено: 15.03.2023{, 18:54}
DmitriyR
ecoins, можно и так сказать. А в полях имеется возможность выполнить выравнивание по центру поля, по краям?

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

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

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

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

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

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