- Семисегментный дисплей:
- Необходимые компоненты:
- Схема и рабочее объяснение:
- Объяснение программирования:
Raspberry Pi - это плата на базе процессора с архитектурой ARM, разработанная для инженеров-электронщиков и любителей. PI сейчас является одной из самых надежных платформ для разработки проектов. Благодаря более высокой скорости процессора и 1 ГБ оперативной памяти PI может использоваться для многих важных проектов, таких как обработка изображений и Интернет вещей.
Для выполнения любого из громких проектов необходимо понимать основные функции PI. В этих уроках мы рассмотрим все основные функции Raspberry Pi. В каждом туториале мы обсудим одну из функций PI. К концу этой серии руководств по Raspberry Pi вы сможете изучить Raspberry Pi и самостоятельно создавать хорошие проекты. Пройдите следующие руководства:
- Начало работы с Raspberry Pi
- Конфигурация Raspberry Pi
- Светодиод мигает
- Кнопка Интерфейс
- Поколение Raspberry Pi PWM
- ЖК-интерфейс с Raspberry Pi
- Управление двигателем постоянного тока
- Управление шаговым двигателем
- Интерфейсный регистр сдвига
- Учебник Raspberry Pi ADC
- Управление серводвигателем
- Емкостная сенсорная панель
В этом уроке мы собираемся выполнить интерфейс сегментного дисплея Raspberry Pi 7. Семисегментные дисплеи являются самыми дешевыми для дисплея. Пару таких сегментов, сложенных вместе, можно использовать для отображения температуры, значения счетчика и т. Д. Мы подключим 7-сегментный дисплей к GPIO PI и будем управлять ими для отображения цифр соответственно. После этого мы напишем программу в PYTHON для семисегментного дисплея, который будет отсчитывать от 0 до 9 и сбрасывать себя до нуля.
Семисегментный дисплей:
Существуют 7-сегментные дисплеи разных типов и размеров. Мы подробно рассмотрели работу семи сегментов здесь. В основном существует два типа: 7 сегментов, тип общего анода (общий положительный или общий VCC) и тип общего катода (общий отрицательный или общий заземляющий).
Общий анод (CA): здесь все отрицательные клеммы (катод) всех 8 светодиодов соединены вместе (см. Диаграмму ниже), называемые COM. И все положительные клеммы остаются в покое.
Общий катод (CC): здесь все положительные клеммы (аноды) всех 8 светодиодов соединены вместе и называются COM. И все отрицательные термики остаются в покое.
Эти семисегментные дисплеи CC и CA очень удобны при мультиплексировании нескольких ячеек вместе. В нашем руководстве мы будем использовать CC или семисегментный дисплей с общим катодом.
Мы уже связали 7 сегмент с 8051, Arduino и AVR. Мы также использовали 7-сегментные дисплеи во многих наших проектах.
Мы немного поговорим о Raspberry Pi GPIO, прежде чем идти дальше.
В Raspberry Pi 2 имеется 40 выходных контактов GPIO. Но из 40 можно запрограммировать только 26 контактов GPIO (от GPIO2 до GPIO27), см. Рисунок ниже. Некоторые из этих контактов выполняют некоторые специальные функции. Если оставить в стороне специальный GPIO, у нас осталось 17 GPIO.
Сигнала + 3,3 В GPIO (контакт 1 или 17) достаточно для управления 7-сегментным дисплеем. Чтобы обеспечить ограничение по току, мы будем использовать резистор 1 кОм для каждого сегмента, как показано на принципиальной схеме.
Чтобы узнать больше о выводах GPIO и их текущих выходах, пройдите: Мигание светодиода с Raspberry Pi
Необходимые компоненты:
Здесь мы используем Raspberry Pi 2 Model B с Raspbian Jessie OS. Все основные требования к оборудованию и программному обеспечению обсуждаются ранее, вы можете найти их во введении Raspberry Pi, кроме того, что нам нужно:
- Соединительные штифты
- 7-сегментный дисплей с общим катодом (LT543)
- Резистор 1КОм (8 шт.)
- Макетная плата
Схема и рабочее объяснение:
Подключения, которые выполняются для сопряжения 7-сегментного дисплея с Raspberry Pi, приведены ниже. Здесь мы использовали сегмент Common Cathode 7:
PIN1 или e ------------------ GPIO21
PIN2 или d ------------------ GPIO20
PIN4 или c ------------------ GPIO16
PIN5 или h или DP ---------- GPIO 12 // не обязательно, так как мы не используем десятичную точку
PIN6 или b ------------------ GPIO6
PIN7 или ------------------ GPIO13
PIN9 или f ------------------ GPIO19
PIN10 или g ---------------- GPIO26
PIN3 или PIN8 ------------- подключен к земле
Таким образом, мы будем использовать 8 контактов GPIO PI в качестве 8-битного ПОРТА. Здесь GPIO13 - это LSB (наименьший значащий бит), а GPIO 12 - это MSB (наиболее значимый бит).
Теперь, если мы хотим, чтобы отобразить номер «1», мы должны сегменты мощности B и C. Для питания сегментов B и C нам необходимо питание GPIO6 и GPIO16. Таким образом, байт для функции «ПОРТ» будет 0b00000110, а шестнадцатеричное значение «ПОРТ» будет 0x06. Когда оба штифта находятся в высоком положении, на дисплее отображается «1».
Мы записали значения для каждой отображаемой цифры и сохранили эти значения в строке символов с именем «DISPLAY» (см. Раздел «Код» ниже). Затем мы вызвали эти значения одно за другим, чтобы отобразить соответствующую цифру на дисплее, используя функцию «ПОРТ».
Объяснение программирования:
Как только все будет подключено в соответствии с принципиальной схемой, мы можем включить 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)
Мы устанавливаем 8 контактов GPIO в качестве выходных контактов для контактов данных и управления ЖК-дисплея.
IO.setup (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
Если условие в фигурных скобках истинно, инструкции внутри цикла будут выполнены один раз. Таким образом, если бит 0 8-битного «вывода» истинен, PIN13 будет ВЫСОКИМ, иначе PIN13 будет НИЗКИМ. У нас есть восемь условий «if else» для бит 0 - бит 7, так что соответствующий светодиод внутри 7-сегментного дисплея может быть установлен на высокий или низкий уровень для отображения соответствующего числа.
if (pin & 0x01 == 0x01): IO.output (13,1) else: IO.output (13,0)
Эта команда выполняет цикл 10 раз, причем x увеличивается с 0 до 9.
для x в диапазоне (10):
Команда ниже используется как бесконечный цикл, с этой командой операторы внутри этого цикла будут выполняться непрерывно.
Пока 1:
Все остальные функции и команды были объяснены в разделе «Код» ниже с помощью «Комментарии».
После написания программы и ее выполнения Raspberry Pi запускает соответствующие GPIO, чтобы отобразить цифру на 7-сегментном дисплее. Программа написана для отображения на дисплее непрерывного счета от 0 до 9.