Прежде чем начать, убедитесь, что вы установили GPIO Zero на своей плате. Вы можете сделать это, набрав в терминале:
sudo apt-get update sudo apt-get install python3-gpiozero
from gpiozero import LED led = LED(17) led.on()
Это включит светодиод, подключенный к порту 17. Чтобы выключить светодиод, просто измените последнюю строку кода на:
led.off()
from gpiozero import LED, Button led = LED(17) button = Button(2) button.when_pressed = led.on button.when_released = led.off
Это включит светодиод, когда кнопка на порту 2 нажата, и выключит его, когда кнопка отпущена.
Прежде всего, убедитесь, что ваш Raspberry Pi 3 B имеет последнюю версию операционной системы. Обновите систему, используя команду sudo apt-get update и sudo apt-get upgrade.
Для управления входами-выходами на Raspberry Pi 3 B, вам понадобится библиотека RPi.GPIO. Установите ее с помощью команды sudo apt-get install python-rpi.gpio.
Для начала, импортируйте библиотеку в вашем Python-скрипте:
python
import RPi.GPIO as GPIO
Затем, настройте режим работы с GPIO. Рекомендуется использовать режим по номеру контакта:
python
GPIO.setmode(GPIO.BCM)
Теперь вы можете настроить контакты как входы или выходы. Например, чтобы настроить контакт 18 как выход:
python
GPIO.setup(18, GPIO.OUT)
Чтобы настроить контакт 24 как вход с подтяжкой к земле:
python
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
После настройки, вы можете читать и записывать значения с контактов. Чтобы записать высокий уровень на контакт 18:
python
GPIO.output(18, GPIO.HIGH)
Чтобы прочитать значение с контакта 24:
python
if GPIO.input(24) == GPIO.HIGH:
print(«Контакт 24 находится на высоком уровне»)
Не забудьте очистить все настройки GPIO после завершения работы:
python
GPIO.cleanup()
Важные моменты
Всегда помните, что контакты GPIO работают с низким уровнем напряжения (3.3 В). Никогда не подключайте их напрямую к контактам, работающим с высоким уровнем напряжения (5 В).
Также, убедитесь, что все контакты правильно подключены. Неправильное подключение может привести к повреждению вашего Raspberry Pi.
Примеры управления входами/выходами на Raspberry Pi 3 B
Для начала, давайте рассмотрим пример управления выходами. Допустим, мы хотим зажечь светодиод, подключенный к 4-му пину GPIO. Для этого нам понадобится библиотека RPi.GPIO. Устанавливаем ее командой sudo apt-get install python-rpi.gpio.
Теперь создаем файл led.py и пишем следующий код:
python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
try:
while True:
GPIO.output(4, GPIO.HIGH)
time.sleep(1)
GPIO.output(4, GPIO.LOW)
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
Этот скрипт зажигает светодиод на 1 секунду, затем гасит его на 1 секунду. Чтобы запустить скрипт, введите команду sudo python led.py.
Теперь давайте рассмотрим пример управления входами. Допустим, мы хотим, чтобы светодиод загорался, когда нажимается кнопка, подключенная к 18-му пину GPIO. Для этого нам понадобится библиотека RPi.GPIO и библиотека для работы с прерываниями RPi.GPIO.Rise.
Создаем файл button.py и пишем следующий код:
python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(4, GPIO.OUT)
def button_callback(channel):
GPIO.output(4, GPIO.HIGH)
time.sleep(1)
GPIO.output(4, GPIO.LOW)
GPIO.add_event_detect(18, GPIO.FALLING, callback=button_callback, bouncetime=300)
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
Этот скрипт зажигает светодиод, когда нажимается кнопка. Чтобы запустить скрипт, введите команду sudo python button.py.