Lcd 1602 дисплей – Обзор LCD-дисплея 1602A (LCD1602A) – RobotChip

Автор: | 29.08.2019

LCD дисплей 1602 или «каша из топора» возвращается.

В общем решил сделать себе тоже приборчик.

Лирическое отступление.
Прибор я собрался делать по схеме Маркуса — страничка проекта, а еще точнее по ее дополненному варианту от Карла (Karl-Heinz K¨ubbeler)- страничка проекта.
Но когда решил собирать, то столкнулся с проблемой слишком большого количества информации.
Некоторая часть информации взята отсюда и отсюда.
Но так как прибор постоянно видоизменяется, дорабатывается и переделывается, то пришлось потратить некоторое время, что бы получить то, что я хочу.
В этой части обзора я хочу собрать все воедино и предложить моим читателям версию прибора для самостоятельного изготовления. Надеюсь что у меня это получится.

Делать я решил прибор с питанием от литиевого аккумулятора, в почти максимальной версии (нет входа частотомера и валкодера, но их при желании можно добавить).
Применен контроллер Atmega328, на плате присутствует схема заряда аккумулятора с индикацией, преобразователь питания с 3.7 до 5 Вольт (эта часть взята с моего обзора аккумуляторов), преобразователь для проверки стабилитронов.
Сама плата сделана по размерам обозреваемого дисплея и сама конструкция сделана так, что дисплей одевается на контакты разъема, образуя единое целое.

На плате размещен разъем под стандартный джек 3.5, причем разведен так, что при использовании режима генератора используется общий разъема и контакт левого канала.
Так же на плате есть тестовые площадки, так как использовать их при такой высоте индикатора не очень удобно, то я решил потом добавить плату с тестовыми площадками, когда пойму как мне будет удобно их расположить.
Прошивка была скомпилирована под этот прибор, но он вполне работает и с базовой прошивкой, я только изменил порог индикации разряда батареи, включил автоотключение после 5 измерений и отключил последовательный вывод данных.

Прибор может определять цоколевку и параметры полевых и биполярных транзисторов, диодов, конденсаторов (с измерением ESR), симисторов, резисторов, стабилитронов (до 33 Вольт), индуктивностей, работать как генератор частот.

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

Схема прибора, вид печатной платы и список примененных компонентов.

Принципиальная схема и трассировка

R1 2.2k Задает ток заряда аккумулятора, настроено на 450мА
R2 510 Ohm Ограничение тока светодиода индикации заряда
R3 30k Делитель индикации разряда аккумулятора L6920DB
R4 20k Делитель индикации разряда аккумулятора L6920DB
R5 470 Ohm Ограничение тока светодиода индикации разряда
R6 1 Ohm Датчик тока МС34063
R7 180 Ohm Ограничение базового тока силового транзистора МС34063
R8 5.6k Делитель ОС МС34063 Настроено на 35 Вольт
R9 81k Делитель ОС МС34063 Настроено на 35 Вольт
R10 2.2k Резистор для закрытия VT1

R11 180 Ohm Ограничение тока заряда затвора VT1
R12 5.6k ограничение тока базы VT2
R13 180 Ohm Защита от КЗ перемычки к кнопке Тест
R14 5.6k ограничение тока базы VT3
R15 22k Резистор для закрытия VT3
R16 10K Делитель ОС измерения напряжения батареи питания прибора
R17 3.3K Делитель ОС измерения напряжения батареи питания прибора
R18 5.6K Подтяжка коллектора VT3, блокировка МС34063
R19 3.3K Регулировка контрастности дисплея, требует подбора
R20 5.6K Подтяжка вывода reset процессора
R21 2.2K Питание источника опорного напряжения 2.5 Вольта
R22 180K Делитель измерения напряжения пробоя стабилитрона
R23 20K Делитель измерения напряжения пробоя стабилитрона
R24 6.2K Токоограничивающий резистор проверки стабилитронов
R25 470K Измерительный резистор
R26 680 Ohm Измерительный резистор
R27 470K Измерительный резистор
R28 680 Ohm Измерительный резистор
R29 470K Измерительный резистор
R30 680 Ohm Измерительный резистор
R31 22K Резистор для закрытия VT2
8pcs 0R Перемычка 1206
2pcs 0R Перемычка 0805

C1 1uF Керамический 0805
C2 47uF 16V Танталовый TAJC476K016RNJ-AVX
C3 1uF Керамический 0805
C4 47uF 16V Танталовый TAJC476K016RNJ-AVX
C5 1uF Керамический 0805
C6 1uF Керамический 0805
C7 22uF 16V Танталовый TAJC226K016RNJ-AVX
C8 470pF Керамический 1206
C9 47uF 50V Низкоимпедансный EZV470M50RC8
C10 1uF Керамический 0805
C11 22pF Керамический 1206
C12 22pF Керамический 1206

C13 100nF Керамический 1206
C14 1nF Керамический 0805
C15 100nF Керамический 0805

VT1 IRLML5203TRPBF
VT2 BC817
VT3 BC817

VD1 1N4148 1206
VD2 1N4148 1206
VD3 1N4148 1206
VD4 SS24T3G

IC1 STC4054GR
IC2 L6920DB
IC3 MC34063ABD-TR
IC4 ATmega328P-AUR
IC5 TL431BQDBZR

HL1 green color LED
HL2 red color LED

L1 CDRH73NP-100MC
L2 CDRH64BNP-331MC

quartz KX-3HT 8.0 MHz

Разъемы
3.5jack ST-11M-030-00-0
PB-06S 2шт
PLS-20

Кнопка SWT-3/10 (длину штока подобрать под свой корпус).

Резисторы, выделенные жирным шрифтом лучше применить точные (1%), при этом особое внимание надо уделить резисторам R25-R30, их лучше подобрать максимально точными, в идеале купить 0.1 или 0.5%, или купить менее точные и отобрать.


Схема прибора немного отличается от базовой схемы, но отличия небольшие. например выключение преобразователя 35 Вольт производится подачей 5 Вольт на управляющий вход микросхемы преобразователя МС34063. Регулировка контрастности производится не двумя резисторами, а одним, между входом регулировки и общим проводом схемы. В качестве ИОН применена TL431B точность 0.5%. немного изменена схема управления питанием.

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

На фото оба варианта платы, внизу с дефектом, вверху исправленная.

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

С обратной стороны платы расположились перемычки, это расплата за то, что плата односторонняя.

В собранном виде выглядит весьма компактно.

И при этом еще и работает.

Измерение параметров транзистора

И первого попавшегося конденсатора.

Материалы для скачивания
Схема, трассировка (все элементы подписаны), прошивка (английский язык)и биты конфигурации, Ponyprog с поддержкой AtMega328, инструкция на русском языке. Скачать
Дополнительно. WinAVR для компиляции своих настроек и исходники из которых я компилировал прошивку, инструкция по компиляции. — Скачать.

Описания на примененные компоненты — Скачать.

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

В общем я старался максимально собрать информацию для повторения прибора в одном месте, очень надеюсь что у меня получилось.

mysku.ru

Подключение LCD 1602 по I2C интерфейсу | RadioLaba.ru

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

              #include <P16F628A.INC>

              LIST        p=16F628A    

              __CONFIG    H’3F10′           ;Конфигурация микроконтроллера

                                              

              errorlevel  -302              ;не выводить сообщения с ошибкой 302 в листинге

 

Sec           equ         0020h             ;вспомогательные регистры счета

Sec1          equ         0021h             ;

Sec2          equ         0022h             ;

scetbit       equ         0024h             ;вспомогательный регистр счета кол-ва бит  

perem         equ         0025h             ;вспомогательный регистр приема/передачи байта по интерфейсу

tmp           equ         0026h             ;вспомогательный регистр счетчик        

                                            ;

lcd_tmp       equ         0027h             ;вспомогательный регистр передачи инструкций

                                            ;

adr_i2c       equ         0028h             ;регистры подпрограммы передачи данных по интерфейсу

tmp_i2c       equ         0029h             ;

slave_adr     equ         002Ah             ;

data_i2c      equ         002Bh             ;

                                            ;

flag          equ         007Fh             ;регистр флагов

 

#DEFINE       sda         PORTB,0           ;линия sda

#DEFINE       scl         PORTB,1           ;линия scl

#DEFINE       sda_io      TRISB,0           ;линия направления sda

#DEFINE       scl_io      TRISB,1           ;линия направления scl

#DEFINE       knp_led     PORTB,2           ;кнопка вкл/выкл подсветки

#DEFINE       led         PORTB,3           ;светодиод ошибки передачи данных по интерфейсу

 

;flag,2 — флаг состояния подсветки (0 — выключена, 1 — включена)

;flag,3 — флаг передачи команда/данные (0 — команда, 1 — данные)

;flag,4 — флаг направления передачи (0 — чтение, 1 — запись)

;flag,5 — флаг окончания приема данных от ведомого

;flag,6 — флаг ошибки передачи по интерфейсу I2C (отсутствие подтверждения от ведомого)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

              org         0000h             ;начать выполнение программы с адреса 0000h

              goto        Start             ;переход на метку Start

          

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Основная программа

                                            

Start         movlw       b’00000000′       ;установка значений выходных защелок порта B    

              movwf       PORTB             ;

                                            ;

              movlw       b’00000111′       ;выключение компараторов

              movwf       CMCON             ;

                                            ;

              bsf         STATUS,RP0        ;выбрать 1-й банк    

              movlw       b’11110111′       ;настройка линий ввода\вывода порта B      

              movwf       TRISB             ;RB3 — на выход, остальные на вход                            

              bcf         STATUS,RP0        ;выбрать 0-й банк

                                            ;

              clrf        flag              ;сброс регистра флагов

                                            ;

              call        lcd_led_on        ;вызов подпрограммы включения подсветки

                                            ;

              call        init_lcd          ;вызов подпрограммы инициализации дисплея

              call        err_prov          ;проверка ошибки

              

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

              

              movlw       0x02              ;установка адреса DDRAM памяти (1-я строка 3-я позиция)

              call        lcd_adr           ;вызоа подпрограммы передачи адреса DDRAM

 

              movlw       ‘R’               ;Вывод надписи RadioLaba.ru

              call        lcd_dat           ;

              movlw       ‘a’               ;

              call        lcd_dat           ;

              movlw       ‘d’               ;

              call        lcd_dat           ;

              movlw       ‘i’               ;

              call        lcd_dat           ;

              movlw       ‘o’               ;

              call        lcd_dat           ;

              movlw       ‘L’               ;

              call        lcd_dat           ;

              movlw       ‘a’               ;

              call        lcd_dat           ;

              movlw       ‘b’               ;

              call        lcd_dat           ;

              movlw       ‘a’               ;

              call        lcd_dat           ;

              movlw       ‘.’               ;

              call        lcd_dat           ;

              movlw       ‘r’               ;

              call        lcd_dat           ;

              movlw       ‘u’               ;

              call        lcd_dat           ;

                                            ;

              call        paus              ;пауза 1 сек

                                            ;

              movlw       0x43              ;установка адреса DDRAM памяти (2-я строка 4-я позиция)

              call        lcd_adr           ;вызоа подпрограммы передачи адреса DDRAM

                                            ;

              movlw       ‘L’               ;Вывод надписи LCD 1602A

              call        lcd_dat           ;

              movlw       ‘C’               ;

              call        lcd_dat           ;

              movlw       ‘D’               ;

              call        lcd_dat           ;

              movlw       ‘ ‘               ;

              call        lcd_dat           ;

              movlw       ‘1’               ;

              call        lcd_dat           ;

              movlw       ‘6’               ;

              call        lcd_dat           ;

              movlw       ‘0’               ;

              call        lcd_dat           ;

              movlw       ‘2’               ;

              call        lcd_dat           ;

              movlw       ‘A’               ;

              call        lcd_dat           ;

                                            ;

              call        paus              ;пауза 1 сек

              call        paus              ;пауза 1 сек

                                            ;

              movlw       .16               ;сдвиг экрана влево на 16 позиций

              movwf       tmp               ;

