Защита глаз и эффект кривого дула: как нашлемные микродисплеи увеличивают боевой потенциал российской армии

Алан-э-Дейл       27.02.2023 г.

От лётчика до пехотинца

Как рассказал Хлопотов, последние годы в сухопутных войсках и спецподразделениях ВС РФ расширяется практика применения нашлемных микродисплеев. Ранее они использовались преимущественно в авиации и имели ряд серьёзных недостатков — большая масса, низкая пропускная способность каналов информации, ограниченность функционала.

«Пионерами в применении нашлемных систем индикации были лётчики истребителей и ударных вертолётов. Развитие нашлемных систем индикации для пехоты сдерживалось общим несовершенством электроники. Сейчас такая проблема позади. А с учётом огромного количества на ТВД камер, датчиков, сенсоров без микродисплеев стало невозможно обходиться, особенно во время спецопераций», — констатировал Хлопотов.

  • Перспективная нашлемная система индикации для лётчиков

В России изготовлением армейских микродисплеев занимаются структуры госкорпорации «Ростех». Одним из крупнейших центров разработки данных изделий является АО «Центральный научно-исследовательский институт «Циклон» (Москва).

Ранее в рамках импортозамещения и по поручению президента РФ Владимира Путина предприятие разработало линейку систем индикации на основе органических светоизлучающих диодов.

Как отметили эксперты, до 2014 года Вооружённым силам России нередко приходилось приобретать на Западе микродисплеи и большое количество комплектующих для их последующей сборки.

Привлечение белорусского предприятия вкупе с запуском импортозамещения позволило освободить ВС РФ от технологической зависимости от стран — членов НАТО, говорит Дмитрий Корнев.

Элементы платы

Дисплей

Дисплей MT-16S2H умеет отображать все строчные и прописные буквы латиницы и кириллицы, а также типографские символы. Для любителей экзотики есть возможность создавать собственные иконки.

Экран выполнен на жидкокристаллической матрице, которая отображает 2 строки по 16 символов. Каждый символ состоит из отдельного знакоместа 5×8 пикселей.

Контроллер дисплея

Матрица индикатора подключена к встроенному чипу КБ1013ВГ6 с драйвером расширителя портов, которые выполняют роль посредника между экраном и микроконтроллером.

Контроллер КБ1013ВГ6 аналогичен популярным чипам зарубежных производителей HD44780 и KS0066, что означает совместимость со всеми программными библиотеками.

Контакты подключения

На плате дисплея выведено 16 контактов для подведения питания и взаимодействия с управляющей электроникой.

Вывод Обозначение Описание
1 GND Общий вывод (земля)
2 VCC Напряжение питания (5 В)
3 VO Управление контрастностью
4 RS Выбор регистра
5 R/W Выбор режима записи или чтения
6 E Разрешение обращений к индикатору (а также строб данных)
7 DB0 Шина данных (8-ми битный режим)(младший бит в 8-ми битном режиме)
8 DB1 Шина данных (8-ми битный режим)
9 DB2 Шина данных (8-ми битный режим)
10 DB3 Шина данных (8-ми битный режим)
11 DB4 Шина данных (8-ми и 4-х битные режимы)(младший бит в 4-х битном режиме)
12 DB5 Шина данных (8-ми и 4-х битные режимы)
13 DB6 Шина данных (8-ми и 4-х битные режимы)
14 DB7 Шина данных (8-ми и 4-х битные режимы)
15 LED+ Питания подсветки (+)
16 LED– Питания подсветки (–)

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

Питание

Экран совместим со всеми контроллерами с логическим напряжением от 3,3 до 5 вольт. Но для питания самого индикатора (пин VCC) необходимо строго 5 вольт

Если в вашем проекте нет линии 5 вольт, обратите внимание на дисплей текстовый экран 16×2 / I²C / 3,3 В.

Интерфейс передачи данных

Дисплей может работать в двух режимах:

  • 8-битный режим — в нём используются и младшие и старшие биты (-)
  • 4-битный режим — в нём используются только младшие биты (-)

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

Несколько слов об эффективном импортозамещении

Большая часть ЖК-дисплеев МЭЛТ совместима с аналогами других компаний-производителей. При этом, как было показано выше, ЖК от МЭЛТ превосходят их по характеристикам. Это касается как знакосинтезирующих или символьных, так и графических ЖК (таблицы 4, 5).

