Оглавление:

Управление несколькими светодиодами с помощью Python и контактов GPIO вашего Raspberry Pi: 4 шага (с изображениями)
Управление несколькими светодиодами с помощью Python и контактов GPIO вашего Raspberry Pi: 4 шага (с изображениями)

Видео: Управление несколькими светодиодами с помощью Python и контактов GPIO вашего Raspberry Pi: 4 шага (с изображениями)

Видео: Управление несколькими светодиодами с помощью Python и контактов GPIO вашего Raspberry Pi: 4 шага (с изображениями)
Видео: Kirill Borisov – Python + Raspberry Pi GPIO 2024, Июль
Anonim
Управление несколькими светодиодами с помощью Python и контактов GPIO вашего Raspberry Pi
Управление несколькими светодиодами с помощью Python и контактов GPIO вашего Raspberry Pi

В этом руководстве показано, как управлять несколькими выводами GPIO на RaspberryPi для питания 4 светодиодов. Он также познакомит вас с параметрами и условными операторами в Python.

Наше предыдущее руководство по использованию контактов GPIO вашего Raspberry Pi для управления светодиодом демонстрирует, как включать и выключать один светодиод с помощью команды GPIO.output. Эта инструкция основывается на этих знаниях, чтобы научить вас, как получить больший контроль над вашей схемой.

Шаг 1. Что вам понадобится

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

- RaspberryPi с уже установленным Raspbian. Вам также потребуется иметь доступ к Pi с помощью монитора, мыши и клавиатуры или через удаленный рабочий стол. Вы можете использовать любую модель Raspberry Pi. Если у вас есть одна из моделей Pi Zero, вы можете припаять несколько контактов заголовка к порту GPIO.

- Красный, синий, желтый и зеленый светодиоды

- Макетная плата для прототипирования без пайки

- 4 резистора по 330 Ом

- Некоторые перемычки между мужчинами и женщинами

Шаг 2: Создайте свою схему

Создайте свою схему
Создайте свою схему
Создайте свою схему
Создайте свою схему

Постройте указанную выше схему на своей макетной плате, убедившись, что ни один из выводов компонентов не соприкасается, а светодиоды подключены правильно.

Как определить положительный и отрицательный выводы (полярность) светодиодов? Если вы внимательно посмотрите на светодиод, вы увидите, что в цветном корпусе у него есть два небольших металлических предмета. Они называются анодом и катодом. Катод - самый большой из двух, он также подключен к отрицательному выводу светодиода.

После того, как вы проверили свою схему, подключите перемычки к контактам GPIO вашего Raspberry Pi, следуя приведенной выше схеме.

Шаг 3. Создайте сценарий для управления и проверки светодиодов

Создайте сценарий для управления и проверки светодиодов
Создайте сценарий для управления и проверки светодиодов

На Raspberry Pi откройте IDLE (Меню> Программирование> Python 2 (IDLE)).

Откройте новый проект и выберите «Файл»> «Новый файл». Затем введите (или скопируйте и вставьте) следующий код:

импортировать RPi. GPIO как GPIO

время импорта GPIO.setmode (GPIO. BCM) GPIO.setup (17, GPIO. OUT) GPIO.setup (18, GPIO. OUT) GPIO.setup (22, GPIO. OUT) GPIO.setup (23, GPIO. OUT) GPIO.output (17, True) time.sleep (3) GPIO.output (17, False) time.sleep (1) GPIO.output (18, True) time.sleep (3) GPIO.output (18, False) time.sleep (1) GPIO.output (22, True) time.sleep (3) GPIO.output (22, False) time.sleep (1) GPIO.output (23, True) time.sleep (3) GPIO. вывод (23, Ложь)

Сохраните свой проект как Multilights.py (Файл> Сохранить как) в папке документов Raspberry Pis.

На Raspberry Pi откройте Терминал (Меню> Стандартные> Терминал) и перейдите в папку Документы, набрав следующее:

cd / home / pi / Документы

Теперь вы можете запустить свой новый скрипт, набрав следующее:

Python Multilights.py

Свет будет по очереди включаться и выключаться. В приведенном выше сценарии используется команда time.sleep, чтобы создать паузу между каждым шагом, заставляя каждую лампу гореть в течение 3 секунд и ждать 1 секунду, прежде чем включить следующий свет.

Шаг 4: добавление гибкости с помощью параметров и условных операторов

Используя параметры и условные выражения, мы можем сделать приведенный выше сценарий более гибким.

Параметр позволяет вам сохранять значение, которое вы можете использовать позже в скрипте. Наиболее распространенными типами значений являются строки (текст), целые числа (целые числа) или числа с плавающей запятой (десятичные числа).

Условный оператор определяет, следует ли выполнять сегмент кода, проверяя выполнение определенного условия. Условие также может включать параметры.

Откройте IDLE на своем Raspberry Pi и откройте новый проект (Файл> Новый файл). Затем введите следующее. Будьте осторожны и убедитесь, что все отступы (вкладки) включены с помощью клавиши табуляции:

импортировать RPi. GPIO как GPIO

время импорта из sys import argv whichled = argv [1] ledaction = argv [2] LEDa = 17 LEDb = 18 LEDc = 22 LEDd = 23 GPIO.setmode (GPIO. BCM) GPIO.setup (LEDa, GPIO. OUT) GPIO. setmode (GPIO. BCM) GPIO.setup (LEDb, GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDc, GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDd, GPIO. OUT) if ledaction == "off": if whichled == "a": GPIO.output (LEDa, False) if whichled == "b": GPIO.output (LEDb, False) if whichled == "c": GPIO.output (LEDc, False), если whichled == "d": GPIO.output (LEDd, False), if whichled == "all": GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. output (LEDc, False) GPIO.output (LEDd, False) если ledaction == "on": if whichled == "a": GPIO.output (LEDa, True) if whichled == "b": GPIO.output (LEDb, True) если whichled == "c": GPIO.output (LEDc, True) if whichled == "d": GPIO.output (LEDd, True) if whichled == "all": GPIO.output (LEDa, True) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)

Сохраните свой проект как controllight.py (Файл> Сохранить как) в папке Документы. Теперь откройте Терминал (Меню> Стандартные> Терминал) и введите следующую команду:

python controllight.py b на

Второй светодиод должен загореться. Теперь введите следующее:

python controllight.py b выключен

Второй светодиод должен погаснуть.

В строках 5, 6, 7 и 8 мы создаем параметры LEDa, LEDb, LEDc и LEDd для хранения того, какой вывод GPIO мы подключили к какому светодиоду. Это позволяет нам использовать альтернативные контакты GPIO без внесения существенных изменений в скрипт.

Например, если бы мы вместо этого подключили первый вывод светодиодов к контакту 3 (GPIO 2), нам просто нужно было бы изменить строку 5 на следующее:

LEDa = 2

Строка 4 хранит значения, которые вы ввели после controllight.py, в параметры whichled (c) и ledaction (on). Затем сценарий использует эти параметры вместе с рядом условных выражений, чтобы решить, какой светодиод контролировать и включать или выключать.

Строка 16 (если ledaction == "on":) является условным выражением. Строки с отступом, следующие за этим оператором, будут выполняться только в том случае, если условие оператора выполнено. В этом сценарии условие состоит в том, что ledaction содержит текст on.

Прочитав другие условные выражения сценария, можете ли вы предсказать, что произойдет, когда вы введете следующую команду в Терминале?

python controllight.py все включено

Почему бы не попробовать и не опубликовать свой ответ в разделе комментариев ниже.

Рекомендуемые: