Керування зовнішнім світлодіодом за допомогою контактів Raspberry Pi та GPIO

У цій публікації ми дослідимо шпильки Raspberry Pi GPIO, створивши програму GPIO “Hello World”, в результаті якої блимає червоний світлодіод. Ми будемо використовувати мову програмування Python. Я використовую безголовник Raspberry Pi Zero WH (бездротовий з припаяними заголовками) з Raspbian Stretch Lite (операційна система Raspberry Pi з мінімальним зображенням на основі Debian Stretch).

Я поговорю зі своїм безголовим Пі за sshдопомогою scpкоманд і передаю необхідні файли з мого Mac на Пі . Я припускаю, що ваш Raspberry Pi запущений і працює із встановленою ОС Raspbian. Якщо ні, тоді в Інтернеті є багато статей, де описується, як налаштувати Pi та встановити Raspbian, включаючи офіційну документацію Raspberry Pi.

Що вам потрібно:

  • 1 x Raspberry Pi (я використовую модель Pi Zero WH)
  • 1 х дошка для хліба
  • 1 х червоний світлодіод
  • 1 резистор 330 Ом
  • 2 кабелі перемички від жінки до чоловіка

Конфігурація штифтів 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 Ом, але я використав 330 Ом у своїй схемі.

  1. За допомогою кабелю перемички від жінки до чоловіка підключіть pin 6(заземлення) (чорний кабель на зображенні вище) до негативного ряду макетної дошки.
  2. Використовуйте іншу перемичку від жінки до чоловіка для підключення, щоб підключити GPIO pin 25до точки, представленої рядком Aі стовпцем 12на макетній панелі, як показано вище (синій кабель на зображенні вище).
  3. Підключіть один кінець резистора 330 Ом до від’ємного рядка (рядок, який виділений зеленим кольором там, де раніше підключався чорний кабель), а другий кінець - до точки, представленої Cстовпчиком рядка 11на макетній панелі, як показано вище.
  4. Коротший кінець світлодіода є негативним, а довший - позитивним. Більш довгий кінець завжди повинен бути підключений до точки в ланцюзі з більш високою напругою (тобто більшим потенціалом). Коротший кінець світлодіода підключений до GPIO pin 25(який може виводити 3,3 В) за допомогою синього кабелю, а довший кінець підключений до землі pin 6(що становить 0 В і діє як негативна клема акумулятора) через чорний кабель з резистор між ними.

Резистор

Маючи на увазі, що я досить давно (приблизно 4–5 років) проходив вступні класи з електротехніки та електроніки, у мене було два запитання, на які мені потрібні були відповіді. Будь ласка, потерпіть зі мною за наївність у цьому контексті.

  1. Навіщо нам потрібен резистор у нашій схемі?
  2. Як ми визначаємо, скільки Ом (міра електричного опору) повинен бути резистор?

Для розсіювання додаткової електричної енергії (напруги) від Raspberry Pi потрібен резистор. Raspberry Pi має потужність 50 мА при 3,3 В. Скажімо, наш червоний світлодіод може мати пряму напругу (пряма напруга - це «негативна напруга», яка використовується світлодіодом, коли він увімкнений) близько 2 В і споживає струм 4 мА. Отже, решта 1,3 В повинна розсіюватися резистором.

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

Я виявив це під час обговорення на форумі Raspberry Pi.

Змушуючи світлодіод блимати за допомогою Python

Тепер, коли ми маємо повну схему, наступна частина - запрограмувати порти GPIO, щоб здійснити магію: змусити світлодіод блимати. Ми будемо використовувати вихід GPIO, pin 25щоб світлодіод блимав.

Запустіть свій 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 року.