Работа с GPIO на Raspberry Pi в Python

  • Просмотры Просмотры: 344
  • Последнее обновление Последнее обновление:
  • %D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_gpio_%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0...png


    Работа с GPIO из Python намного облегчает управление пинами нежели работа из командной строки.
    Для работы с GPIO из Python была создана библиотека RPi.GPIO, для её импорта используется строка кода:
    Python:

    import RPi.GPIO as GPIO //импорт библиотеки RPi.GPIО
    Для инициализации пинов GPIO используется строка кода:
    Python:

    GPIO.setmode(GPIO.BCM)
    Для настройки пина на вход или выход требуется указать:
    Python:

    GPIO.setup(pin, GPIO.OUT) //для настройки пина как выход, где pin это номер пина
    GPIO.setup(pin, GPIO.IN) //для настройки пина как вход, где pin это номер пина
    Для того чтобы узнать номер пина можно использовать эту картинку:
    gpio40.jpg

    Для того чтобы изменить состояние выхода используется:
    Python:

    GPIO.output(pin, GPIO.HIGH) //для подачи высокого сигнала на пин, где pin это номер пина
    GPIO.output(pin, GPIO.LOW) //для подачи низкого сигнала на пин, где pin это номер пина
    Для того чтобы считать состояние выхода используется:
    Python:

    GPIO.input(pin) //для чтения состояния с пина, где pin это номер пина. Возвращает True если получен высокий сигнал и False если низкий
    Raspberry Pi работает с логикой в 3.3v, подключив напряжение свыше 3.3v вы можете повредить вашу Raspberry Pi

    Примеры
    Для начала сделаем стандартный Blink. Соберите схему, создайте новый файл Blink.py и скопируйте код:
    raspberry_pi_led.png

    Blink
    Python:

    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 и скопируйте код:
    raspberry_pi_button.png

    Python:

    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
  • Загрузка…
Сверху