met_1         movlw       b’00011000′       ;команда сдвига экрана влево

              call        lcd_comm          ;вызов подпрограммы передачи команды

              decfsz      tmp,F             ;

              goto        met_1             ;

 

              movlw       0x13              ;установка адреса DDRAM памяти (1-я строка 20-я позиция)

              call        lcd_adr           ;вызоа подпрограммы передачи адреса DDRAM

 

              movlw       ‘P’               ;Вывод надписи PCF8574AT

              call        lcd_dat           ;

              movlw       ‘C’               ;

              call        lcd_dat           ;

              movlw       ‘F’               ;

              call        lcd_dat           ;

              movlw       ‘8’               ;

              call        lcd_dat           ;

              movlw       ‘5’               ;

              call        lcd_dat           ;

              movlw       ‘7’               ;

              call        lcd_dat           ;

              movlw       ‘4’               ;

              call        lcd_dat           ;

              movlw       ‘A’               ;

              call        lcd_dat           ;

              movlw       ‘T’               ;

              call        lcd_dat           ;

                                            ;

              call        paus              ;пауза 1 сек

                                            ;

              movlw       0x54              ;установка адреса DDRAM памяти (2-я строка 21-я позиция)

              call        lcd_adr           ;вызоа подпрограммы передачи адреса DDRAM

                                            ;

              movlw       ‘I’               ;Вывод надписи I2C bus

              call        lcd_dat           ;

              movlw       ‘2’               ;

              call        lcd_dat           ;

              movlw       ‘C’               ;

              call        lcd_dat           ;

              movlw       ‘ ‘               ;

              call        lcd_dat           ;

              movlw       ‘b’               ;

              call        lcd_dat           ;

              movlw       ‘u’               ;

              call        lcd_dat           ;

              movlw       ‘s’               ;

              call        lcd_dat           ;

                                            ;

              call        paus              ;пауза 1 сек

              call        paus              ;пауза 1 сек

                                            ;

sdvig         movlw       .16               ;сдвиг экрана вправо на 16 позиций с одновременным опросом кнопки подсветки

              movwf       tmp               ;с частотой 10 Гц

sdvig_1       movlw       b’00011100′       ;команда сдвига экрана вправо

              call        lcd_comm          ;вызов подпрограммы передачи команды

              call        knp_opros         ;вызов подпрограммы опроса кнопки подсветки

              movlw       .100              ;

              call        paus_lcd          ;пауза 100 мс

              decfsz      tmp,F             ;

              goto        sdvig_1           ;

 

              movlw       .20               ;пауза 2 сек с опросом кнопки подсветки с частотой 10 Гц

              movwf       tmp               ;

sdvig_2       call        knp_opros         ;вызов подпрограммы опроса кнопки подсветки

              movlw       .100              ;

              call        paus_lcd          ;пауза 100 мс

              decfsz      tmp,F             ;

              goto        sdvig_2           ;

 

              movlw       .16               ;сдвиг экрана влево на 16 позиций с одновременным опросом кнопки подсветки

              movwf       tmp               ;с частотой 10 Гц

sdvig_3       movlw       b’00011000′       ;команда сдвига экрана влево

              call        lcd_comm          ;вызов подпрограммы передачи команды

              call        knp_opros         ;вызов подпрограммы опроса кнопки подсветки

              movlw       .100              ;

              call        paus_lcd          ;пауза 100 мс

              decfsz      tmp,F             ;

              goto        sdvig_3           ;    

 

              movlw       .20               ;пауза 2 сек с опросом кнопки подсветки с частотой 10 Гц

              movwf       tmp               ;

sdvig_4       call        knp_opros         ;вызов подпрограммы опроса кнопки подсветки

              movlw       .100              ;

              call        paus_lcd          ;пауза 100 мс

              decfsz      tmp,F             ;

              goto        sdvig_4           ;

              goto        sdvig             ;переход на метку sdvig

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

knp_opros     btfsc       knp_led           ;Подпрограмма опроса кнопки подсветки дисплея

              return                        ;кнопка не нажата: выход из подпрограммы

              call        paus_knp          ;кнопка нажата, ожидание отжатия

              btfss       knp_led           ;

              goto        $-2               ;

                                            ;

              btfsc       flag,2            ;опрос флага состояния подсветки

              goto        knp_1             ;

              call        lcd_led_on        ;подсветка выключена: вызов подпрограммы включения подсветки

              return                        ;выход из подпрограммы

                                            ;

knp_1         call        lcd_led_off       ;подсветка включена: вызов подпрограммы выключения подсветки

              return                        ;выход из подпрограммы

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

              

err_prov      btfss       flag,6            ;проверка ошибок передачи данных

              return                        ;нет ошибок: выход из подпрограммы

err_1         bsf         led               ;ошибка: включить светодиод led

              goto        err_1             ;переход на метку err_1: зацикливание программы

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Подпрограмма включения/выключения подсветки дисплея

 

lcd_led_on    movlw       b’00001000′       ;Команда включения подсветки 3-й бит в 1

              movwf       adr_i2c           ;

              bsf         flag,2            ;установка флага включенного состояния подсветки

              goto        lcd_led_1         ;

 

lcd_led_off   movlw       b’00000000′       ;Команда выключения подсветки 3-й бит в 0

              movwf       adr_i2c           ;

              bcf         flag,2            ;установка флага выключенного состояния подсветки

lcd_led_1     movlw       b’01111110′       ;

              movwf       slave_adr         ;запись адреса микросхемы PCF8574AT в регистр slave_adr

              clrf        tmp_i2c           ;

              call        write_i2c         ;вызов подпрограммы записи по интерфейсу i2c

              return                        ;выход из подпрограммы

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Подпрограмма инициализации дисплея LCD 1602

 

