Можете ли вы активировать весь пиксель на ЖК-дисплее?
Я работаю над проектом, в котором я пытаюсь отображать уровень заполненного резервуара с помощью ультразвука, а затем отображать его на ЖК-дисплее 16x2. Я пытаюсь сделать это через все пиксели ЖК-дисплея, чтобы, когда уровень резервуара полон, активировались первые 5 пикселей (как это происходит, когда вы изначально подключаете ЖК-дисплей без какого-либо кода для него, все пиксели поворачиваются на, давая белые прямоугольники 16x2, как показано на рисунке ниже). Есть ли способ активировать весь пиксель на ЖК-дисплее?
@Zelreedy, 👍2
Обсуждение2 ответа
ЖК-дисплей состоит из 32 символов, каждый из которых имеет размер 5x7 пикселей с промежутком в 1 пиксель между символами.
Нельзя ничего помещать в промежутки между символами, так как там просто ничего нет.
Но вы можете определить свои собственные символы, чтобы они помещались в прямоугольники размером 5x7 пикселей.
Некоторые варианты HD44780 имеют символ 255 в виде сплошного блока, но не все (это зависит от языка ПЗУ). Если у вас есть файл с этим символом, вы можете просто распечатать его с помощью lcd.print("\xff")
или lcd.write(255)
. Если это не так, вместо этого будет напечатано ÿ
. В этом случае вам придется определить свой собственный символ.
Одним из преимуществ определения собственных символов является то, что вы можете делать частичные блоки, чтобы получить более высокое разрешение. Вот пример:
Вы можете найти этот пример и соответствующий код здесь.
ЖК-дисплеи, подобные тому, что вы видите, отображают символы. Это все, что они делают. Вы не можете адресовать пиксели на дисплее.
И в качестве пояснения, вы говорите о блоках символов размером 5 на 7 пикселей на дисплее, как если бы символ был пикселем. Это не. Блок символов состоит из 5 x 7 пикселей.
Некоторые версии могут иметь предопределенный символ сплошного блока, как сказал Майенко в своем ответе. Вы можете напечатать столько сплошных блоков, сколько захотите.
Вы также можете определить один пользовательский символ, который будет отображать сплошной блок, и напечатать их столько, сколько хотите.
В качестве третьего варианта (опять же из превосходного ответа Маженко) вы можете определить 5 различных пользовательских символов, каждый из которых имеет разное количество заполненных столбцов пикселей. Затем вы можете написать код, который отображает сплошные блоки для всех, кроме последнего символа, а затем один из 5 частично заполненных пользовательских символов и получить более точное разрешение смоделированной гистограммы.
При всем при этом помните, что ЖК-дисплей может отображать только блоки размером 5x7 с пустым пространством между ними. ЖК-дисплей построен без каких-либо пикселей между символами, поэтому всегда будут пробелы.
Вы можете использовать и другие пиксельные дисплеи. (Я видел OLED-дисплеи, на которых можно управлять каждым символом по отдельности.)
- Печать string and integer LCD
- Как отобразить символ º на ЖК-дисплее?
- Отправка значения с одного Arduino на другой
- Черные квадраты дисплея Arduino 16x2
- NodeMCU с RFID RC522 и LCD-модулем интерфейса I2C вместе
- ЖК-дисплей I2C отображает странные символы
- Экран LCD 16*02 I2C показывает только первый напечатанный символ
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
Вы можете определить свои собственные символы для отображения. Это то что ты хочешь?, @Majenko
@Majenko Нет. Моя проблема заключается в том, чтобы не отображать символы. Однако я хочу отобразить белые прямоугольники, как показано на рисунке. Есть ли код для активации всего пикселя прямоугольника?, @Zelreedy
Вы можете определить **своих** персонажей. Создайте персонажа, у которого есть все пиксели, которые вы хотите установить., @Majenko
@ Маженко О, понятно. Я предположил, что есть более простой способ, так как он просто активирует весь прямоугольный пиксель. Спасибо за вашу помощь!, @Zelreedy
Проверьте техническое описание вашего дисплея. Это должно дать вам предопределенные символы. Один из них может быть сплошным блоком., @Majenko
на этом изображении показаны все пиксели в первой активированной строке... промежуточных пикселей нет, @jsotola