Калейдоскоп событий

Raspberry Pi 3 B GPIO: Управление входами/выходами

Прежде чем начать, убедитесь, что вы установили 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.