init_lcd      movlw       .15               ;пауза 15 мс

              call        paus_lcd          ;

              movlw       b’00110000′       ;Передача команды 0011 (старший полубайт)

              call        lcd_comm_1        ;вызов подпрограммы передачи полубайта команды на дисплей

              btfsc       flag,6            ;проверка ошибки

              return                        ;

              movlw       .5                ;пауза 5 мс

              call        paus_lcd          ;

              movlw       b’00110000′       ;Передача команды 0011 (старший полубайт)

              call        lcd_comm_1        ;вызов подпрограммы передачи полубайта команды на дисплей

              btfsc       flag,6            ;проверка ошибки

              return                        ;

          

              movlw       .1                ;пауза 1 мс

              call        paus_lcd          ;

              movlw       b’00110000′       ;Передача команды 0011 (старший полубайт)

              call        lcd_comm_1        ;вызов подпрограммы передачи полубайта команды на дисплей

              btfsc       flag,6            ;проверка ошибки

              return                        ;

 

                                            ;Передача команды 0010 (старший полубайт)

              movlw       b’00100000′       ;Установка 4-х битного режима

              call        lcd_comm_1        ;вызов подпрограммы передачи полубайта команды на дисплей

              btfsc       flag,6            ;проверка ошибки

              return                        ;

 

                                            ;Передача команды 00101000

              movlw       b’00101000′       ; 4-х битный режим, использовать 2 строки дисплея, шрифт 5×8

              call        lcd_comm          ;вызов подпрограммы передачи байта команды на дисплей

              btfsc       flag,6            ;проверка ошибки

              return                        ;

 

                                            ;Передача команды 00001000

              movlw       b’00001000′       ;выключить дисплей, выключить курсор, выключить мигание курсора

              call        lcd_comm          ;вызов подпрограммы передачи байта команды на дисплей

              btfsc       flag,6            ;проверка ошибки

              return                        ;

                                          

              movlw       b’00000001′       ;Передача команды очистки дисплея 00000001

              call        lcd_comm          ;вызов подпрограммы передачи байта команды на дисплей

              btfsc       flag,6            ;проверка ошибки

              return                        ;

 

                                            ;Передача команды 00000110

              movlw       b’00000110′       ;направление движения курсора- вправо (инкремент адреса), запретить сдвиг экрана

              call        lcd_comm          ;вызов подпрограммы передачи байта команды на дисплей

              btfsc       flag,6            ;проверка ошибки

              return                        ;

 

                                            ;Передача команды 00001100

              movlw       b’00001100′       ;включить дисплей, выключить курсор, выключить мигание курсора

              call        lcd_comm          ;вызов подпрограммы передачи байта команды на дисплей

              return                        ;

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Подпрограмма передачи полубайта команды на дисплей

 

lcd_comm_1    movwf       lcd_tmp           ;

              movlw       b’01111110′       ;

              movwf       slave_adr         ;запись адреса микросхемы PCF8574AT в регистр slave_adr

 

              movlw       b’11110000′       ;Передача старшего полубайта, бит E=1

              andwf       lcd_tmp,W         ;

              movwf       adr_i2c           ;

              movlw       b’00000100′       ;

              iorwf       adr_i2c,F         ;

              btfsc       flag,2            ;опрос флага состояния подсветки

              bsf         adr_i2c,3         ;флаг подсветки=1, включение подсветки

 

              movlw       data_i2c          ;установка первого регистра приема/передачи

              movwf       FSR               ;

              movlw       b’11110000′       ;Передача старшего полубайта, бит E=0

              andwf       lcd_tmp,W         ;

              movwf       INDF              ;

              btfsc       flag,2            ;опрос флага состояния подсветки

              bsf         INDF,3            ;флаг подсветки=1, включение подсветки

    

              movlw       .1                ;передача 1-го байта

              movwf       tmp_i2c           ;

              call        write_i2c         ;вызов подпрограммы записи по интерфейсу i2c

              return                        ;выход из подпрограммы

    

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Подпрограмма передачи команды или данных на дисплей (1 байт)

 

lcd_adr       movwf       lcd_tmp           ;Команда записи адреса

              bsf         lcd_tmp,7         ;установка 7-го бита,

              bcf         flag,3            ;сброс флага, передача команды

              goto        lcd_met_1         ;

 

lcd_cgram     movwf       lcd_tmp           ;Команда установки адреса CGRAM памяти

              bcf         lcd_tmp,7         ;сброс 7-го бита, установка 6-го бита

              bsf         lcd_tmp,6         ;

              bcf         flag,3            ;сброс флага, передача команды

              goto        lcd_met_1         ;

 

lcd_dat       movwf       lcd_tmp           ;Подпрограмма записи данных в дисплей

              bsf         flag,3            ;установка флага, передача данных

              goto        lcd_met_1         ;

lcd_comm      movwf       lcd_tmp           ;Подпрограмма передачи команды на дисплей

              bcf         flag,3            ;сброс флага, передача команды

 

lcd_met_1     movlw       b’01111110′       ;

              movwf       slave_adr         ;запись адреса микросхемы PCF8574AT в регистр slave_adr

              

              movlw       b’11110000′       ;Передача старшего полубайта, бит E=1

              andwf       lcd_tmp,W         ;если передается команда бит RS=0

              movwf       adr_i2c           ;если передаются данные бит RS=1

              btfsc       flag,3            ;

              movlw       b’00000101′       ;

              btfss       flag,3            ;

              movlw       b’00000100′       ;

              iorwf       adr_i2c,F         ;

              btfsc       flag,2            ;опрос флага состояния подсветки

              bsf         adr_i2c,3         ;флаг подсветки=1, включение подсветки

              

              movlw       data_i2c          ;установка первого регистра приема/передачи

              movwf       FSR               ;

              movlw       b’11110000′       ;Передача старшего полубайта, бит E=0

              andwf       lcd_tmp,W         ;если передается команда бит RS=0

              movwf       INDF              ;если передаются данные бит RS=1

              btfss       flag,3            ;

              goto        lcd_met_2         ;

              movlw       b’00000001′       ;

              iorwf       INDF,F            ;

 

lcd_met_2     incf        FSR,F             ;инкремент регистра FSR

              swapf       lcd_tmp,F         ;меняем местами полубайты

              movlw       b’11110000′       ;Передача младшего полубайта, бит E=1

              andwf       lcd_tmp,W         ;если передается команда бит RS=0

              movwf       INDF              ;если передаются данные бит RS=1

              btfsc       flag,3            ;

              movlw       b’00000101′       ;

              btfss       flag,3            ;

              movlw       b’00000100′       ;

              iorwf       INDF,F            ;

 

              incf        FSR,F             ;инкремент регистра FSR

              movlw       b’11110000′       ;Передача младшего полубайта, бит E=0

              andwf       lcd_tmp,W         ;если передается команда бит RS=0

              movwf       INDF              ;если передаются данные бит RS=1

              btfss       flag,3            ;

              goto        lcd_met_3         ;

              movlw       b’00000001′       ;

              iorwf       INDF,F            ;

 

