Дисплей 1602 показывает квадратики

Обновлено: 03.07.2024

Всем доброй ночи . Заказал дисплей с китая . Подключив питание горит только нижняя строка . Констрактность регулируется . включил в схему а там тоже самое , только нижняя вся строка. Есть какие то методы проверки их. С уважением Юрий

Думаю, надо управлять индикатором некоторой программулиной. которая бы управляла отдельным знакоместом, проверяя их последовательно. Т.е. нужна тестовая программа, по другому не проверишь. Там же код в последовательном виде загружается. Мне вот интересно, если индикатор 2*20 , а программа для индикатора 2*16, будет она корректно работать на 2*20, или аналогично индикатор 4*16, а программа 2*16, будет она работать на таком большом индикаторе корректно?

Мне вот интересно, если индикатор 2*20 , а программа для индикатора 2*16, будет она корректно работать на 2*20, или аналогично индикатор 4*16, а программа 2*16, будет она работать на таком большом индикаторе корректно?

Если индикаторы на м/с HD44780 или её аналоге сделаны без "излишней претензии на оригинальность" (и те, что были в оригинальной конструкции, и те, что есть в наличии), то в обоих случаях будут работать. "Исключения" возможны, если в индикаторе применена своя особая схема включения, отличающаяся от рекомендованой в "datasheet" на контроллер (очень редко встречались и такие).

будет она работать на таком большом индикаторе корректно?

Всё прекрасно работает, нужен был индикатор 2х8, пока нашёл отрабатывал схемку на макетке с индикатором 2х16 никаких проблем не возникло. Данные выводятся в те знакоместа кои указанны в программе, а расчёт знакомест у всех индикаторов одинаков!

Всё прекрасно работает, нужен был индикатор 2х8, пока нашёл отрабатывал схемку на макетке с индикатором 2х16 никаких проблем не возникло. Данные выводятся в те знакоместа кои указанны в программе, а расчёт знакомест у всех индикаторов одинаков!

На самом деле не у всех. Если, например, программа написана под "однокристалльны й" модуль 1x16, то на 2x16 8 первых знакомест будут в первой строке, а остальные - во второй. Но 2x16 будет корректно работать и на 2x20.

можно поставить в заведомо исправную схему, вместо рабочего индикатора..

Для всех ЖКИ c контроллером совместимым с HD44780 принята одна адресация строк.
1-я строка: 80h-BFh (64 символа). Выпускаются: 8,12,16,20,24,40 символов в строке.
2-я строка: С0h-FFh (64 символа). Аналогичное количество символов в строке.
Для четырех строчных ЖКИ адреса следующие:
1-я строка: 80h
2-я строка: С0h
3-я строка: 94h
4-я строка: D4h
Выпускаются 4х16 и 4х20.
Индикаторы 4х24 и 4х40 фактически состоят из двух 2-х строчных. Для выбора
верхнего или нижнего модуля присутствуют входы выбора кристала Е1 и Е2.
Если возникает не соответствие данной адресации, то можно предположить не полную
совместимость с HD44780.
При подаче напряжения на ЖКИ подсвечиваются знакоместа только верхней строки.
После инициализации подсвечиваются все знакоместа, которые заданы программой.
Процесс инициализации можно провести с помощью шести тумблеров. Можно даже выводить символы.
Но это всё крайне утомительно.

Здравствуйте! К сожалению не нашел ответа на свой вопрос на форуме поэтому задаю вопрос с созданием новой темы. Если что тыкните куда идти. Спасибо.

Проблема в подключении дисплея 2х16 символов (синий). При подключении к МК (ПИК 16F628) отображаются только квадратики верхней строчки, вместо текста. Прочитал, что это стандартный тест экрана. Подскажите почему не работает отображение?

Мои варианты:
1. Ошибка в коде. Но в протеусе все работает. Не знаю нужно ли выкладывать исходник, так как написан на бэйсике.
2. Ошибка в подключении пинов. Выкладываю фото - проверил 5 раз.


3. Плохая пайка контактов. Такая причина была найдена и описана в интернете. Сегодня обязательно перепаяю (сейчас на работе).

_________________
За любую помощь (даже попытку) ставлю +.

мне показалось, что дисплей не подключен правильно. на фотке ничего не разобрать - приведите нормальную схему ПО ФАКТУ с номерами пинов ЖКИ и их наименованиями, с номерами пинов МК и т.п.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется.

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Ну, судя по фото, пины данных вообще не подключены (D0-D8)

если тут вообще что-нибудь подключено

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

это синий китайский, за 180 рублей?
ну так с ним - библиотека XLCD нормально не работает.
пиши свою, там что-то с таймингами напутано (в дисплеях, в плане).
лежит у меня пяток таких - всё руки не доходят поиграться с ними плотно.
так, пощупал, читаются вроде, чтото в них пишется.
мб на новогодних каникулах поиграюсь.

Приглашаем всех желающих 25/11/2021 г. принять участие в вебинаре, посвященном антеннам Molex. Готовые к использованию антенны Molex являются компактными, высокопроизводительными и доступны в различных форм-факторах для всех стандартных антенных протоколов и частот. На вебинаре будет проведен обзор готовых решений и перспектив развития продуктовой линейки. Разработчики смогут получить рекомендации по выбору антенны, работе с документацией и поддержкой, заказу образцов.

В протеусе все работает, а на плате нет. Дополнительно пропаял ЛСД, но результат те же квадратики.
Может кто-нибудь скинет рабочую прошивку на пик16f628. Может прошивка глючная, хотя протеус сказал бы мне об этом.

В общем не могу понять причину.

_________________
За любую помощь (даже попытку) ставлю +.

Приглашаем 30 ноября всех желающих посетить вебинар о литиевых источниках тока Fanso (EVE). Вы узнаете об особенностях использования литиевых источников питания и о том, как на них влияют режим работы и условия эксплуатации. Мы расскажем, какие параметры важно учитывать при выборе литиевого ХИТ, рассмотрим «подводные камни», с которыми можно столкнуться при неправильном выборе, разберем, как правильно проводить тесты, чтобы убедиться в надежности конечного решения. Вы сможете задать вопросы представителям производителя, которые будут участвовать в вебинаре

а проверить дисп на другом девайсе с таким LCD (или подобным)
я тестирую на девней плате выдраной из какойто ККМ распаивать ее было лень вот и проверяю на ней такие диспы перед монтажем
чтоб если це сразу продавану претензию дать

_________________
Мудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет. и МЧС опаздает
и таки теперь Дураки и Толерасты умирают по пятницам!

GIMP в меню вместо текста выводит квадраты
Всем привет! GIMP, установленный под KDE 4.0 вместо текста меню и в окне загрузки выводит.

Выводит в консоль вместо русских букв квадраты
Добрый день. Подскажите пожалуйста, почему в Netbeans вместо русских букв задаваемых через консоль.


Составьте программу, которая выводит на экран квадраты N первых натуральных чисел.
Конец четверти, учитель напряг))))) 1. Составьте программу, которая выводит на экран квадраты N.

ArtSmm, убедительно прошу соблюдать правила форума
п 4.11
Картинки и любые другие файлы загружайте на форум, во избежание их удаления или потери на сторонних ресурсах. По этой же причине коды программ также должны находиться на форуме. А покрутить резистор контраста на i2c-переходнике не помогает? к сожалению, он выкручен до предела. Вроде все библиотеки попробовал, все равно таже ерунда. Ну, это неправильный ответ. Правильный — крутил туда-сюда, глядя на экран, текста не видно ни при каких положениях.
А во-вторых, если пытаешься разобраться с экраном, то и надо использовать скетч, который работает только с экраном. Как можно проще, например, выводит hello world. Зачем нам все эти датчики и сервы?
К сожалению i2c-адаптера у меня нет, попробовать сам не могу. я крутил, кроме яркости ничего не меняется) Поэтому я сократил ответ до сути. Квадраты остаются на месте. Я пробовал и в отдельности ставить, брал чистый скетч, закачивал в него "привет мир", потом включал экран - результат тот же. Экран не реагирует даже на простую команду включения и отключения подсветки lcd.backlight();
Как вариант можно попробовать узнать адрес устройства на шине I2C, но я не очень представляю как это сделать Ну вот, например, такой скетч. Подключение обычно — SCL на A5, SDA на A4
По сбросу должен в терминал выводить все найденные адреса. У меня работает с гироскопом.

