GPIO означает ввод/вывод общего назначения. GPIO — это тип контакта на интегральной схеме, который настраивается и управляется с помощью программного обеспечения для получения входного или выходного сигнала. И это причина, которая делает RaspberryPi таким особенным. Это означает, что вы можете использовать RaspberryPi для своих встроенных проектов, а учитывая вычислительную мощность на борту и простоту использования, эти проекты становятся очень увлекательными.
Ниже приведена схема диаграммы с описанием выводов, взятая отсюда. Мы будем использовать эту диаграмму для справки в этом уроке.

Вы можете ссылаться на контакты либо по их названиям на плате (написанным внутри желтых кружков), либо по именам, данным производителем процессора Broadcom (указаны рядом с желтыми кружками). В этом руководстве мы будем ссылаться на контакты, используя их имена Broadcom.
Я буду использовать Python, чтобы научить управлять этими выводами. Сначала давайте импортируем соответствующие библиотеки и установим режим Boradcom, чтобы ссылаться на контакты, используя их широковещательные имена.
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) # set the mode to broadcomm GPIO.cleanup()
Чтобы использовать любой контакт GPIO, вы должны сначала объявить его входным или выходным контактом. Объявим контакт 17 выходным, а контакт 22 входным.
#choose the GPIO pin for output out = 17 # pin 11 # declare selected pin as output pin GPIO.setup(out, GPIO.OUT) #choose the GPIO pin for input input = 22 # pin15 # declare selected pin as input pin GPIO.setup(input, GPIO.IN)
После того, как вы объявили контакты входными/выходными, вы можете читать/записывать дату в/из этого контакта.
# Output a signal GPIO.output(out, GPIO.HIGH) # set a high signal GPIO.output(out, GPIO.LOW) # set a low signal # Receive a signal inp_signal = GPIO.input(input)
И вот как вы читаете/записываете сигнал на свои контакты GPIO. Теперь давайте воспользуемся тем, что мы только что узнали, для записи данных на выходной контакт и использования их для управления светодиодами. В следующем уроке я покажу вам пример того, как считывать данные с входного контакта и использовать их для считывания расстояния с датчика расстояния.
Сначала давайте взглянем на аппаратную настройку, которая вам потребуется. Вам понадобятся следующие предметы, кроме RaspberryPi:
- Макет
- Женские и мужские перемычки
- светодиоды
- 1 кОм резистор

Вы должны выполнить соединения, как показано на рис. 2. Мы собираемся использовать контакты 17 и 22 GPIO для отправки выходного сигнала. Подключите положительный конец светодиодов к контактам 17 и 22 GPIO, а другой конец подключите к резистору 1k. Подключите другой конец резистора к земле, чтобы замкнуть цепь. Обратите внимание, что вы можете использовать любые контакты GPIO, а не обязательно тот, который использовал я, а затем внести соответствующие изменения в свой код.
Ниже приведен код для мигания светодиодов поочередно:
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) # set the mode to broadcomm GPIO.cleanup() #choose the GPIO pin red = 17 # pin 11 yellow = 22 # pin15 # declare selected pins as output pins GPIO.setup(red, GPIO.OUT) GPIO.setup(yellow, GPIO.OUT) sleep_time = .2 for i in range(15): GPIO.output(red, GPIO.HIGH) GPIO.output(yellow, GPIO.LOW) time.sleep(sleep_time) GPIO.output(red, GPIO.LOW) GPIO.output(yellow, GPIO.HIGH) time.sleep(sleep_time) GPIO.cleanup()
Надеюсь, вам понравился урок. Пожалуйста, не стесняйтесь комментировать и задавать вопросы или вносить некоторые предложения. Большое спасибо Sentdex за его серию видеороликов о RaspberryPi, которые я использовал здесь в качестве основы. Проверьте его канал. Также я использовал следующий сайт для создания принципиальной схемы.