lcd_met_3     btfss       flag,2            ;опрос флага состояния подсветки

              goto        lcd_met_4         ;флаг подсветки=0, подсветка выключена, биты не меняем

 

              movlw       data_i2c          ;установка первого регистра приема/передачи

              movwf       FSR               ;

              bsf         INDF,3            ;флаг подсветки=1, включение подсветки

radiolaba.ru

Символьный дисплей LCD 1602 синий LCD-1602B — Дисплеи, индикаторы


Ограниченное
количество
Ограниченное
количество

 

Жидкокристаллический дисплей LCD 1602 (Liquid Crystal Display) 16 х 2 с синей подсветкой.
Дисплей LCD-1602B рекомендуется для создания различных Arduino проектов, обучения конструированию различных систем мехатроники и программированию, а также для конструкторских хобби.

  • Подключение дисплея LCD1602 к Arduino осуществляется по синхронному 8-битному параллельному интерфейсу.
  • Символьный дисплей построен на базе ЖК дисплея типа STN (Super Twisted Nematic) под управлением контроллера HD44780.
  • Дисплей LCD1602 может одновременно отображать до 32 символов (16 символов, 2 строки).
  • Контраст дисплея настраивается потенциометром, который устанавливается дополнительно.
  • Дисплей оснащён светодиодной подсветкой синего цвета.
  • Контроллер дисплея HD44780 имеет ПЗУ в которой хранятся цифры, символы латиницы и некоторые иероглифы японского языка, для их отображения на дисплее. Отсутствующие символы, в т.ч. и символы кириллицы, можно загружать в память ОЗУ контроллера.
Характеристики
Тип дисплея: жидкокристаллический символьный (латиница)
Количество символов в строке: 16
Количество строк: 2
Цвет подсветки: синий
Цвет символов: белый
Контроллер: HD44780
Угол обзора: 180°
Интерфейсы: синхронный, 8-битный, параллельный
Напряжение питания: 5В
Рабочая температура: от -20 °С до +70 °С
Размеры: 82 х 36 х 11 мм

Размеры дисплея LCD1602:
Нажмите для просмотра (874 × 618 пикселя, размер файла: 66 КБ, MIME-тип: image/png) =>>

Для удобного подключения дисплея LCD1602 рекомендуется использовать конвертер LCD-1602-IIC-Adapter (см. «С этим товаром так же покупают:») для преобразования параллельного 8-битного интерфейса текстовых ЖК дисплеев в шину I2C.

Подключение дисплея LCD1602 по параллельному интерфейсу немного сложнее, чем через конвертер по шине I2C, а также требуется дополнительный элемент — потенциометр для регулировки контрастности.

Подключение дисплея LCD1602:

Шина данных дисплея состоит из 8 линий (D0-D7), но если подключить только старшие 4 линии (D4-D7), как это показано на рисунке, это не снижает скорость работы дисплея. Для удобства мы подключили выводы D4-D7 дисплея к одноимённым выводам D4-D7 Arduino. Вы можете подключать выводы D0-D7, E и RS дисплея, к любым выводам Arduino, указав их в скетче при объявлении объекта библиотеки.

Напряжение питания логики дисплея 5 В постоянного тока подаётся на выводы VDD (VCC) и VSS (GND) дисплея.

Напряжение питания подсветки 5 В постоянного тока подаётся на выводы A (Анод — Anode) и K (Катод — Cathode) дисплея.

Потенциал для установки контрастности 0 … +5 В постоянного тока подаётся на вывод V0 дисплея.

   

Товар был добавлен в наш каталог Вторник, 02 Мая 2017

robot-kit.ru

LCD дисплей 1602 или «каша из топора» возвращается.

Некоторое время назад я выкладывал обзор USB-rs232 ttl преобразователя, в обзоре я написал, что в посылке был не только преобразователь. Но так как я был занят на работе, то сразу не смог выложить обзор второй части посылки, здесь я исправлю этот пробел.

Сразу хочу сказать, что как я писал в прошлом обзоре, продавец мало того что поднял цену на свой товар, так и сделал платной доставку на Украину, в связи с этим покупка у конкретно этого продавца стала совсем неинтересной.

Данный тип дисплея наверное один из самых популярных и применяется во многих любительских и не только разработках. Даташит на данную модель дисплея — тык. Данный дисплей совместим с HD44780 поэтому может применяться в изделиях которые работают с данным типом контроллера.

Пришел он в обычном конверте, когда получал на почте, то думал что уже давно его раздавили, ошибся.

LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
Внутри упакован в обычный пакетик с защелкой. Впрочем даже если бы его раздавили, то все равно ему применение нашел бы.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
Спереди дисплей как дисплей, врядли кто-то увидит для себя что то новое.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
Сзади 2 чипа в «капельном» исполнении, несколько резисторов, кстати резистор питания подсветки уже расположен на самой плате, поэтому на контакты подсветки можно подавать просто 5 Вольт.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
Зачем купил, не знаю, наверное становлюсь шопоголиком, просто увидел низкую цену и купил.
Дисплей без поддержки кириллицы, впрочем иногда это не критично, по крайней мере для меня. Понравилась подсветка, при потребляемом токе в 20мА светит примерно раза в 2 ярче, чем дисплеи, которые я покупал раньше (довольно давно) для всяких поделок, только там надо было дать ток в 200мА, разница в 10 раз. Правда подсветка сделана так, что справа, где установлен светодиод подсветки, очень сильно светит вбок, надо заклеивать чем то или закрашивать. На старых такого нет, но все равно возвращаться к ним не хочется.
Впрочем если корпус закрытый, то может и не мешать.Пример старого дисплея есть в одном из моих обзоров.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
И просто дисплеи рядомLCD дисплей 1602 или &quot;каша из топора&quot; возвращается.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
А это дисплеи, который был с платой лабораторного блока питания. Он практически один в один с обозреваемым дисплеем, только инверсный и синего цвета, зеленый понравился мне больше.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.

