Найти тему
КУЗИНОБИТ

Привет, Raspberry Pi! Заставляем светодиод мигать.

Оглавление

Вступление.

Привет, друзья! Помните, как мы недавно заставили мигать светодиод на Arduino? Если вы пропустили этот увлекательный опыт, обязательно посмотрите эту статью:

Сейчас мы продолжим наши эксперименты, но уже с Raspberry Pi!

Мигание светодиодом — классическое упражнение, с которого начинаются проекты на основе Raspberry Pi. Это простой, но полезный способ познакомиться с работой GPIO-пинов и основами программирования на Python. Давайте разберемся, как подключить светодиод к Raspberry Pi и заставить его мигать. 😎

Что понадобится:

  • Raspberry Pi (любой модели, начиная с Raspberry Pi 2)
  • Светодиод (любой цвет)
  • Резистор на 220 Ом
  • Провода для подключения
  • Макетная плата (breadboard) — рекомендуется для удобства сборки

Установка и настройка Raspberry Pi.

Если ваш Raspberry Pi ещё не настроен, следуйте этим шагам:

  1. Скачайте Raspberry Pi Imager и установите операционную систему Raspberry Pi OS на microSD-карту.
  2. Вставьте microSD-карту в Raspberry Pi и подключите его к монитору, клавиатуре и мыши.
  3. Подключите питание, и Raspberry Pi загрузится. Следуйте инструкциям для завершения настройки системы.

P.S. Если возникнут сложности, то пишите в комментариях, сделаю статью по подготовке SD-карты 😉

GPIO-пины Raspberry Pi.

Прежде чем подключать компоненты, важно понять, что такое GPIO-пины.

GPIO (General Purpose Input/Output) — это универсальные входы/выходы, которые позволяют Raspberry Pi взаимодействовать с внешними устройствами, такими как светодиоды, кнопки, датчики и многое другое.

Raspberry Pi имеет 40 пинов, каждый из которых имеет своё назначение. Среди них есть питание (5V и 3.3V), земля (GND) и универсальные GPIO-пины, которые можно настраивать как вход или выход.

Распиновка GPIO.

Вот схема распиновки GPIO на Raspberry Pi:

-2

Основные пины, которые мы будем использовать:

  • GPIO 17 — будем использовать как выход для управления светодиодом.
  • GND — земля, отрицательный контакт для замыкания электрической цепи.

Подключение светодиода.

Расположение выводов светодиода.

Светодиод имеет два вывода:

  • Длинный вывод — это анод (положительный контакт).
  • Короткий вывод — это катод (отрицательный контакт).
-3

Сборка схемы.

Размещаем компоненты на макетной плате (breadboard): Вставляем светодиод так, чтобы его выводы были в разных дорожках. Подключаем резистор 220 Ом к аноду светодиода.

-4

Анод через резистор подключаем к GPIO 17 с помощью соединительных проводов. Катод подключаем к одному из пинов GND (земля).

-5

Программирование на Python.

Если вы ещё не умеете писать на Python, то я начал курс по программированию на Python, изучайте!

Курс по программированию на Python | КУЗИНОБИТ | Дзен

На Raspberry Pi мы будем использовать язык Python для управления светодиодом. Этот язык программирования встроен в Raspberry Pi OS, поэтому дополнительных установок не потребуется.

Открытие терминала.

Нажмите на иконку терминала на рабочем столе или нажмите Ctrl + Alt + T.

Создание и запуск скрипта.

В терминале откройте текстовый редактор, чтобы написать скрипт:

nano blink.py

Вставьте следующий код в редактор:

import RPi.GPIO as GPIO
import time
# Устанавливаем режим нумерации пинов
GPIO.setmode(GPIO.BCM)
# Настраиваем пин 17 как выход
led_pin = 17
GPIO.setup(led_pin, GPIO.OUT)
try:
while True:
GPIO.output(led_pin, GPIO.HIGH) # Включаем светодиод
time.sleep(1) # Ждем 1 секунду
GPIO.output(led_pin, GPIO.LOW) # Выключаем светодиод
time.sleep(1) # Ждем еще 1 секунду
except KeyboardInterrupt:
GPIO.cleanup() # Очищаем все настройки при завершении

Сохраните и закройте редактор: нажмите Ctrl + X, затем Y и Enter.

Запуск кода.

В терминале введите команду:

python3 blink.py

Если всё настроено правильно, светодиод начнёт мигать!

Объяснение кода.

  • Импорт библиотек: RPi.GPIO управляет GPIO-пинами, а time используется для пауз.
  • Настройка режима GPIO: GPIO.setmode(GPIO.BCM) — выбираем режим нумерации пинов по стандарту BCM, который соответствует номерам GPIO на плате.
  • Настройка пина: GPIO.setup(led_pin, GPIO.OUT) — настраиваем пин GPIO 17 как выход.
  • Основной цикл: GPIO.output(led_pin, GPIO.HIGH) — подаём высокий сигнал на пин, включаем светодиод.
  • time.sleep(1) — ждём 1 секунду.
  • GPIO.output(led_pin, GPIO.LOW) — подаём низкий сигнал, выключаем светодиод.
  • Цикл повторяется бесконечно.
  • Очистка: При нажатии Ctrl + C программа прерывается, и выполняется GPIO.cleanup(), освобождая ресурсы.

Настройка интервалов мигания.

Попробуйте изменить time.sleep(), чтобы светодиод мигал быстрее или медленнее. Например, используйте time.sleep(0.5) для полусекундных интервалов.

Задание для самостоятельной работы.

  1. Подключите несколько светодиодов к разным GPIO-пинам, например, GPIO 18, GPIO 23 и GPIO 24.
  2. Создайте последовательное мигание — заставьте светодиоды зажигаться по очереди.
  3. Измените код, чтобы управлять каждым светодиодом отдельно.

Заключение.

Поздравляю! Вы только что освоили первое упражнение с Raspberry Pi и познакомились с GPIO-пинами. Теперь вы понимаете, как использовать их для управления светодиодами и другими компонентами. В отличие от Arduino, Raspberry Pi открывает множество возможностей для интеграции с Python, что позволит вам создавать более сложные и интересные проекты.

Не забывайте, что практика — залог успеха. Продолжайте экспериментировать и создавать! 🚀