Raspberry Pi е ARM архитектура базирана на процесор платка, предназначена за електронни инженери и любители. PI е една от най-надеждните платформи за разработване на проекти в момента. С по-висока скорост на процесора и 1 GB RAM, PI може да се използва за много проекти с висок профил като обработка на изображения и IoT.
За да направите някой от високопрофилните проекти, трябва да разберете основните функции на PI. В тези уроци ще разгледаме всички основни функционалности на Raspberry Pi. Във всеки урок ще обсъдим една от функциите на PI. До края на тази серия с уроци за Raspberry Pi ще можете сами да правите проекти с висок профил. Преминете през уроци по-долу:
- Първи стъпки с Raspberry Pi
- Конфигурация на Raspberry Pi
- LED мигащ
- Интерфейс с бутони
- PWM поколение
- Управление на DC мотор
- Управление на стъпков двигател
- Взаимодействие Shift регистър
- Raspberry Pi ADC Урок
- Управление на серво мотора
- Капацитивен тъчпад
В този урок ще контролираме 16x2 LCD дисплей с помощта на Raspberry Pi. Ще свържем LCD дисплея с GPIO (General Purpose Input Output) щифтове на PI, за да показваме символи върху него. Ще напишем програма на PYTHON, за да изпратим съответните команди до LCD чрез GPIO и да покажем необходимите символи на неговия екран. Този екран ще бъде полезен за показване на стойности на сензора, състояние на прекъсване, както и за показване на времето.
На пазара има различни видове LCD. Графичният LCD е по-сложен от 16x2 LCD. Така че тук ще отидем за 16x2 LCD дисплей, дори можете да използвате 16x1 LCD, ако искате. 16x2 LCD има общо 32 знака, 16 в 1- ви ред и още 16 във 2- ри ред. JHD162 е LCD дисплей с 16x2 LCD модула. Вече сме свързали 16x2 LCD с 8051, AVR, Arduino и т.н. Можете да намерите всички наши проекти, свързани с 16x2 LCD, като следвате тази връзка.
Ще обсъдим малко за PI GPIO, преди да продължим по-нататък.
В Raspberry Pi 2 има 40 изходни щифта GPIO. Но от 40 само 26 GPIO пина (GPIO2 до GPIO27) могат да бъдат програмирани. Някои от тези щифтове изпълняват някои специални функции. Със специалния GPIO, оставен настрана, остават 17 GPIO.
На платката има + 5V (Pin 2 или 4) и + 3.3V (Pin 1 или 17) изходни щифтове за захранване, те са за свързване на други модули и сензори. Ще захранваме 16 * 2 LCD през + 5V релса. Можем да изпратим контролен сигнал от + 3.3v към LCD, но за работа на LCD трябва да го захранваме с + 5V. LCD дисплеят няма да работи с + 3.3V.
За да научите повече за GPIO щифтовете и техните текущи изходи, преминете през: LED мига с Raspberry Pi
Необходими компоненти:
Тук използваме Raspberry Pi 2 Model B с Raspbian Jessie OS. Всички основни хардуерни и софтуерни изисквания са обсъдени преди това, можете да ги потърсите във въведението на Raspberry Pi, различно от това, от което се нуждаем:
- Свързващи щифтове
- 16 * 2 LCD модул
- 1KΩ резистор (2 броя)
- 10K пот
- 1000µF кондензатор
- Макет
Обяснение на веригата и работата:
Както е показано на електрическата схема, ние имаме взаимодействащ Raspberry Pi с LCD дисплей, като свързваме 10 GPIO щифта PI към 16 * 2 LCD контролни и трансферни данни. Използвахме GPIO Pin 21, 20, 16, 12, 25, 24, 23 и 18 като BYTE и създадохме функция „PORT“ за изпращане на данни на LCD. Тук GPIO 21 е LSB (най-малко значимият бит), а GPIO18 е MSB (най-значимият бит).
LCD модулът 16x2 има 16 щифта, които могат да бъдат разделени на пет категории, захранващи щифтове, контрастни щифтове, контролни щифтове, щифтове за данни и щифтове с подсветка. Ето краткото описание за тях:
Категория |
ПИН НЕ. |
Име на ПИН |
Функция |
Захранващи щифтове |
1 |
VSS |
Заземяващ щифт, свързан с заземяване |
2 |
VDD или Vcc |
Напрежение Pin + 5V |
|
Контраст ПИН |
3 |
V0 или VEE |
Настройка на контраста, свързан към Vcc чрез променлив резистор. |
Контролни щифтове |
4 |
RS |
Регистрация Избор на ПИН, RS = 0 команден режим, RS = 1 Режим на данни |
5 |
RW |
ПИН за четене / запис, RW = 0 Режим на запис, RW = 1 Режим на четене |
|
6 |
Е. |
Активиране, импулс с висок до нисък импулс трябва да активира LCD |
|
Пинчета за данни |
7-14 |
D0-D7 |
Data Pins, Съхранява данните за показване на LCD или командните инструкции |
Щипки за подсветка |
15 |
LED + или A |
За захранване на Backlight + 5V |
16. |
LED- или K |
Земя за подсветка |
Силно препоръчваме просто да преминете през тази статия, за да разберете как LCD работи с неговите Pins и Hex команди.
Ще обсъдим накратко процеса на изпращане на данни на LCD:
1. E е зададено високо (активиране на модула), а RS е ниско (казва на LCD, че даваме команда)
2. Даване на стойност 0x01 на порта за данни като команда за изчистване на екрана.
3. E е зададено високо (активиране на модула), а RS е високо (казва на LCD, че даваме данни)
4. Трябва да се покаже доказването на ASCII кода за символи.
5. E е зададено ниско (казва на LCD, че сме изпратили данни)
6. След като този E пин се понижи, LCD обработва получените данни и показва съответния резултат. Така че този щифт е настроен на висок преди изпращане на данни и изваден на земята след изпращане на данни.
Както казахме, ще изпратим знаците един след друг. На героите са дадени за LCD с ASCII кодове (американски стандарт код за обмен на информация). Таблицата с ASCII кодове е показана по-долу. Например, за да покажем знак „@“, трябва да изпратим шестнадесетичен код „40“. Ако дадем стойност 0x73 на LCD дисплея, той ще покаже „s“. По този начин ще изпратим съответните кодове на LCD дисплея, за да покажем низа „ CIRCUITDIGEST “.
Обяснение на програмирането:
След като всичко е свързано според схемата, можем да включим PI, за да напишем програмата в PYHTON.
Ще говорим за няколко команди, които ще използваме в програмата PYHTON, Ще импортираме GPIO файл от библиотеката, функцията по-долу ни позволява да програмираме GPIO пинове на PI. Преименуваме също „GPIO“ на „IO“, така че в програмата, когато искаме да се позовем на GPIO щифтове, ще използваме думата „IO“.
импортирайте RPi.GPIO като IO
Понякога, когато GPIO щифтовете, които се опитваме да използваме, може да изпълняват някои други функции. В този случай ще получим предупреждения, докато изпълняваме програмата. Командата по-долу казва на PI да игнорира предупрежденията и да продължи с програмата.
IO.setwarnings (False)
Можем да отнесем GPIO пиновете на PI, или чрез пинов номер на борда, или чрез номера на тяхната функция. Подобно на „ПИН 29“ на платката е „GPIO5“. Така че ние казваме тук, или ще представим щифта тук с '29' или '5'.
IO.setmode (IO.BCM)
Задаваме 10 GPIO щифта като изходни щифтове за щифтове за данни и контрол на LCD.
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 изпраща символи към LCD един по един и LCD показва символите на екрана.