Цифры четкие, замечаний нет, контрастность так же настроил без проблем.

Идея данного обзора пришла спонтанно, сложилось несколько вещей сразу.
— Собственно пришел сам дисплей.
— Увидел здесь обзор прибора для определения выводов полупроводников.
— Пришла бумага для печати печатных плат и надо было на чем то ее проверить.

Лирическое отступление.
Прибор я собрался делать по схеме Маркуса — страничка проекта, а еще точнее по ее дополненному варианту от Карла (Karl-Heinz K¨ubbeler)- страничка проекта.
Но когда решил собирать, то столкнулся с проблемой слишком большого количества информации.
Некоторая часть информации взята отсюда и отсюда.
Но так как прибор постоянно видоизменяется, дорабатывается и переделывается, то пришлось потратить некоторое время, что бы получить то, что я хочу.
В этой части обзора я хочу собрать все воедино и предложить моим читателям версию прибора для самостоятельного изготовления. Надеюсь что у меня это получится.

Делать я решил прибор с питанием от литиевого аккумулятора, в почти максимальной версии (нет входа частотомера и валкодера, но их при желании можно добавить).
Применен контроллер Atmega328, на плате присутствует схема заряда аккумулятора с индикацией, преобразователь питания с 3.7 до 5 Вольт (эта часть взята с моего обзора аккумуляторов), преобразователь для проверки стабилитронов.
Сама плата сделана по размерам обозреваемого дисплея и сама конструкция сделана так, что дисплей одевается на контакты разъема, образуя единое целое.
На плате размещен разъем под стандартный джек 3.5, причем разведен так, что при использовании режима генератора используется общий разъема и контакт левого канала.
Так же на плате есть тестовые площадки, так как использовать их при такой высоте индикатора не очень удобно, то я решил потом добавить плату с тестовыми площадками, когда пойму как мне будет удобно их расположить.
Прошивка была скомпилирована под этот прибор, но он вполне работает и с базовой прошивкой, я только изменил порог индикации разряда батареи, включил автоотключение после 5 измерений и отключил последовательный вывод данных.

Прибор может определять цоколевку и параметры полевых и биполярных транзисторов, диодов, конденсаторов (с измерением ESR), симисторов, резисторов, стабилитронов (до 33 Вольт), индуктивностей, работать как генератор частот.
Прибор включается кнопкой Тест, выключение автоматическое либо принудительное из меню.

Схема прибора, вид печатной платы и список примененных компонентов.Принципиальная схема и трассировка

LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
R1 2.2k Задает ток заряда аккумулятора, настроено на 450мА
R2 510 Ohm Ограничение тока светодиода индикации заряда
R3 30k Делитель индикации разряда аккумулятора L6920DB
R4 20k Делитель индикации разряда аккумулятора L6920DB
R5 470 Ohm Ограничение тока светодиода индикации разряда
R6 1 Ohm Датчик тока МС34063
R7 180 Ohm Ограничение базового тока силового транзистора МС34063
R8 5.6k Делитель ОС МС34063 Настроено на 35 Вольт
R9 81k Делитель ОС МС34063 Настроено на 35 Вольт
R10 2.2k Резистор для закрытия VT1
R11 180 Ohm Ограничение тока заряда затвора VT1
R12 5.6k ограничение тока базы VT2
R13 180 Ohm Защита от КЗ перемычки к кнопке Тест
R14 5.6k ограничение тока базы VT3
R15 22k Резистор для закрытия VT3
R16 10K Делитель ОС измерения напряжения батареи питания прибора
R17 3.3K Делитель ОС измерения напряжения батареи питания прибора
R18 5.6K Подтяжка коллектора VT3, блокировка МС34063
R19 3.3K Регулировка контрастности дисплея, требует подбора
R20 5.6K Подтяжка вывода reset процессора
R21 2.2K Питание источника опорного напряжения 2.5 Вольта
R22 180K Делитель измерения напряжения пробоя стабилитрона
R23 20K Делитель измерения напряжения пробоя стабилитрона
R24 6.2K Токоограничивающий резистор проверки стабилитронов
R25 470K Измерительный резистор
R26 680 Ohm Измерительный резистор
R27 470K Измерительный резистор
R28 680 Ohm Измерительный резистор
R29 470K Измерительный резистор
R30 680 Ohm Измерительный резистор
R31 22K Резистор для закрытия VT2
8pcs 0R Перемычка 1206
2pcs 0R Перемычка 0805

C1 1uF Керамический 0805
C2 47uF 16V Танталовый TAJC476K016RNJ-AVX
C3 1uF Керамический 0805
C4 47uF 16V Танталовый TAJC476K016RNJ-AVX
C5 1uF Керамический 0805
C6 1uF Керамический 0805
C7 22uF 16V Танталовый TAJC226K016RNJ-AVX
C8 470pF Керамический 1206
C9 47uF 50V Низкоимпедансный EZV470M50RC8
C10 1uF Керамический 0805
C11 22pF Керамический 1206
C12 22pF Керамический 1206
C13 100nF Керамический 1206
C14 1nF Керамический 0805
C15 100nF Керамический 0805

VT1 IRLML5203TRPBF
VT2 BC817
VT3 BC817

VD1 1N4148 1206
VD2 1N4148 1206
VD3 1N4148 1206
VD4 SS24T3G

IC1 STC4054GR
IC2 L6920DB
IC3 MC34063ABD-TR
IC4 ATmega328P-AUR
IC5 TL431BQDBZR

HL1 green color LED
HL2 red color LED

L1 CDRH73NP-100MC
L2 CDRH64BNP-331MC

quartz KX-3HT 8.0 MHz

Разъемы
3.5jack ST-11M-030-00-0
PB-06S 2шт
PLS-20

Кнопка SWT-3/10 (длину штока подобрать под свой корпус).

Резисторы, выделенные жирным шрифтом лучше применить точные (1%), при этом особое внимание надо уделить резисторам R25-R30, их лучше подобрать максимально точными, в идеале купить 0.1 или 0.5%, или купить менее точные и отобрать.


Схема прибора немного отличается от базовой схемы, но отличия небольшие. например выключение преобразователя 35 Вольт производится подачей 5 Вольт на управляющий вход микросхемы преобразователя МС34063. Регулировка контрастности производится не двумя резисторами, а одним, между входом регулировки и общим проводом схемы. В качестве ИОН применена TL431B точность 0.5%. немного изменена схема управления питанием.

По этой схеме (хотя правильнее сказать наоборот, по трассировке рисовалась схема) подобраны детали, что-то покупалось, что то выпаяно откуда то.
Плату я делал в обзоре бумаги, но ее пришлось отложить, так как на ней была ошибка, контакты индикатора были сдвинуты на 2мм, можно было припаять используя обрезки выводом компонентов и изогнуть, но я решил сделать новую плату. если для сборки прибора по уже существующей схеме проблем нет, то отлаживать схему в таком варианте было бы неудобно. Оставшуюся плату скорее всего подарю кому нибудь.
На фото оба варианта платы, внизу с дефектом, вверху исправленная.

LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
Спаянная и проверенная плата, к слову заработала без проблем, потребовалось только откалибровать и подстроить резистор контрастности индикатора. На фото аккумулятор от старого навигатора, там он уже нормально не работает, а здесь просто отлично прижился.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
С обратной стороны платы расположились перемычки, это расплата за то, что плата односторонняя.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
В собранном виде выглядит весьма компактно.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
И при этом еще и работает.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
Измерение параметров транзистораLCD дисплей 1602 или &quot;каша из топора&quot; возвращается.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
И первого попавшегося конденсатора.LCD дисплей 1602 или &quot;каша из топора&quot; возвращается.
Материалы для скачивания
Схема, трассировка (все элементы подписаны), прошивка (английский язык)и биты конфигурации, Ponyprog с поддержкой AtMega328, инструкция на русском языке. Скачать
Дополнительно. WinAVR для компиляции своих настроек и исходники из которых я компилировал прошивку, инструкция по компиляции. — Скачать.
Описания на примененные компоненты — Скачать.

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

В общем я старался максимально собрать информацию для повторения прибора в одном месте, очень надеюсь что у меня получилось.

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

Просто прикольная реклама, как из ничего сделать что-то.


www.kirich.blog

Wh2602B 16×2 Cимвольный дисплей — Winstar Display

Описание

There are different interface options for Wh2602B series, details as below:
►Wh2602B : 6800 interface (ST7066 IC), thickness NO B/L:9.70, with backlight: 13.2~13.5 mm
►Wh2602B1: SPI interface (RW1063 IC), thickness NO B/L:9.70, with backlight: 13.2~13.5 mm
►Wh2602B2: 6800 interface (ST7066 IC), thickness 10.0 mm
►Wh2602B3: I2C interface (RW1063 IC), thickness NO B/L:9.70, with backlight: 13.2~13.5 mm

DRAWING

Техническое описание

Функции контроллера контактного интерфейса

Pin No. Символы Описание
1 VSS Ground
2 VDD Power supply for logic
3 VO Contrast Adjustment
4 RS Data/ Instruction  select signal
5 R/W Read/Write select signal
6 E Enable signal
7~14 DB0~DB7 Data bus line
15 A Power supply for B/L +
16 K Power supply for B/L —

Механические характеристики

Наименование Стандартное значение Единица
Измерения модуля 80.0 x 36.0 mm
Зона обзора 66.0 x 16.0 mm
Крепежное отверстие 75.0 x 31.0 mm
Размер символов 2.95 x 5.55 mm

Электронные характеристики

Наименование Символы Стандартное значение
Типичный
Единица
Входной  напряжения VDD 3/5 V
Рекомендованное напряжение(вольт) 
при нормальной температурею.
Версия модуля @25°C
VDD-VO 3.70 V

Display Character Address Code

Положение Дисплея 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
DD RAM Address 00 01                           0F
DD RAM Address 40 41                           4F

Search Keyword: lcd 16×2, lcd 16 x 2, 16×2 lcd, 16 x 2 lcd

www.winstar.com.tw

Символьный дисплей LCD 1602 синий LCD-1602B — Дисплеи, индикаторы


Ограниченное
количество
Ограниченное
количество

 

Жидкокристаллический дисплей LCD 1602 (Liquid Crystal Display) 16 х 2 с синей подсветкой.
Дисплей LCD-1602B рекомендуется для создания различных Arduino проектов, обучения конструированию различных систем мехатроники и программированию, а также для конструкторских хобби.

  • Подключение дисплея LCD1602 к Arduino осуществляется по синхронному 8-битному параллельному интерфейсу.
  • Символьный дисплей построен на базе ЖК дисплея типа STN (Super Twisted Nematic) под управлением контроллера HD44780.
  • Дисплей LCD1602 может одновременно отображать до 32 символов (16 символов, 2 строки).
  • Контраст дисплея настраивается потенциометром, который устанавливается дополнительно.
  • Дисплей оснащён светодиодной подсветкой синего цвета.
  • Контроллер дисплея HD44780 имеет ПЗУ в которой хранятся цифры, символы латиницы и некоторые иероглифы японского языка, для их отображения на дисплее. Отсутствующие символы, в т.ч. и символы кириллицы, можно загружать в память ОЗУ контроллера.
Характеристики
Тип дисплея: жидкокристаллический символьный (латиница)
Количество символов в строке: 16
Количество строк: 2
Цвет подсветки: синий
Цвет символов: белый
Контроллер: HD44780
Угол обзора: 180°
Интерфейсы: синхронный, 8-битный, параллельный
Напряжение питания: 5В
Рабочая температура: от -20 °С до +70 °С
Размеры: 82 х 36 х 11 мм

Размеры дисплея LCD1602:
Нажмите для просмотра (874 × 618 пикселя, размер файла: 66 КБ, MIME-тип: image/png) =>>

Для удобного подключения дисплея LCD1602 рекомендуется использовать конвертер LCD-1602-IIC-Adapter (см. «С этим товаром так же покупают:») для преобразования параллельного 8-битного интерфейса текстовых ЖК дисплеев в шину I2C.

Подключение дисплея LCD1602 по параллельному интерфейсу немного сложнее, чем через конвертер по шине I2C, а также требуется дополнительный элемент — потенциометр для регулировки контрастности.

