![](http://www.junradio.com/ban/dd.gif)
![](http://www.junradio.com/ban/dd.gif)
![](http://www.junradio.com/ban/dd.gif)
![](http://www.junradio.com/ban/dd.gif)
![](http://www.junradio.com/ban/dd.gif)
|
|
Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience |
|
Если в Вашем проекте Arduino должна "общаться" с пользователем, то первое, что приходит на ум - ее надо оснастить дисплеем и клавиатурой. Про клавиатуры поговорим в другой статье, а тема данной публикации - символьный дисплей. Почему именно символьный? - Он самый дешевый, самый простой в обращении и его возможностей достаточно для реализации 90% всех проектов.
Символьные дисплеи различаются по количеству строк и количеству символов в строке. Самыми распространенными являются дисплеи 1602 и 2004 - 16 символов/две строки и 20 символов/4 строки соответственно. Подключаются они к Arduino все одинаково при помощи 16 контактов. Два из них - питание, а остальные нужно подключать к пинам Arduino. Это просто ужасное расточительство по отношению к последним! Зато в стандартную поставку Arduino IDE входит библиотека LiquidCrystal, при помощи которой любая задача вывода текста на экран становится тривиальной. Правда стоит оговориться, что тривиальность продолжается ровно до тех пор, пока Вы не захотите вывести на экран русские буквы. Все дело в том, что таблица символов зашивается в сам дисплей производителем, а библиотека передает последнему всего лишь ascii-коды нужных символов. Понятное дело, большинство дисплеев, которые есть на нашем рынке - китайские. Русские символы для них - нонсенс. Но выход есть. Дело в том, что дисплею можно в процессе работы загрузить в его оперативную память несколько пользовательских символов. Хотя стоит признать, что и первых 128-ми символов(а они являются стандартными) с латинским алфавитом и цифрами обычно более чем достаточно. По отношению к задействуемым пинам микроконтроллера тоже есть "лекарство от жадности". И этим лекарством является сдвиговый регистр PCF8574T. Он позволяет подключить наш дисплей по шине I2C с использованием всего двух пинов Arduino. Что это за шина могу предложить почитать здесь. В двух словах - это возможность подключать к микроконтроллеру кучу устройств используя всего два контакта. Ну да от теории к практике...
Дисплей 16х2. Вроде как даже с русскими буквами в прошивке. Аналогичный предыдущему дисплей 20х4. Схему сдвигового регистра сами паять не будем - проще купить готовую у китайцев. А можно купить и уже готовую сборку.
Как подключить:
Купили, подключили... А дальше начинается самое интересное: библиотека LiquidCrystal в ее первозданном виде нам уже не подходит. Не беда - уже много народу прошло этим путем и успело "натоптать дорогу". Качаем библиотеку по ссылке и заменяем ею штатную. Использование библиотеки абсолютно аналогично:
A2 |
A1 |
A0 |
Адрес |
0 |
0 |
0 |
0x20 |
0 |
0 |
1 |
0x21 |
0 |
1 |
0 |
0x22 |
0 |
1 |
1 |
0x23 |
1 |
0 |
0 |
0x24 |
1 |
0 |
1 |
0x25 |
1 |
1 |
0 |
0x26 |
1 |
1 |
1 |
0x27 |
4. lcd.begin (20,4); инициализирует дисплей с указанным количеством строк и символов в строке
6. lcd.setBacklightPin(BACKLIGHT,NEGATIVE); инициализация пина подсветки
7. lcd.setBacklight(HIGH); включение подсветки
8. lcd.clear(); очистка экрана
9. lcd.setCursor ( 0, 1 ); позиционирование курсора (столбец, строка)
10. lcd.print("Hello world!"); вывод текста
По материалам rc-master, автор Зайчиков Александр