Raspberry PI (на русском)
2. GPIO
Аббревиатура GPIO с английского расшифровывается как: General Purpose Input/Output — интерфейс, который содержит Входы и Выходы общего назначения, к которым можно подключать разнообразные исполнительные устройства, датчики, дисплеи, контроллеры, разные модули и разную периферию.
NB! GPIO подключены напрямую к процессору, и неграмотное подключение может повредить сам процессор.
Raspberry Pi 3 не имеет аналоговых входов/выходов.
Особенности работы с GPIO
- Максимальный суммарный ток обоих выводов 3,3В равен 50 мА, напрямую можно подключать устройства только с током потребления меньше 50 мА.
- Максимальный суммарный ток обоих выводов 5В равен 300 мА.
- На выводы GPIO нельзя подавать напряжение выше 3,3В - можно спалить вход или весь процессор.
- Выводы 14 и 15 по умолчанию выполняют альтернативную функцию и являются выводами UART (RXD и TXD), поэтому при включении на них присутствует высокий уровень 3,3В.
- Все настраиваемые выводы GPIO (кроме SDA и SCL) по умолчанию являются входами и поэтому имеют высокое сопротивление
RPi.GPIO
В новом дистрибутиве Raspbian она уже установлена.
GPIO.BCM — это более низкий уровень и обращается напрямую к номерам каналов на процессоре
GPIO.setmode(GPIO.BOARD)
GPIO.setmode(GPIO.BCM)
Выбирается режим работы пинов (вход или выход):
GPIO.setup(channel, GPIO.IN)
GPIO.setup(channel, GPIO.OUT)
Осуществляют подтяжку вывода к 3,3 В или к земле:
GPIO.setup(channel,GPIO.IN, GPIO.PUD_UP)
GPIO.setup(channel,GPIO.IN, GPIO.PUD_DOWN)
Для выходов можно определить начальное положение: 0 или 1.
GPIO.setup(channel, GPIO.OUT, GPIO.LOW)
GPIO.setup(channel, GPIO.OUT, GPIO.HIGH)
Для того, чтобы прочитать вход, существует такая команда:
GPIO.input(channel)
Для того чтобы произвести запись на выход, есть такая команда:
GPIO.output(channel, state)
Программа выдаст ошибку при попытке настроить пин, состояние которого не было возвращено в исходное при помощи GPIO.cleanup().
GPIO.setwarnings(False) # Отключить предупреждения
GPIO.setwarnings(True) # Включить предупреждения