Raspberry Pi - это плата на базе процессора с архитектурой ARM, разработанная для инженеров-электронщиков и любителей. PI сейчас является одной из самых надежных платформ для разработки проектов. Благодаря более высокой скорости процессора и 1 ГБ оперативной памяти PI может использоваться для многих важных проектов, таких как обработка изображений и Интернет вещей.
Для выполнения любого из громких проектов необходимо понимать основные функции PI. В этих уроках мы рассмотрим все основные функции Raspberry Pi. В каждом туториале мы обсудим одну из функций PI. К концу этой серии руководств по Raspberry Pi вы сможете самостоятельно выполнять громкие проекты. Пройдите следующие руководства:
- Начало работы с Raspberry Pi
- Конфигурация Raspberry Pi
- Светодиод мигает
- Кнопка Интерфейс
- Генерация ШИМ
- Управление двигателем постоянного тока
- Управление шаговым двигателем
- Интерфейсный регистр сдвига
- Учебник Raspberry Pi ADC
- Управление серводвигателем
- Емкостная сенсорная панель
В этом уроке мы будем управлять ЖК-дисплеем 16x2 с помощью Raspberry Pi. Мы подключим ЖК-дисплей к контактам GPIO (вход-выход общего назначения) PI для отображения на нем символов. Мы напишем программу на PYTHON, чтобы отправлять соответствующие команды на ЖК-дисплей через GPIO и отображать нужные символы на его экране. Этот экран пригодится для отображения значений датчиков, состояния прерывания, а также для отображения времени.
На рынке представлены различные типы ЖК-дисплеев. Графический ЖК-дисплей сложнее ЖК-дисплея 16x2. Итак, мы собираемся использовать ЖК-дисплей 16x2, вы даже можете использовать ЖК-дисплей 16x1, если хотите. ЖК-дисплей 16x2 имеет всего 32 символа, 16 в 1- й строке и еще 16 во 2- й строке. JHD162 - это ЖК-дисплей размером 16x2 символов. Мы уже подключили ЖК-дисплей 16x2 к 8051, AVR, Arduino и т. Д. Вы можете найти все наши проекты, связанные с ЖК-дисплеем 16x2, перейдя по этой ссылке.
Прежде чем продолжить, мы немного обсудим PI GPIO.
В Raspberry Pi 2 имеется 40 выходных контактов GPIO. Но из 40 можно запрограммировать только 26 контактов GPIO (от GPIO2 до GPIO27). Некоторые из этих контактов выполняют некоторые специальные функции. Если оставить в стороне специальный GPIO, у нас осталось 17 GPIO.
На плате имеются выводы питания + 5В (контакты 2 или 4) и + 3,3 В (контакты 1 или 17), они предназначены для подключения других модулей и датчиков. Мы собираемся запитать ЖК-дисплей 16 * 2 через шину +5 В. На ЖК-дисплей можно подать управляющий сигнал + 3,3 В, но для работы ЖК-дисплея необходимо запитать его от + 5 В. ЖК-дисплей не будет работать с напряжением + 3,3 В.
Чтобы узнать больше о выводах GPIO и их текущих выходах, пройдите: Мигание светодиода с Raspberry Pi
Необходимые компоненты:
Здесь мы используем Raspberry Pi 2 Model B с Raspbian Jessie OS. Все основные требования к оборудованию и программному обеспечению обсуждаются ранее, вы можете найти их во введении Raspberry Pi, кроме того, что нам нужно:
- Соединительные штифты
- 16 * 2 ЖК-модуль
- Резистор 1КОм (2 шт.)
- Горшок 10K
- Конденсатор 1000 мкФ
- Макетная плата
Схема и рабочее объяснение:
Как показано на принципиальной схеме, у нас есть интерфейс Raspberry Pi с ЖК-дисплеем, подключив 10 контактов GPIO PI к контактам управления и передачи данных ЖК-дисплея 16 * 2. Мы использовали контакты GPIO 21, 20, 16, 12, 25, 24, 23 и 18 как БАЙТ и создали функцию «ПОРТ» для отправки данных на ЖК-дисплей. Здесь GPIO 21 - это LSB (наименьший значащий бит), а GPIO18 - это MSB (самый старший бит).
ЖК-модуль 16x2 имеет 16 контактов, которые можно разделить на пять категорий: выводы питания, выводы контраста, выводы управления, выводы данных и выводы подсветки. Вот их краткое описание:
Категория |
№ контакта. |
Имя контакта |
Функция |
Контакты питания |
1 |
VSS |
Контакт заземления, подключенный к заземлению |
2 |
VDD или Vcc |
Вывод напряжения + 5В |
|
Контрастный значок |
3 |
V0 или VEE |
Настройка контрастности, подключенная к Vcc через переменный резистор. |
Пины управления |
4 |
RS |
Пин выбора регистра, RS = 0 Командный режим, RS = 1 Режим данных |
5 |
RW |
Вывод чтения / записи, RW = 0 Режим записи, RW = 1 Режим чтения |
|
6 |
E |
Включить, импульс от высокого к низкому, чтобы включить ЖК-дисплей |
|
Выводы данных |
7-14 |
D0-D7 |
Выводы данных, хранит данные для отображения на ЖК-дисплее или командные инструкции. |
Контакты подсветки |
15 |
LED + или A |
Для питания подсветки + 5В |
16 |
LED- или K |
Подсветка Земля |
Мы настоятельно рекомендуем просто прочитать эту статью, чтобы понять, как ЖК-дисплей работает с его выводами и шестнадцатеричными командами.
Кратко обсудим процесс отправки данных на LCD:
1. Для E установлено высокое значение (включение модуля), а для RS установлено низкое значение (ЖК-дисплей сообщает, что мы подаем команду)
2. Передача значения 0x01 в порт данных в качестве команды для очистки экрана.
3. Для E установлено высокое значение (включение модуля), а для RS установлено высокое значение (для ЖК-дисплея, что мы передаем данные).
4. Доказательство необходимости отображения кода ASCII для символов.
5. Для E установлен низкий уровень (ЖК-дисплей сообщает, что отправка данных завершена).
6. Как только этот вывод E становится низким, ЖК-дисплей обрабатывает полученные данные и показывает соответствующий результат. Таким образом, этот вывод устанавливается на высокий уровень перед отправкой данных и опускается на землю после отправки данных.
Как уже было сказано, мы отправим персонажей одного за другим. Эти символы приведены на ЖК - дисплее с помощью ASCII кодов (Американский стандартный код для обмена информацией). Таблица кодов ASCII показана ниже. Например, чтобы отобразить символ «@», нам нужно отправить шестнадцатеричный код «40». Если мы дадим ЖК-дисплею значение 0x73, он будет отображать «s». Таким образом, мы собираемся отправить соответствующие коды на ЖК-дисплей для отображения строки « CIRCUITDIGEST ».
Объяснение программирования:
Как только все будет подключено в соответствии с принципиальной схемой, мы можем включить PI, чтобы написать программу в PYHTON.
Мы поговорим о нескольких командах, которые мы собираемся использовать в программе PYHTON, Мы собираемся импортировать файл GPIO из библиотеки, функция ниже позволяет нам программировать контакты GPIO PI. Мы также переименовали «GPIO» в «IO», поэтому в программе всякий раз, когда мы хотим обратиться к контактам GPIO, мы будем использовать слово «IO».
импортировать RPi.GPIO как IO
Иногда, когда контакты GPIO, которые мы пытаемся использовать, могут выполнять другие функции. В этом случае мы будем получать предупреждения при выполнении программы. Команда ниже указывает PI игнорировать предупреждения и продолжить выполнение программы.
IO.setwarnings (Ложь)
Мы можем ссылаться на контакты GPIO PI, либо по номеру контакта на плате, либо по номеру их функции. Как и «PIN 29» на плате, это «GPIO5». Итак, мы говорим здесь, что будем обозначать булавку цифрой 29 или 5.
IO.setmode (IO.BCM)
Мы устанавливаем 10 контактов GPIO в качестве выходных контактов для контактов данных и управления ЖК-дисплея.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
в то время как 1: команда используется как бесконечный цикл, с этой командой операторы внутри этого цикла будут выполняться непрерывно.
Все остальные функции и команды были объяснены в разделе «Код» ниже с помощью «Комментарии».
После написания программы и ее выполнения Raspberry Pi отправляет символы на ЖК-дисплей один за другим, а ЖК-дисплей отображает символы на экране.