Экспонат:первичный дисплей
Экспонат:основной дисплей Этот очень простой способ соединяет ЖК-дисплей с Raspberry Pi для отображения любых необходимых данных, например, показаний датчика температуры.
История
Введение
ЖК-дисплей - очень полезное дополнение к любому проекту. Этот очень простой способ соединяет ЖК-дисплей с Raspberry Pi для отображения любых необходимых вам данных. В нашем случае мы будем отображать показания датчика температуры.
Аппаратное обеспечение
Нам нужен недорогой ЖК-дисплей, совместимый с HDD44780, Raspberry Pi 3, датчик температуры и влажности DHT11, карта micro SD и источник питания, 1-2 потенциометра, макетная плата и некоторые провода. ЖК-дисплей, макет, провода, потенциометры и датчик можно найти в этом комплекте. Мы собираемся подключить ЖК-дисплей с помощью 6 контактов GPIO. Хотя существует способ подключения с использованием I2C, это наиболее прямой метод, имеющий важные преимущества:
- Позволяет использовать недорогие ЖК-дисплеи будет использоваться
- Не требует никаких драйверов I2C .
- Не украдет единственный последовательный порт . на Пи.
Подключение вещей
У нас будет несколько вариантов подключения ЖК-экрана:простое 4-битное соединение с одним потенциометром для управления контрастностью и яркостью и немного более сложное 8-битное соединение с расширенным контролем контрастности и яркости с помощью 2 потенциометров. Потенциометры также можно заменить резисторами 1 кОм или 3 кОм.
Каждый символ и команда отправляются на ЖК-дисплей в виде байта (8 бит) данных. Таким образом, в 4-битном режиме байт разделяется на два набора по 4 бита, которые отправляются один за другим по 4 проводам данных. Теоретически в 8-битном режиме данные передаются в два раза быстрее, чем в 4-битном, поскольку весь байт передается сразу по 8 проводам данных. Однако драйверу ЖК-дисплея требуется относительно много времени для обработки данных, поэтому независимо от того, какой режим используется, вы не заметите реальной разницы в скорости передачи данных между 8-битным и 4-битным режимами.
Расположение выводов ЖК-дисплея
выводы данных (DB0-7 контакты 7-14) просты. Они отправляют данные на дисплей (переключаются вверх / вниз). Мы будем использовать только режим записи и не будем читать никаких данных.
регистр selectpin (Вывод RS 4) имеет два использования. В нижнем положении он может посылать команды на ЖК-дисплей (например, положение, в которое нужно переместиться, или очистить экран). Это называется записью в регистр инструкций или команд или отправкой данных на экран.
Пин для чтения / записи (R / W контакт 5) будет понижен (только запись), так как в этой подсказке мы пишем только на ЖК-дисплей.
enablepin (Контакт E 6) будет переключен для записи данных в регистры.
Простое подключение к ЖК-дисплею
- Контакт №1 ЖК-дисплея заземлен (черный провод).
- Контакт № 2 ЖК-дисплея подключается к + 5 В (красный провод).
- Контакт № 3 (Vo) подключается к середине потенциометра (оранжевый провод).
- Контакт № 4 (RS) подключается к Cobbler № 37 (желтый провод).
- Контакт 5 (RW) идет на массу (черный провод)
- Контакт № 6 (EN) подключается к Cobbler № 35 (оранжевый провод).
- Пропустить выводы 7, 8, 9 и 10 ЖК-дисплея.
- Контакт № 11 (D4) подключается к сапожнику № 33 (белый провод).
- Контакт № 12 (D5) подключается к Cobbler № 31 (серый провод).
- Контакт № 13 (D6) подключается к Cobber № 29 (фиолетовый провод).
- Контакт № 14 (D7) подключается к Cobber № 23 (синий провод).
- Контакт 15 (светодиод +) подключается к + 5 В (красный провод).
- Контакт №16 (светодиод -) идет на массу (черный провод)
Схема подключения простого ЖК-дисплея
Дополнительно Подключение к ЖК-дисплею
- Контакт №1 ЖК-дисплея заземлен (черный провод).
- Контакт № 2 ЖК-дисплея подключается к + 5 В (красный провод).
- Контакт № 3 (Vo) подключается к середине потенциометра (оранжевый провод).
- Контакт № 4 (RS) подключается к Cobbler № 37 (желтый провод).
- Контакт 5 (RW) идет на массу (черный провод)
- Контакт № 6 (EN) подключается к Cobbler № 35 (оранжевый провод).
- Контакт № 7 (D0) подключается к сапожнику № 40 (синий провод).
- Контакт №8 (D1) подключается к сапожнику №38 (синий провод).
- Контакт № 9 (D2) подключается к сапожнику № 36 (синий провод).
- Контакт № 10 (D3) подключается к сапожнику № 32 (синий провод).
- Контакт № 11 (D4) подключается к сапожнику № 33 (белый провод).
- Контакт № 12 (D5) подключается к Cobbler № 31 (серый провод).
- Контакт № 13 (D6) подключается к Cobber № 29 (фиолетовый провод).
- Контакт № 14 (D7) подключается к Cobber № 23 (синий провод).
- Контакт 15 (светодиод +) подключается к + 5 В (красный провод).
- Контакт №16 (светодиод -) идет на массу (черный провод)
Схема подключения расширенного ЖК-дисплея
ИНТЕРЕСНО:
Теперь у нас есть 2 потенциометра:левый отвечает за контраст, а правый за яркость. Вы могли заметить, что мы удалили провод 5 В (красный) с потенциометра контрастности, поскольку нет необходимости в дополнительной обработке напряжения, потому что у нас есть второй потенциометр, отвечающий за яркость.
Подключение датчика DHT11
Датчики DHT11 могут иметь варианты с 3 или 4 контактами, однако это не имеет значения, поскольку в любом случае он использует только 3 контакта для чтения данных, если у вас есть датчик с 4 контактами, вам нужно подключить только Vcc, сигнал / Data и Ground и игнорируем 4-й. На схемах выше вы можете увидеть 4-контактное соединение датчика.
Датчик DHT11:варианты с 3 и 4 контактами
ВАЖНО:
Датчик DHT11 требует от 3,3 В до 5 В. Во-первых, давайте подключим датчик DHT11 к контакту 1 Raspberry Pi 3,3 В, если он работает, этого напряжения достаточно, если показания странные или их нет вообще, попробуйте подключить его к контакту 2 Raspberry Pi 5 В. Этот наконечник использует 3,3 В.
Пока все хорошо, после того, как мы подключили контакты Vcc и заземления, нам нужно подключить сигнальный разъем датчика к физическому контакту 12 Raspberry Pi (GPIO 18).
Необходимые библиотеки
Прежде чем перейти к точному кодированию, нам нужно дважды проверить, есть ли у нас необходимые библиотеки для отображения и датчика, и установить их, если они отсутствуют.
Чтобы дважды проверить (немного паранойи :)), у нас есть все необходимое для Python:
sudo apt-get install build-essential python-dev
Библиотека Python RPLCD
Библиотеку RPLCD можно установить из индекса пакета Python или PIP. Возможно, он уже установлен на вашем Raspbian, но если нет, запустите эту команду, чтобы установить его:
sudo apt-get install python-pip
После установки PIP установите библиотеку RPLCD, введя:
sudo pip установить RPLCD
Библиотека Python Adafruit DHT11
Мы используем библиотеку Python Adafruit DHT11. Вы можете загрузить библиотеку с помощью Git, поэтому, если на вашем Raspberry Pi не установлен Git, выполните следующую команду:
sudo apt-get install git
В качестве альтернативы вы можете попробовать:
sudo apt-get install git-core
ВАЖНО:
Если вы получаете сообщение об ошибке при альтернативной установке Git, запустите:
sudo apt-get update
sudo apt-get install git-core
Теперь запустите команду для загрузки библиотеки из Git:
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
Перейти в новый каталог с помощью:
компакт-диск Adafruit_Python_DHT
И установите библиотеку с помощью:
sudo python setup.py установить
Перейдем к написанию скриптов.
Скрипт Python
Мы собираемся использовать Python для программирования дисплея и датчика. Я использую Visual Studio в качестве IDE, но вы можете использовать все, с чем предпочитаете работать.
Во-первых, нам нужно подключиться к Pi через SSH (например, с помощью PuTTY). Затем воспользуемся скриптом temperature.py.
Чтобы создать сценарий, мы можем использовать редактор nano. После подключения к Pi выполните следующую команду, чтобы создать файл с именем temperature.py:
sudo nano temperature.py
Затем вставьте следующий код (8-битный вариант) в этот файл и нажмите CTRL-X для выхода и Y для сохранения при появлении запроса.
#! / usr / bin / python
import RPi.GPIO as GPIO
import time
import Adafruit_DHT
from RPLCD import CharLCD
# Мы вызываем встроенный RPi.GPIO -в функции GPIO.cleanup () для очистки всех портов, которые мы использовали
GPIO.cleanup ()
# Теперь настройте контакты ЖК-дисплея (8-битный режим)
lcd =CharLCD (numbering_mode =GPIO.BOARD, cols =16, rows =2, pin_rs =37, pin_e =35, pins_data =[40, 38, 36, 32, 33, 31, 29, 23])
# Получить senosr показания и отображать их в цикле
while True:
# Получить показания датчика
# ВАЖНО:11 - это тип датчика (DHT11), а 18 - номер GPIO (или физический контакт 12)
влажность, температура =Adafruit_DHT.read_retry (11, 18)
print ('Температура:{0:0,1f} C Влажность:{1:0,1f}%'. формат (температура, влажность))
# Очистить и установить начальное положение курсора для ЖК-дисплея
lcd.clear ()
lcd.cursor_pos =(0, 0)
# Отображение показаний температуры
lcd.write_string (« Temp:% d C ”% temperature)
# Переместите курсор во вторую строку
lcd.cursor_pos =(1, 0)
# Отображение показаний влажности
lcd.write_string («Humidity:% d %%»% влажности)
# Приостановить выполнение на 5 секунд
time.sleep (5)
В приведенном выше примере используется 8-битный вариант подключения с физическими номерами контактов Raspberry Pi для ЖК-дисплея, а не номерами BCM или GPIO. Я предполагаю, что ваш ЖК-дисплей подключен так, как показано на схемах выше, но вы всегда можете поменять контакты, если вам нужно. Простой 4-битный код подключения прилагается в разделе «Код».
Подробнее:Экспонат:первичный дисплей
Производственный процесс
- Скалка
- Боулинг
- Жидкокристаллический дисплей (ЖКД)
- Разработка драйверов устройств Linux:подсистема управления контактами
- Дрон Пи
- Уклоняйся от защиты!
- 5 Вт портативного дисплея Брайля
- 74LS74:полное руководство по двойному триггеру
- Atlas Copco примет участие в выставке WIN Expo 2017
- Atlas Copco примет участие в выставке NPE2018:The Plastics Show