Управление на външен светодиод с помощта на щифтове Raspberry Pi и GPIO

В тази публикация ще изследваме пиновете на Raspberry Pi GPIO, като създадем GPIO програма „Hello World”, която води до мигащ червен светодиод. Ще използваме езика за програмиране Python. Използвам обезглавен Raspberry Pi Zero WH (безжичен със запоени заглавки) с Raspbian Stretch Lite (операционна система Raspberry Pi с минимално изображение, базирано на Debian Stretch).

Ще говоря с моя обезглавен Pi, като използвам sshи прехвърлям необходимите файлове от моя Mac в Pi, използвайки scpкоманди. Предполагам, че вашият Raspberry Pi е стартиран и работи с инсталирана OS Raspbian. Ако не, тогава в интернет има много статии, описващи как да настроите своя Pi и да инсталирате Raspbian, включително официалната документация за Raspberry Pi.

Неща, от които ще се нуждаете:

  • 1 x Raspberry Pi (използвам модела Pi Zero WH)
  • 1 х дъска за хляб
  • 1 х червена LED светлина
  • 1 x 330 ома резистор
  • 2 x женски към мъжки джъмпер кабел

Конфигурация на GPIO щифтове

GPIO означава общ входен изход . С помощта на GPIO щифтове Raspberry Pi може да се свързва и да взаимодейства с външни електронни компоненти. Последните модели Raspberry Pi (Pi 3, Pi Zero, Pi W и Pi WH модели и т.н.) съдържат 40 GPIO пина. Всеки щифт може да се включи или изключи, или да отиде, HIGHили LOWв електронен план. Ако щифтът е HIGHтой издава 3.3 волта, ако щифтът LOWе изключен.

В нашия пример ще използваме pin 6(ground) и pin 25. За да научите повече за GPIO щифтовете в Raspberry Pi, проверете pinout.xyz.

Настройка на веригата

Трябва да изключите Pi, докато изграждате веригата. Ще създадем схема, както е показано на диаграмата по-долу:

Забележка : Резисторът на изображението е от 220 Ohm, но съм използвал 330 Ohm в моята схема.

  1. Използвайте кабел от джъмпер към мъж, за да свържете pin 6(земя) (черен кабел на изображението по-горе) към отрицателния ред на макет.
  2. Използвайте друг джъмпер от жена към мъж, за да се свържете, за да свържете GPIO pin 25към точка, представена от ред Aи колона 12на макет, както е показано по-горе (син кабел на изображението по-горе).
  3. Свържете единия край на резистор от 330 ома към отрицателния ред (редът, който е маркиран в зелено, където черният кабел по-горе е свързан по-рано) и свържете другия край към точката, представена от Cколона 11на реда на макетната плоча, както е показано по-горе.
  4. По-късият край на светодиода е отрицателният край, а по-дългият е положителният край. По-дългият край винаги трябва да бъде свързан към точката във веригата с по-високо напрежение (т.е. по-голям потенциал). По-късият край на светодиода е свързан към GPIO pin 25(който може да изведе 3.3V) чрез синия кабел, а по-дългият край е свързан към земята pin 6(което е 0V и действа като отрицателния извод на батерията) чрез черния кабел с резистор между тях.

Резистор

Имайки предвид, че бях встъпителни часове по електротехника и електроника преди доста време (приблизително 4 до 5 години), имах два въпроса, за които имах нужда от отговори. Моля, изтърпете ме, че съм наивен в този контекст.

  1. Защо се нуждаем от резистор в нашата верига?
  2. Как да определим колко ома (мярката за електрическо съпротивление) трябва да бъде резисторът?

За разсейване на допълнителната електрическа енергия (напрежение) от Raspberry Pi е необходим резистор. Raspberry Pi е снабден с 50mA при 3.3V. Да приемем, че червеният ни светодиод може да има напрежение напред (напрежението е „отрицателното напрежение“, използвано от светодиода, когато е включен) от около 2V и консумира ток 4mA. Така че останалите 1.3V трябва да се разсеят от резистора.

Използвайки закона на Ом V = IR,, R= (3.3V - 2V) / (4/1000)който се появява 325 ohms- затова препоръчвам да използвате резистор от 330 ома .

Открих това от дискусия във форума на Raspberry Pi.

Направете мигането на светодиода с помощта на Python

След като вече имаме пълна схема, следващата част е да програмираме GPIO портовете, за да осъществим магията: да накараме светодиода да мига. Ще използваме изхода на GPIO, за pin 25да накара LED да мига.

Стартирайте своя Pi и се свържете с него с помощта на ssh. В терминала използвайте следната команда, за да инсталирате библиотеката на Python gpiozero. В gpiozeroбиблиотеката прави работата с GPIO карфици и свързаните външни компоненти много прости.

За да инсталирате библиотеката на Python, напишете sudo apt-get install python3-gpiozero.

Сега ще пуснем някакъв код на Python. Запазете кода по-долу във вашата файлова система Pi във файл с име blink1.py. Скриптът основно включва включения светодиод pin 25, спи за 1 секунда, след това изключва светодиода и отново спи за 1 секунда. И това се прави непрекъснато в цикъл, докато програмата бъде прекратена (натискане на ctrl+ c).

Сега от терминал, отидете в директорията, където сценарият се записва и да го стартирате с помощта на командата: python3 blink1.py.

Ще видите червения светодиод да мига така:

Можем да изградим много забавни неща, като gpiozeroизползваме подобна настройка. Вижте документацията, за gpiozeroкоято са показани някои интересни примери. Опитайте да изградите светофарна система.

Първоначално публикувано на shahbaz.co на 7 април 2018 г.