LCD-1602 может показывать графику

0 3810
0

У вас в устройстве в наличии только текстовый дисплей? А хочется бы вывести на него что-то этакое?

Почему бы не сделать этого, тем более, что такая возможность есть.

 

LCD-1602   может показывать графику

 

Давно хотел в качестве хобби попробовать "на вкус" работу с микроконтроллерами.
И тут на дилэкстриме появился в продаже очень интересный набор Arduino UNO Starter Kit.
Набор достаточно интересен тем, что в нем практически есть всё, что нужно начинающему за реально смешные деньги.
С помощью него, практически, можно собрать любое устройство из примеров идущих к Arduino и даже больше.

После двухнедельного ожидания набор попал мне в руки и, наверно, как и каждый, сначала я поморгал светодиодом, потом подключил серву, потом шаговые движки с джойстиком и наконец, дошли руки до идущего в комплекте LCD-1602.

 

LCD-1602   может показывать графику

 

Выведя пару строк текста, я заинтересовался тем, что контроллер 1602 позволяет создавать 8 пользовательских символов. Сразу вспомнилось далекое детство и компьютер Альфа-БК(Радио86-РК) и как мы создавали игры комбинируя символы псевдографики. Тут же пришло в голову: Почему бы не попробовать сделать подобное?
Ведь можно объединить символы, которые используются для пользовательского набора, например в строку или прямоугольник 2х4 и постоянно изменяя символы пользовательского набора сделать подобие графического окна с текстовом дисплее.
Быстрый серфинг по инету показал, что такого до меня никто не делал, а значит это интересно.

Вот, что в итоге получилось:
Каждый символ состоит из 5х8 точек, они составляются из 8 байт из которых используется по 5 бит под точки.
Примерно так можно загрузить в массив следующий набор:
0b00000
0b01110
0b10001
0b10001
0b10001
0b01110
0b00000
0b00000

.. и получить символ "бублика".
Таким образом 8 символов составляют массив 8х8 байт (хотя даже меньше, ведь по горизонтали используется только 5 бит ) или графическое поле 8х40 точек.
Написал функции которые устанавливают нужный бит по координатам , стирают бит по координатам и определяют наличие точки, а так же функции обновления значений графического окна и пара вспомогательных — сдвиг она на 1 бит влево или вправо. Для тестирования придумалась игра ввиде ралли: формируется постоянно движущаяся дорога , которая скроллируется и по ней движется точка-машинка, управляемая с помощью джойстика. Столкновения с обочиной дороги регистрируются как штрафы. Выигрывает тот, кто за определенное время набрал меньше штрафов.
Подключение дисплея стандартное, как в примерах, джойстика — на аналоговые входы X->A0, Y->A1.

Вот, что получилось:

 

 

 

 

 

Скетч для скачивания.

 

 

 Сама возможность вывести немного графической информации на LCD-1602 на самом деле наверно имеет больше академическое значение, хотя вполне можно, например, для датчика температуры выводить графики дневного колебания.
Может кто-то придумает и другое назначение?

P.S. Сейчас на подходе более серьезный набор— простор для исследователя!

 

Спасибо http://users.nnm.ru/dixi_nnm/

 

 


Источник | Опубликовал: RD3AVG


и поделитесь с друзьями в соц сетях:


Добавить комментарий

Похожие новости