- Показване на седем сегмента:
- Необходими компоненти:
- Обяснение на веригата и работата:
- Обяснение на програмирането:
Raspberry Pi е ARM архитектура базирана на процесор платка, предназначена за електронни инженери и любители. PI е една от най-надеждните платформи за разработване на проекти в момента. С по-висока скорост на процесора и 1 GB RAM, PI може да се използва за много проекти с висок профил като обработка на изображения и IoT.
За да направите някой от високопрофилните проекти, трябва да разберете основните функции на PI. В тези уроци ще разгледаме всички основни функционалности на Raspberry Pi. Във всеки урок ще обсъдим една от функциите на PI. До края на тази серия уроци за Raspberry Pi ще можете да научите Raspberry Pi и сами да правите добри проекти. Преминете през уроци по-долу:
- Първи стъпки с Raspberry Pi
- Конфигурация на Raspberry Pi
- LED мигащ
- Интерфейс с бутони
- Raspberry Pi PWM поколение
- LCD взаимодействие с Raspberry Pi
- Управление на DC мотор
- Управление на стъпков двигател
- Взаимодействие Shift регистър
- Raspberry Pi ADC Урок
- Управление на серво мотора
- Капацитивен тъчпад
В този урок ще направим взаимодействие с дисплей на сегменти Raspberry Pi 7. Дисплеите от седем сегмента са най-евтините за дисплей. Няколко от тези сегменти, подредени заедно, могат да бъдат използвани за показване на температура, стойност на брояча и т.н. Ние ще свържем 7-сегментния дисплей с GPIO на PI и ще ги контролираме, за да показват цифри съответно. След това ще напишем програма в PYTHON за седемсегментен дисплей, който да брои от 0-9 и да се нулира.
Показване на седем сегмента:
Има различни видове и размери на 7 сегментни дисплея. Ние разгледахме Седем сегмента, работещи подробно тук. По принцип има два типа 7 сегмента, тип общ анод (общ положителен или общ VCC) и тип общ катод (общ отрицателен или обща земя).
Общ анод (CA): При това всички отрицателни клеми (катод) на всичките 8 светодиода са свързани заедно (вижте диаграмата по-долу), наречени като COM. И всички положителни терминали остават сами.
Общ катод (CC): При това всички положителни клеми (аноди) на всичките 8 светодиода са свързани заедно, наречени COM. И всички отрицателни термики остават сами.
Тези седем сегментни дисплеи CC и CA са много полезни, докато мултиплексират няколко клетки заедно. В нашия урок ще използваме CC или Common Cathode Seven Segment Display.
Вече сме свързали 7 сегмента с 8051, с Arduino и с AVR. Използвали сме и 7 сегментен дисплей в много от нашите проекти.
Ще обсъдим малко за Raspberry Pi GPIO, преди да продължим по-нататък, В Raspberry Pi 2 има 40 изходни щифта GPIO. Но от 40 само 26 GPIO пина (GPIO2 до GPIO27) могат да бъдат програмирани, вижте фигурата по-долу. Някои от тези щифтове изпълняват някои специални функции. Със специалния GPIO, оставен настрана, остават 17 GPIO.
Сигналът на GPIO (щифт 1 или 17) + 3.3V е достатъчен за задвижване на 7-сегментния дисплей. За да осигурим ограничение на тока, ще използваме резистор 1KΩ за всеки сегмент, както е показано в схемата.
За да научите повече за GPIO щифтовете и техните текущи изходи, преминете през: LED мига с Raspberry Pi
Необходими компоненти:
Тук използваме Raspberry Pi 2 Model B с Raspbian Jessie OS. Всички основни хардуерни и софтуерни изисквания са обсъдени преди това, можете да ги потърсите във въведението на Raspberry Pi, различно от това, от което се нуждаем:
- Свързващи щифтове
- Общ катоден 7-сегментен дисплей (LT543)
- 1KΩ резистор (8 броя)
- Макет
Обяснение на веригата и работата:
Връзките, които се правят за Interfacing 7 сегментен дисплей към Raspberry Pi, са дадени по-долу. Тук използвахме сегмент Common Cathode 7:
PIN1 или e ------------------ GPIO21
PIN2 или d ------------------ GPIO20
PIN4 или c ------------------ GPIO16
PIN5 или h или DP ---------- GPIO 12 // не е задължително, тъй като не използваме десетична запетая
PIN6 или b ------------------ GPIO6
ПИН7 или ------------------ GPIO13
PIN9 или f ------------------ GPIO19
ПИН10 или g ---------------- GPIO26
PIN3 или PIN8 ------------- свързани към земята
Така че ще използваме 8 GPIO пина на PI като 8-битов ПОРТ. Тук GPIO13 е LSB (най-малко значимият бит), а GPIO 12 е MSB (най-значимият бит).
Сега, ако искаме да се покаже номер "1", ние трябва да мощност сегменти В и С. За да захранваме сегменти B и C, трябва да захранваме GPIO6 и GPIO16. Така байтът за функцията 'PORT' ще бъде 0b00000110, а шестнадесетичната стойност на 'PORT' ще бъде 0x06. И с двата щифта високо получаваме „1“ на дисплея.
Написали сме стойностите за всяка цифра, които трябва да бъдат показани, и ги съхраняваме в низ от символи, наречен „DISPLAY“ (Проверете раздела за кода по-долу). След това извикахме тези стойности една по една, за да покажем съответната цифра на дисплея, като използваме функцията „PORT“.
Обяснение на програмирането:
След като всичко е свързано според схемата, можем да включим 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)
Задаваме 8 GPIO щифта като изходни щифтове за щифтове за данни и контрол на LCD.
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 ще бъде HIGH, в противен случай PIN13 ще бъде LOW. Имаме осем условия „ако е друго“ за bit0 до bit7, така че подходящият LED, в 7-сегментния дисплей, може да бъде направен High или Low, за да покаже съответния номер.
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.