Подключение дисплея LCD1602:

Шина данных дисплея состоит из 8 линий (D0-D7), но если подключить только старшие 4 линии (D4-D7), как это показано на рисунке, это не снижает скорость работы дисплея. Для удобства мы подключили выводы D4-D7 дисплея к одноимённым выводам D4-D7 Arduino. Вы можете подключать выводы D0-D7, E и RS дисплея, к любым выводам Arduino, указав их в скетче при объявлении объекта библиотеки.

Напряжение питания логики дисплея 5 В постоянного тока подаётся на выводы VDD (VCC) и VSS (GND) дисплея.

Напряжение питания подсветки 5 В постоянного тока подаётся на выводы A (Анод — Anode) и K (Катод — Cathode) дисплея.

Потенциал для установки контрастности 0 … +5 В постоянного тока подаётся на вывод V0 дисплея.

   

Товар был добавлен в наш каталог Вторник, 02 Мая 2017

robot-kit.ru

Подключение ЖК дисплея к микроконтроллеру Arduino

Дисплеи LCD 1602 размера, созданные на базе HD44780 контроллера, в наши дни всё ещё остаются одними из самых доступных, простых и востребованных, чтобы разрабатывать какие бы то ни было электронные устройства. Неудивительно, что их можно увидеть как в простых, собранных буквально на коленке агрегатах, так и в более серьезных промышленных, например автоматах для приготовления кофе. Именно с таким дисплеем и собираются наиболее популярные модули и шилды по тематике Arduino, например LCD I2C модуль и LCD Keypad Shield.

Данная статья подробно с изображениями рассказывает, как подключить LCD к Arduino и отобразить информацию.

Шаг 1: LCD-дисплей 1602 для Ардуино

Дисплеи 1602 имеют два различных исполнения:

— жёлтая подсветка с чёрными буквами
— либо (это бывает гораздо чаще) синяя подсветка с белыми.

Размерность дисплеев на HD44780 контроллере бывает самой разной, а управляются они одинаково. Наиболее распространённые из размерностей – 16 на 02 (то есть по 16 символов в двух строках) или 20 на 04. Сами же символы имеют разрешение в 5 на 8 точек.

Большая часть дисплеев не поддерживает кириллицу (за исключением дисплеев CTK-маркировки). Но такая проблема частично решаема, и далее статья подробно рассказывает, как это сделать.

На дисплее есть 16-PIN разъём для подключения. Выводы имеют маркировку с тыльной стороны платы, она следующая:

1 (VSS) – питание на минус для контроллера.
2 (VDD) – питание на плюс для контроллера.
3 (VO) – настройки управления контрастом.
4 (RS) – выбор для регистра.
5 (R/W) – чтение и запись, в частности, запись при соединении с землёй.
6 (E) – активация (enable).
7–10 (DB0-DB3) – младшие биты от восьмибитного интерфейса.
11–14 (DB4-DB7) – старшие биты от интерфейса
15 (A) – положительный анод на питание подсветки.
16 (K) – отрицательный катод на питание подсветки.

Шаг 2: Подключаем ЖК-дисплей

Перед тем как подключать дисплей и передавать на него информацию, стоит проверить его работоспособность. Сперва подайте напряжение на VSS и VDD контроллер, запитайте подсветку (A, K), далее настройте контрастность. Для таких настроек подойдёт потенциометр с 10 кОм, форма его не важна. На крайние ноги подают +5V и GND, а ножку по центру соединяют с VO выводом.

Когда на схему подаётся питание, нужно добиться необходимого контраста, если он настраивается неправильно, то и изображение на экране видно не будет. Чтобы настроить контраст, нужно «поиграть» с потенциометром. Когда схема будет собрана правильно и контраст настроен верно, верхняя строка на экране должна заполниться прямоугольниками.

Чтобы дисплей работал, применяется встроенная в Arduino IDE среду специальная библиотека LiquidCrystal.h, о которой я напишу ниже. Он может действовать в 8-битном и в 4-битном режиме. В первом варианте применяют лишь младшие и старшие биты (BB0-DB7), во втором – только младшие (BB4-DB7).

Но применение 8-битного режима в этом дисплее – неправильное решение, преимущества в скорости почти нет, поскольку частота обновления у него всегда меньше 10 раз за секунду. Чтобы выводился текст, надо присоединить выводы DB7, DB6, DB5, DB4, E и RS к выводам контроллера. Присоединять их допустимо к любым пинам Arduino, главное – задание верной последовательности в коде.

Если необходимого символа пока что нет в памяти контроллера, то можно его определить вручную (всего до семи символов). Ячейка в рассматриваемых дисплеях имеет расширение в пять на восемь точек. Задача создания символа в том, чтобы написать битовую маску и расставить единички в местах, где точки должны гореть, а нолики – где не должны.

Рассмотренная выше схема подключения не всегда хороша, т. к. на Arduino занимается минимум шесть цифровых выходов.

Шаг 3: Схема обхода

Изучим вариант, как обойти это и обойтись только двумя. Нужен добавочный модуль-конвертор для LCD в IIC/I2C. Как он припаивается к дисплею и присоединяется к Arduino, можно увидеть на изображениях ниже.

Но такой вариант подключения действует лишь со специальной библиотекой LiquidCrystal_I2C1602V1, которую, впрочем, нетрудно найти в Сети и установить, после чего можно без проблем им пользоваться.

Шаг 4: Библиотека LiquidCrystal.h

Библиотеку LiquidCrystal.h можно скачать с официального ресурса — здесь. Также вы можете скачать ниже по ссылкам:

Для Arduino версий до 1.0: LiquidCrystal.zip

Для Arduino версий выше 1.0: LiquidCrystal_1.zip

Скетч

После того, как вы скачали архив замените папку LiquidCrystal в папке с библиотеками вашего каталога установки Arduino.

Вы можете увидеть примерный скетч в Файл -> Примеры -> LiquidCrystal -> HelloWorld_SPI (File -> Examples -> LiquidCrystal -> HelloWorld_SPI).

На этом наш очередной урок завершен. Желаем вам качественных проектов!

arduinoplus.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о