Работа с GPIO из Python намного облегчает управление пинами нежели работа из командной строки.
Для работы с GPIO из Python была создана библиотека RPi.GPIO, для её импорта используется строка кода:
import RPi.GPIO as GPIO //импорт библиотеки RPi.GPIО
Для инициализации пинов GPIO используется строка кода:
Для настройки пина на вход или выход требуется указать:
GPIO.setup(pin, GPIO.OUT) //для настройки пина как выход, где pin это номер пина
GPIO.setup(pin, GPIO.IN) //для настройки пина как вход, где pin это номер пина
Для того чтобы узнать номер пина можно использовать эту картинку:
Для того чтобы изменить состояние выхода используется:
GPIO.output(pin, GPIO.HIGH) //для подачи высокого сигнала на пин, где pin это номер пина
GPIO.output(pin, GPIO.LOW) //для подачи низкого сигнала на пин, где pin это номер пина
Для того чтобы считать состояние выхода используется:
GPIO.input(pin) //для чтения состояния с пина, где pin это номер пина. Возвращает True если получен высокий сигнал и False если низкий
[DANGEROUS]
Raspberry Pi работает с логикой в 3.3v, подключив напряжение свыше 3.3v вы можете повредить вашу Raspberry Pi[/DANGEROUS]
Примеры
Для начала сделаем стандартный Blink. Соберите схему, создайте новый файл Blink.py и скопируйте код:
Blink
import RPi.GPIO as GPIO //импорт библиотеки для работы с GPIO
import time //библиотека для сна(ожидания)
GPIO.setmod(GPIO.BCM) //инициализируем порты
GPIO.setup(25, GPIO.OUT) //настраиваем 25 пин как выход
while True: //бесконечный цикл цикл
GPIO.output(25, GPIO.HIGH) //подаем на 25 пин высокий сигнал
time.sleep(1) //ждем 1 секунду пока горит светодиод
GPIO.output(25, GPIO.HIGH) //подаем на 25 пин низкий сигнал
time.sleep(1) //ждем 1 секунду чтобы начать сначала
Запустите скрипт командой
sudo python Blink.py
ClickCounter
Далее попробуем подключить кнопку.Соберите схему, создайте новый файл ClickCounter.py и скопируйте код:
import RPi.GPIO as GPIO //импорт библиотеки для работы с GPIO
import time //библиотека для сна(ожидания)
GPIO.setmod(GPIO.BCM) //инициализируем порты
GPIO.setup(24, GPIO.OUT) //настраиваем 25 пин как вход
count = 0 //присваиваем переменной count значение 0 (будет содержать количество кликов)
while True: //бесконечный цикл цикл
inputValue = GPIO.input(24); //присваиваем переменной inputValue значение считанное с пина 24(содержит True или False)
if (inputValue == True): //если кнопка нажата...
count = count + 1 //прибавляем 1 к переменной count
print("Button pressed " + str(count)".") //пишем количество кликов
time.sleep(.3) //ждем 0.3 секунды чтобы не посчитать один клик как несколько
time.sleep(.01) //ждем 0.01 чтобы начать сначала
Запустите скрипт командой
sudo python ClickCounter.py