Таблица 4. Совместимость знакосинтезирующих или символьных ЖК различных производителей

Формат Видимая
область, мм
Производитель/Наименование Производитель/наименование
МЭЛТ Winstar Powertip Tianma Bolymin Microtips Ampire Sunlike Data Vision Wintek
8×2 35,0×15,24 MT-8S2A WH0802A PC 0802-A TM82A BC0802A MTC-0802X AC082A SC0802A DV-0802 WM-C0802M
10×1 56,0×12,0 MT-10S1
10×2 60,5×18,5 PC 1002-A
12×2 46,7×17,5 WH1202A PC 1202-A TM122A BC1202A
16×1 64,5×13,8 WH1601A PC 1601-A TM161A BC1601A1 MTC-16100X AC161A SC1601A DV-16100 WM-C1601M
66,0×16,0 WH1601B PC 1601-H BC1601B SC1601B
63,5×15,8 TM161E
99,0×13,0 MT-16S1A WH1601L PC 1601-L TM161F BC1601D1 MTC-16101X AC161B SC1601D DV-16100 WM-C1601Q
120,0×23,0 AC161J DV-16120
16х2 99,0×24,0 MT-16S2R (5х8) WH1602L PC 1602-L TM162G BC1602E MTC-16201X AC162E SC1602E DV-16210 WM-C1602Q
36,0×10,0 PC 1602-K-Y4 TM162X
50,0×12,0 TM162B SC1602N
62,5×16,1 MT-16S2J WH1602D PC 1602-J TM162V BC1602B1 MTC-16202X AC162A SC1602B DV-16230 WM-C1602N
62,2×17,9 MTC-16203X DV-16235
62,2×17,9 MT-16S2D WH1602C PC 1602-H TM162J BC1602D SC1602D DV-16236
62,2×17,9 MT-16S2H WH1602A PC 1602-F TM162D BC1602H MTC-16204X SC1602C DV-16244 WM-C1602K
62,5×16,1 WH1602B PC 1602-D TM162A BC1602A MTC-16205B SC1602A DV-16252 WM-C1602M
55,73×10,98 WH1602M PC 1602-I BC1602F SC81602F DV-16257
80,0×20,4 DV-16275
80,0×20,4 DV-16276
16×4 61,4×25,0 MT-16S4A WH1604A PC 1604-A TM164A BC1604A1 MTC-16400X AC164A SC1604A DV-16400 WM-C1604M
60,0×32,6 WH1604B
20×1 154×16,5 TM201A DV-20100
149,0×23,0 MT-20S1L PC 2001-L
20×2 83,0×18,8 MT-20S2A WH2002A PC 2002-A TM202J BC2002A MTC-20200X AC202A SC2002A DV-20200 WM-C2002M
83,0×18,6 TM202A
123,0×23,0 WH2002M PC 2002-L
149,0×23,0 MT-20S2M (5×8) WH2002L PC 2002-M TM202M BC2002B MTC-20201X AC202B SC2002C DV-20210 WM-C2002P
147,0×35,2 AC202D DV-20211
83,0×18,8 DV-20220
76,0×25,2 DV-20206-1
20×4 76,0×25,2 MT-20S4A WH2004A PC 2004-A TM204A BC2004A MTC-20400X AC204A SC2004A DV-20400 WM-C2004P
60,0×22,0 PC 2004-C
77,0×26,3 PC 2004-F SC2004G
76,0×25,2 PC 2004-B SC2004C
123,0×42,5 MT-20S4M WH2004L PC 2004-M TM204K BC2004B MTC-20401X AC204B DV- 20410 WM-C2004R
24×1 178,0×23,0 MT-24S1L TM241A
24×2 94,5×18,0 MT-24S2A WH2402A PC 2402-A TM242A BC2402A MTC-24200X AC242A SC2402A DV-24200 WM-C2402P
178,0×23,0 MT-24S2L PC 2402-L
40×1 246,0×20,0 PC 4001-L
40×2 154,0×16,5 WH4002A PC 4002-C TM402A BC4002A MTC-40200X AC402A SC4002A DV-40200 WM-C4002P
153,5×16,5 TM402C
246,0×38,0 PC 4002-L
40×4 147,0×29,5 WH4004A PC 4004-A TM404A BC4004A MTC-40400X AC404A SC4004A DV-40400 WM-C4004M
140,0×29,0 PC 4004-D SC4004C
244,0×68,0 PC 4004-L