Спасибо)) i2c scanner уже запустил, показал мое устройство по адресу 0*3F. Добился мигающего курса в правом верхнем углу) разбираюсь дальше

Добавлено через 22 минуты
Вопрос решен. Дело было в адресе устройства и в библиотеке


Написать программу,которая выводит на экран квадраты всех целых чисел от 7 до 20
Написать программу,которая выводит на экран квадраты всех целых чисел от 7 до 20.


Напишите программу, которая выводит на экран квадраты целых чисел от числа a до числа b
Turbo Pascal. Напишите программу, которая выводит на экран квадраты целых чисел от числа a до числа.


Программа выводит на экран адреса вместо элементов матрицы
Мне надо написать программу выводящую на экран квадратную матрицу. Ее размер полей ввожу с.

Вывести на экран эти квадраты, выделить другим цветом квадраты с максимальной и минимальной площадью
Помогите с заданием : В файле задано квадраты координатами диагоналей. Вывести на экран эти.


Эта статья охватит все, что необходимо знать, чтобы начать работу с LCD 1602 . Да и не только с 1602 (16×2), но и любыми другими символьными ЖК-дисплеями (например, 16×4, 16×1, 20×4 и т. д.), основанными на контроллере параллельного интерфейса HD44780 от Hitachi.

В LCD дисплеях используются жидкие кристаллы для создания видимого изображения. Когда к подобному кристаллу прикладывается ток он становится непрозрачным, перекрывая подсветку, которая находится за экраном. В результате эта конкретная область становиться темной по сравнению с другой. Подобным образом на экране отображаются символы.

Обзор LCD 1602


Если вы посмотрите внимательно, вы можете увидеть маленькие прямоугольники для каждого символа на дисплее и пиксели, которые составляют символ. Каждый из этих прямоугольников представляет собой сетку 5 × 8 пикселей.

Хотя такие дисплеи отображают только текст, они бывают разных размеров и цветов: например, 16×1, 16×4, 20×4, с белым текстом на синем фоне, с черным текстом на зеленом и другие.

Распиновка 16х02 символов

Перед тем, приступить к сборке и написанию кода, давайте сначала взглянем на распиновку LCD 1602.

Распиновка 16х02 символов

Практика

Теперь мы переходим к интересным вещам. Давайте проверим ЖК-дисплей. Сначала подключим контакты 5В и GND от Arduino Uno к шинам электропитания макетной платы. Затем подключим LCD 1602. Данный LCD имеет две отдельные линии питания:

  1. Контакт 1 и контакт 2 для питания самого LCD 1602
  2. Контакт 15 и контакт 16 для подсветки LCD 1602

Подсоедините контакты 1 и 16 LCD на минус питания, а контакты 2 и 15 к + 5В.

Далее необходимо подключить контакт 3, который отвечает за контрастность и яркость дисплея. Для точной настройки контрастности необходимо подключить крайние выводы потенциометра сопротивлением 10 кОм к 5В и GND, а центральный контакт (бегунок) потенциометра к контакту 3 на LCD дисплея.

Регулировка контрастности ЖК-дисплея с помощью потенциометра

Теперь включите Arduino и вы увидите подсветку. Поворачивая ручку потенциометра, вы должны заметить появление первой линии прямоугольников. Если это произойдет, поздравляем! Ваш ЖК-дисплей работает правильно.

Подключение LCD 1602 к Arduino

Прежде чем мы приступим к загрузке скетча и отправке данных на дисплей, давайте подключим LCD 1602 к Arduino.

LCD дисплей имеет много контактов (16 контактов). Но, хорошая новость заключается в том, что не все эти контакты необходимы для нас, чтобы подключиться к Arduino.

Итак, что мы будем работать с LCD дисплеем, используя 4-битный режим, и, следовательно, нам нужно только 6 контактов: RS, EN, D7, D6, D5 и D4.

Подключение 16-символьного ЖК-дисплея к Arduino UNO

Подключение 16-символьного ЖК-дисплея к Arduino UNO

Скетч

Объяснение кода:

Скетч начинается с подключения библиотеки LiquidCrystal. Как упоминалось ранее в этом руководстве, в сообществе Arduino есть библиотека LiquidCrystal, которая облегчает использование LCD дисплеев. Вы можете узнать больше о библиотеке LiquidCrystal на официальном сайте Arduino .

Далее мы должны создать объект LiquidCrystal. Этот объект использует 6 параметров и указывает, какие выводы Arduino подключены к выводам RS, EN и выводам данных: d4, d5, d6 и d7.

Теперь, когда мы объявили объект LiquidCrystal, мы можем получить доступ к специальным методам (или функциям), специфичным для ЖК-дисплея.

В функции setup() мы будем использовать две функции: первая функция begin(). В ней указываются размер дисплея, т.е. количества столбцов и строк. Если вы используете 16 × 2 символьный ЖК-дисплей, укажите параметры 16 и 2, если вы используете ЖК-дисплей 20 × 4, укажите параметры 20 и 4.

Вторая функция clear() очищает экран и перемещает курсор в верхний левый угол.

После этого мы переводим курсор на вторую строку, вызвав функцию setCursor(). Позиция курсора указывает место, где вам нужно отобразить новый текст на дисплее. Верхний левый угол считается col = 0, row = 0.

Другие полезные функции библиотеки LiquidCrystal

Есть несколько полезных функций, которые вы можете использовать с объектом LiquidCrystal. Немногие из них перечислены ниже:

  • Если вы просто хотите расположить курсор в верхнем левом углу дисплея без очистки дисплея, используйте home().
  • Существует много приложений, таких как turbo C++ или notepad ++, в которых нажатие клавиши «insert» на клавиатуре меняет курсор. Точно так же вы можете изменить курсор на ЖК-дисплее с помощью blink() или lcd.Cursor().
  • Функция blink() отображает мигающий блок размером 5 × 8 пикселей, а lcd.Cursor() подчеркивание (линия) на позиции, в которую будет записан следующий символ.
  • Вы можете использовать функцию noblink(), чтобы отключить мигающий курсор на дисплее и lcd.noCursor() чтобы скрыть курсор.
  • Вы можете прокрутить содержимое дисплея на один пробел вправо, используя lcd.scrollDisplayRight() или один пробел влево используя lcd.scrollDisplayLeft(). Если вы хотите непрерывно прокручивать текст, вам нужно использовать эти функции внутри цикла for.

Генерация пользовательских символов для LCD

Если вы находите символы на дисплее неподходящими и неинтересными, вы можете создать свои собственные символы (глиф) для своего ЖК-дисплея. Пользовательские символы чрезвычайно полезны в том случае, когда вы хотите отобразить символ, который не является частью стандартного набора символов ASCII.

Как мы уже обсуждали ранее в этом руководстве, символ на дисплее формируется в матрице 5×8 пикселей, поэтому вам нужно определить свой пользовательский символ в этой матрице. Для определения символа необходимо использовать функцию createChar() библиотеки LiquidCrystal.

Для использования createChar() сначала необходимо назначить массив из 8 байт. Каждый байт (учитывается только 5 бит) в массиве определяет одну строку символа в матрице 5×8. В то время как нули и единицы в байте указывают, какие пиксели в строке должны быть включены, а какие-выключены.

Генератор символов LCD

Создание собственного символа до сих пор было непросто! Поэтому было создано небольшое приложение под названием «Генератор пользовательских символов» для LCD.

Вы видите синюю сетку ниже? Вы можете нажать на любой из 5 × 8 пикселей, чтобы установить/очистить этот конкретный пиксель. И когда вы нажимаете на пиксели, код для символа генерируется рядом с сеткой. Этот код может быть непосредственно использован в вашем скетче Arduino.

Единственным ограничением является то, что библиотека LiquidCrystal поддерживает только восемь пользовательских символов.

Следующий скриншот демонстрирует, как вы можете использовать эти пользовательские символы на дисплее.

После включения библиотеки нам нужно инициализировать пользовательский массив из восьми байтов.

Далее в цикле для отображения пользовательского символа мы используем функцию write(), а в качестве параметра мы используем номер символа, который мы зарезервировали.

Читайте также: