Оглавление:
- Шаг 1. Что вам понадобится
- Шаг 2: Создайте свою схему
- Шаг 3. Создайте сценарий для управления и проверки светодиодов
- Шаг 4: добавление гибкости с помощью параметров и условных операторов
Видео: Управление несколькими светодиодами с помощью Python и контактов GPIO вашего Raspberry Pi: 4 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
В этом руководстве показано, как управлять несколькими выводами 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 все включено
Почему бы не попробовать и не опубликовать свой ответ в разделе комментариев ниже.
Рекомендуемые:
Тыква на Хэллоуин в стиле Интернета вещей - Управление светодиодами с помощью Arduino MKR1000 и приложения Blynk ???: 4 шага (с изображениями)
Тыква на Хэллоуин в стиле Интернета вещей | Управление светодиодами с помощью Arduino MKR1000 и приложения Blynk ???: Всем привет! Несколько недель назад был Хэллоуин, и, следуя традиции, я вырезал красивую тыкву для своего балкона. Но, имея свою тыкву на открытом воздухе, я понял, что было довольно неприятно каждый вечер выходить на улицу, чтобы зажечь свечу. И я
Управление светодиодами на основе Google Assistant с помощью Raspberry Pi: 3 шага
Управление светодиодом на основе Google Assistant с использованием Raspberry Pi: Привет! В этом проекте мы реализуем управление светодиодом на основе Google Assistant с помощью Raspberry Pi 4 с использованием HTTP в Python. Вы можете заменить светодиод на лампочку (очевидно, не буквально, вам понадобится релейный модуль между ними) или в любом другом доме
Передача контактов с помощью Bluetooth: 3 шага
Передача контактов с помощью Bluetooth: Bluetooth надежен и избавляет вас от необходимости искать подходящий кабель и фирменное программное обеспечение. Записи телефонной книги будут перенесены в формате vCard или * .vcf. Для управления записями vCard обычно есть функция «Импорт»
Затухание / управление светодиодами / яркостью с помощью потенциометра (переменного резистора) и Arduino Uno: 3 шага
Затухание / управление светодиодами / яркостью с помощью потенциометра (переменного резистора) и Arduino Uno: аналоговый входной вывод Arduino подключен к выходу потенциометра. Таким образом, аналоговый вывод Arduino ADC (аналого-цифровой преобразователь) считывает выходное напряжение с помощью потенциометра. Вращение ручки потенциометра изменяет выходное напряжение, и Arduino
Управление яркостью Управление светодиодами на основе ШИМ с помощью кнопок, Raspberry Pi и Scratch: 8 шагов (с изображениями)
Управление яркостью Управление светодиодами на основе ШИМ с помощью кнопок, Raspberry Pi и Scratch: я пытался найти способ объяснить своим ученикам, как работает ШИМ, поэтому я поставил себе задачу попытаться управлять яркостью светодиода с помощью 2 кнопок - одна кнопка увеличивает яркость светодиода, а другая - затемняет. Чтобы запрограммировать