Таблица 5. Совместимость графических ЖК различных производителей

Разрешение Видимая
область, мм
Производитель/Наименование Производитель/Наименование
МЭЛТ Winstar Powertip Tianma Bolymin Microtips Ampire Sunlike Data Vision Wintek
61×16 56,0×12,0 MT-6116
62,0×19,0 MT-6116B
64×64 32,0×39,5 MT-6464B
122×32 62,0×19,0 MT-12232B WG12232A PG 12232-A TM12232A BG12232A1 MTG-12232A AG12232A SG12232A DG-12232 WM-G1203Q
62,0×19,0 MT-12232A
85,0×26,0 MT-12232D
128×64 71,7×38,5 MT-12864A WG12864A PG 12864-A TM12864L BG12864A MTG-12864A AG12864A SG12864A DG-12864 WM-G1206A
60,0×32,6 MT-12864J WG12864B PG 12864-J TM12864D BG12864E MTG-12864D AG12864E SG12864H DG-12864-15 WM-G1206M

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

Таким образом, использование изделий МЭЛТ – как раз тот случай, когда импортозамещение оказывается эффективным и выгодным.

Программирование ЖК-индикаторов МЭЛТ

Для того чтобы работать с любым ЖК-модулем, нужно реализовать базовые программные функции: сброс и инициализацию, передачу данных и команд в дисплей, чтение данных из дисплея. В документации на ЖК-модули МЭЛТ содержится вся необходимая для этого информация: последовательность и длительность сигналов при аппаратном сбросе, перечень используемых команд, описание адресного пространства, последовательность команд при программном сбросе и инициализации, детальное описание интерфейса обмена данными.

Конечно, можно написать программные драйвера самостоятельно, то есть «с нуля». Однако в подавляющем большинстве случаев более правильным и быстрым способом будет использование библиотеки примеров, доступной для бесплатного скачивания на сайте компании.

По сути, данная библиотека содержит шаблоны для создания драйверов на языке С. Это значит, что примеры не привязаны к конкретным контроллерам, а, соответственно, часть функций, таких как функции задержки, настройки портов ввода/вывода, необходимо реализовать самостоятельно. Таким образом, эти программы не будут компилироваться, но могут быть основой для создания драйверов.

На настоящий момент библиотека содержит следующие примеры программ:

AllText4.c – пример для буквенно-цифровых ЖК-индикаторов с 4-битным режимом включения;

AllText8.c – пример для буквенно-цифровых ЖК-индикаторов с 8-битным режимом включения;

MT-6116.c – пример для графического ЖК-индикатора MT-6116 с любым буквенным индексом;

MT-12232B.c – пример для графического ЖК-индикатора MT-12232B;

MT-12232A,C,D.с – пример для графических ЖК-индикаторов MT-12232A, MT-12232C, MT-12232D;

MT-12864.c – пример для графического ЖК-индикатора MT-12864 с любым буквенным индексом;

MT-6464B.c – пример для графического индикатора MT-6464B;

MT-10T7,8,9.c – пример для сегментных индикаторов MT-10T7, MT-10T8, MT-10T9;

MT-10T11,12.c – пример для сегментных индикаторов MT-10T11, MT-10T12.

Все примеры содержат базовые функции: инициализации, записи/чтения байта по параллельному интерфейсу, записи команды. Например, AllText8.c является универсальным шаблоном для дисплеев MT10S1, MT16S1, MT20S1, MT24S1, MT16S2, MT20S2, MT24S2, MT20S4, и содержит четыре С-функции: void LCDinit(void); void WriteCmd(byte b); void WriteData(byte b), void WriteByte(byte b, bit cd).

Рассмотрим более подробно функцию инициализации void LCDinit(void) как пример реализации функции инициализации буквенно-цифровых ЖК индикаторов с 8-битным режимом включения:

void LCDinit(void)
{
LCD.E=0; Delay(>20ms); //при необходимости настроить шину данных на вывод
LCD.RW=0; LCD.A0=0; LCD.D=0x30; //установка типа интерфейса (8 бит)
Delay(>40ns); //это время предустановки адреса (tAS)
LCD.E=1; Delay(>230ns); //время предустановки данных попало сюда (tDSW)
LCD.E=0; Delay(>40us); //пауза между командами
LCD.E=1; Delay(>230ns); //минимально допустимая длительность сигнала E=1
LCD.E=0; Delay(>40us); //пауза между командами
LCD.E=1; Delay(>230ns);
LCD.E=0; Delay(>270ns); //минимально допустимый интервал между сигналами E=1 //здесь индикатор входит в рабочий режим с установленным типом интерфейса и можно подавать команды как обычно
WriteCmd(0x3A); //настройка правильного режима ЖКИ
WriteCmd(0x0C); //включение индикатора, курсор выключен
WriteCmd(0x01); //очистка индикатора
WriteCmd(0x06); //установка режима ввода данных: сдвигать курсор вправо
}

Анализ позволяет сделать несколько замечаний. Во-первых, в функции уже содержится требуемая последовательность сигналов для аппаратной настройки дисплея (LCD.E, LCD.RW, LCD.A0, LCD.D). Во-вторых, LCDinit использует необходимые временные интервалы и задержки (функция Delay). В-третьих, LCDinit также содержит последовательность команд программной инициализации (функция WriteCmd). Таким образом, пользователю не придется скрупулезно вычитывать документацию на ЖК-модуль в поисках всей необходимой информации.

Вместе с тем стоит заметить, что файл AllText8.c не содержит реализацию функции задержек и функций инициализации и работы с портами ввода/вывода. Пользователь должен создать их самостоятельно для конкретного используемого микроконтроллера.

Все полученные выводы остаются справедливыми и для остальных функций из AllText8.c.

Другие примеры из библиотеки МЭЛТ построены по тому же принципу: все базовые функции реализованы, пользователю остается только «привязать» их к своему контроллеру.

Качество разводки – залог качества ЖК-дисплеев

Очевидно, что одной ЖК-панели мало для создания дисплея. Необходим контроллер, система питания, печатная плата

Кроме того, важно обеспечить качественный монтаж элементов на плату

МЭЛТ имеет опытную команду инженеров, которая способна самостоятельно разработать схемотехнику и печатную плату дисплея. При этом для большинства модулей применяются ЖК-контроллеры отечественной компании ОАО «АНГСТРЕМ».

Собственное сверхсовременное монтажное производство – гордость компании. В настоящее время МЭЛТ имеет оборудование для выполнения высокопроизводительного монтажа по технологиям SMT и COB.

Технология COB (Chip On Board) предполагает монтаж бескорпусных кристаллов микросхем напрямую на плату. COB имеет преимущества перед использованием стандартных корпусных микросхем.

Во-первых, снижается стоимость, так как половина цены стандартной микросхемы приходится на корпус

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

а) пример ручной установки бескорпусныхмикросхем

б) разварка выводов бескорпусных микросхем

в) заливка компаундом установленныхбескорпусных микросхем

Рис. 1. Этапы монтажа кристаллов ЖК-контроллеров по технологии COB

Как было сказано выше, COB используется для быстродействующих компонентов. Именно по этой технологии происходит монтаж ЖК-контроллеров в ЖК-дисплеях компании МЭЛТ (рисунок 1). Оборудование МЭЛТ позволяет собственными силами выполнять полный цикл монтажа: установку и позиционирование (рисунок 1а), разварку выводов (рисунок 1б), контроль качества монтажа, герметизация кристалла компаундом (рисунок 1в).

Оборудование для COB компании МЭЛТ имеет следующие характеристики:

  • количество развариваемых пинов: до 10000;
  • ширина проводника: от 90 мкм;
  • зазор между проводниками: от 90 мкм.

Кроме перечисленных выше специализированных технологий, МЭЛТ обладает оборудованием ведущих японских и европейских производителей (YAMAHA, Assembleon, Ersa, Dek и других) для традиционного SMT-монтажа и монтажа выводных компонентов. Гибкость сборки мелких и крупных серий печатных плат достигается за счет наличия двух линий поверхностного монтажа и линии сквозного монтажа.

Первая линия поверхностного монтажа предназначена для сборки крупных серий печатных узлов в автоматическом режиме. Ее максимальная производительность составляет до 20000 компонентов в час. Линия включает следующее оборудование:

  • автоматический загрузчик печатных плат Nutek NTM 710 EL;
  • автоматический принтер паяльной пасты DEK ELA;
  • мультифункциональный станок для расстановки компонентов YAMAHA YS12F;
  • конвекционную печь ERSA HotFLow 5;
  • автоматический разгрузчик печатных плат Nutec NTM 710 EM 2;

Вторая линия поверхностного монтажа предназначена для сборки мелких и средних серий печатных узлов. Именно эта линия позволяет производить монтаж бессвинцовых компонентов. Производительность линии также составляет до 20000 компонентов в час. Она включает в себя следующее оборудование:

  • полуавтоматический принтер паяльной пасты DEK 248;
  • мультифункциональный станок для расстановки компонентов YAMAHA YS12F;
  • конвекционную печь BTU Pyramax 98A;
  • автоматический разгрузчик печатных плат Nutec NTM 710 EM 2.

Линия сквозного монтажа включает в себя:

  • установку пайки динамической волной припоя KIRSTEN-K5360P;
  • установку струйной отмывки печатных плат TRIMAX.

После монтажа блоки проходят контроль качества с помощью оптической 3D-устаовки TRION-2000.

Для испытаний узлов при разной температуре и влажности используется климатическая камера тепла/холода/влажности ESPEC SH-661.

Таким образом, компания МЭЛТ способна не только разрабатывать, но и производить ЖК-дисплеи собственными силами с поддержанием высочайшего качества изготовления.

Обзор продукции МЭЛТ начнем с серийных моделей.

Знакогенерирующие ЖК-дисплеи МЭЛТ

Номенклатура цифробуквенных ЖК-дисплеев МЭЛТ насчитывает 19 серий, включающих более 500 моделей (таблица 2).

Таблица 2. Серии цифробуквенных ЖК-дисплеев МЭЛТ

Наименование Контроллер Разреше-ние Габариты, мм Видимая
область, мм
Символ, мм Подсветка Тип стекла Uпит, В Траб, °C
MT-08S2A КБ1013ВГ6 08х2 58x32x12,9 3×16 3,55х5,56 Янтарная, синяя, желто-зеленая, белая FSTN Positive, FSTN Negative, STN Negative Blue, STN Positive 3; 5 -20…70; -30…70
MT-10S1 КБ1013ВГ6 10х1 66x31x9,2 56×12 4,34×8,35 Желто-зеленая STN Positive 5 0…50, -20…70, -30…70
MT-16S1A КБ1013ВГ6 16х1 122x33x9,3 99×13 4,86×9,56 Янтарная, синяя, желто-зеленая, белая FSTN Positive, FSTN Negative, STN Negative Blue, STN Positive 3; 5 -20…70; -30…70
MT-16S1B КБ1013ВГ6 16х1 122x33x13,1 99×13 4,86×9,56 Янтарная, желто-зеленая, нет FSTN Positive, FSTN Negative, STN Positive
MT-16S2D КБ1013ВГ6 16х2 85x36x13 62×19 2,95×5,55 Янтарная, синяя, желто-зеленая, белая, нет FSTN Positive, FSTN Negative, STN Negative Blue, STN Positive
MT-16S2H КБ1013ВГ6 16х2 84x44x13,0 62×19 2,95×5,55 Янтарная, синяя, желто-зеленая, белая, красная, нет
MT-16S2J КБ1013ВГ6 16х2 85x30x13,5 62×19 2,95×5,55 Янтарная, синяя, желто-зеленая, белая, нет
MT-16S2R КБ1013ВГ6 16х2 122x44x13 105,2×24 4,86×9,56 Янтарная, синяя, желто-зеленая FSTN Positive, FSTN Negative, STN Positive
MT-16S2S ST7070 16х2 84x44x13,0 62×19 2,95×5,55 Янтарная, синяя, желто-зеленая, белая FSTN Positive, STN Positive
MT-16S4A КБ1013ВГ6 16х4 87x60x13,1 62×26 2,95×4,75 FSTN Positive, FSTN Negative, STN Negative Blue, STN Positive
MT-20S1L-2FLA КБ1013ВГ6 20х1 180x40x9,3 149×23 6,00×14,54 Янтарная, синяя, желто-зеленая, белая, нет
MT-20S2A-2FLA КБ1013ВГ6 20х2 116x37x13 82×19 3,20×5,55 Янтарная, синяя, желто-зеленая, красная, нет FSTN Positive, STN Positive
MT-20S2M КБ1013ВГ6 20х2 180x40x9,3 149×23 6,00×9,63 Янтарная, синяя, желто-зеленая, белая, красная, нет FSTN Positive, FSTN Negative, STN Negative Blue, STN Positive 3; 5 -20…70; -30…70
MT-20S4A КБ1013ВГ6 20х4 98x60x13 76×26 2,95×4,75 Янтарная, синяя, желто-зеленая, белая, нет
MT-20S4M КБ1013ВГ6 20х4 146×62,5×13 122,5×43 4,84×9,22 Янтарная, синяя, желто-зеленая, белая, красная
MT-20S4S ST7070 20х4 98x60x13 76×26 2,95×4,75 Янтарная, синяя, желто-зеленая, белая FSTN Positive, STN Positive 5 -20…70
MT-24S1L КБ1013ВГ6 24х1 208x40x14,3 178×23 6,00×14,75 FSTN Positive, FSTN Negative, STN Negative Blue, STN Positive 3; 5 -20…70; -30…70
MT-24S2A КБ1013ВГ6 24х2 118x36x13,5 92,5×14,8 3,15×5,72 Янтарная, синяя, желто-зеленая, белая, нет FSTN Positive, FSTN Negative, STN Positive
MT-24S2L-2FLA КБ1013ВГ6 24х2 208x40x14,3 178×23 6,00×9,63 Янтарная, синяя, желто-зеленая, белая FSTN Positive, FSTN Negative, STN Negative Blue, STN Positive

При таком многообразии легко выбрать дисплей с требуемыми характеристиками:

  • с применением различных технологий, например, STN Positive/Negative, FSTN Positive/Negative (рисунок 2);
  • с различными форматами символов и строк – 08х2, 10х1, 16х1, 16х2, 16х4, 20х1, 20х2, 20х4, 24х1, 24х2;
  • с различным цветом подсветки – янтарным, желто-зеленым, красным, голубым, белым;
  • с различным напряжением питания: 3 или 5 В;
  • с разными рабочими температурными диапазонами, в том числе и -30…70°C;
  • с последовательным (контроллер ST7070) или параллельным (контроллер КБ1013ВГ6) коммуникационным интерфейсом.

а) MT-24S2A FTSN Positive

б) MT-24S2A FTSN Negative

в) MT-24S2A STN Positive

г) MT-24S2L STN Negative Blue

Рис. 2. Примеры знакосинтезирующих ЖК-индикаторов МЭЛТ 24 х 2

Стоит особо отметить, что большая часть дисплеев построена на базе отечественного контроллера КБ1013ВГ6 производства ОАО «АНГСТРЕМ». По функционалу он аналогичен контроллерам HD44780 компании Hitachi и KS0066 производства Samsung.

Отличительными чертами КБ1013ВГ6 являются:

  • широкий диапазон питающих напряжений: 2,7…5,5 В;
  • диапазон питания ЖКИ: 3,0…13 В;
  • высокоскоростной интерфейс связи: до 2 МГц (при Uпит = 5 В);
  • 80 байт ОЗУ отображаемых данных (80 символов);
  • 19840 бит ПЗУ знакогенератора с возможностью программирования двух пользовательских страниц символов;
  • 64 байта ОЗУ знакогенератора.

Примеры работы для Espruino

В качестве примера подключим дисплей к управляющей плате Iskra JS.

Для коммуникации понадобится Breadboard Half и соединительные провода «папа-папа».

Вывод текста

Для вывода программы приветствия, воспользуйтесь скриптом:

hello-amperka.js
// Задаём имя пинов дисплея
var PIN_RS = P6;
var PIN_EN = P7;
var PIN_DB4 = P8;
var PIN_DB5 = P9;
var PIN_DB6 = P10;
var PIN_DB7 = P11;
 
// Создаём объект для работы с текстовым дисплеем
// HD44780 — контроллер монохромных жидкокристаллических знакосинтезирующих дисплеев
var lcd = require("HD44780").connect(PIN_RS, PIN_EN, PIN_DB4, PIN_DB5, PIN_DB6, PIN_DB7);
 
// Устанавливаем курсор в колонку 0 и строку 0
lcd.setCursor(, );
// Печатаем первую строку
lcd.print("Hello, world!");
// Устанавливаем курсор в колонку 0 и строку 1
lcd.setCursor(, 1);
// Печатаем вторую строку
lcd.print("Do It Yourself");

Кирилица

Вывод кирилицы на дисплей с помощью платформы Iskra JS доступен через встроенную в дисплей таблицу знакогенератора.

Таблица знакогенератора

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

Для вывода символа на дисплей необходимо передать его номер в шестнадцатеричной системе из таблицы знакогенератора.

Так букве соответствует код в шестнадцатеричной системе. Чтобы передать на экран строку «Яndex», необходимо в явном виде с помощью последовательности встроить в строку код символа:

lcd.print("\xB1ndex");

Вы можете смешивать в одной строке обычные символы и явные коды как угодно. Единственный нюанс в том, что после того, как компилятор в строке видит последовательность , он считывает за ним все символы, которые могут являться разрядами шестнадцатеричной системы даже если их больше двух. Из-за этого нельзя использовать символы из диапазона и следом за двузначным кодом символа, иначе на дисплее отобразится неправильная информация. Чтобы обойти этот момент, можно использовать тот факт, что две строки записанные рядом склеиваются.

Сравните две строки кода для вывода надписи «Яeee»:

lcd.print("\xB1eee"); // ошибка
lcd.print("\xB1"+"eee"); // правильно

Используя полученную информацию выведем на дисплей сообщение «Привет, Амперка!»:

hello-amperka-rus.js
// Задаём имя пинов дисплея
var PIN_RS = P6;
var PIN_EN = P7;
var PIN_DB4 = P8;
var PIN_DB5 = P9;
var PIN_DB6 = P10;
var PIN_DB7 = P11;
 
// Создаём объект для работы с текстовым дисплеем
// HD44780 — контроллер монохромных жидкокристаллических знакосинтезирующих дисплеев
var lcd = require("HD44780").connect(PIN_RS, PIN_EN, PIN_DB4, PIN_DB5, PIN_DB6, PIN_DB7);
 
// Устанавливаем курсор в колонку 5 и строку 0
lcd.setCursor(5, );
// Печатаем первую строку
lcd.print("\xA8"+"p"+"\xB8\xB3"+"e\xBF");
// Устанавливаем курсор в колонку 3 и строку 1
lcd.setCursor(3, 1);
// Печатаем вторую строку
lcd.print("o\xBF"+" A\xBC\xBE"+"ep\xBA\xB8");

Переключение страниц знакогенератора

Дисплейный модуль хранит в памяти две страницы знакогенератора. По умолчанию установлена нулевая страница. Для переключения между страницами используйте методы:

// переключение с нулевой страницы на первую
command(0x101010);
// переключение с первой страницы на нулевую
command(0x101000);

Дисплей не может одновременно отображать символы разных страниц.

Рассмотрим пример, в котором одна и та же строка будет отображаться по-разному — в зависимости от выбранной страницы.

change-page.js
// Задаём имя пинов дисплея
var PIN_RS = P6;
var PIN_EN = P7;
var PIN_DB4 = P8;
var PIN_DB5 = P9;
var PIN_DB6 = P10;
var PIN_DB7 = P11;
 
// Создаём объект для работы с текстовым дисплеем
// HD44780 — контроллер монохромных жидкокристаллических знакосинтезирующих дисплеев
var lcd = require("HD44780").connect(PIN_RS, PIN_EN, PIN_DB4, PIN_DB5, PIN_DB6, PIN_DB7);
 
// Создаём переменную состояния
var state = false;
// Устанавливаем курсор в колонку 5 и строку 0
lcd.setCursor(5, );
// Печатаем первую строку
lcd.print("\x9b\x9c\x9d\x9e\x9f");
 
setInterval(function() {
  // Каждую секунду меняем переменную состояния
  state = !state;
  // Вызываем функцию смены адреса страницы
  lcdChangePage();
}, 1000);
 
function lcdChangePage () {
  if (state) {
    // Устанавливаем нулевую станицу знакогенератора (стоит по умолчанию) 
    lcd.write(0b101000, 1);
  } else {
    // устанавливаем первую станицу знакогенератора
    lcd.write(0b101010, 1);
  }
}


Полную таблицу символов с кодами можно найти в документации к экрану.

Гость форума
От: admin

Эта тема закрыта для публикации ответов.