Использование GPIO на Raspberry Pi, чтобы помигать светодиодом (python библиотека RPi.GPIO)

Добавлено 28 октября 2015 в 08:00

Одна из немногих вещей, которые отделяют Raspberry Pi от других одноплатных компьютеров, – это возможность использовать выводы GPIO (входы/выходы общего назначения), на которых может быть установлен высокий или низкий логический уровень для управления любыми внешними устройствами.

В данной статье используются вывод 9 (GND) и вывод 11 (GPIO17). Светодиод был подключен через токоограничивающий резистор между выводами 9 и 11.

Назначение выводов GPIO Raspberry Pi (все модели)
Назначение выводов GPIO Raspberry Pi (все модели)

Программная реализация

Самый быстрый способ, чтобы начать, это использовать Python, который предустановлен на все образы.

Скачайте библиотеку RPi.GPIO и скопируйте архив .tar.gz на Raspberry Pi, с установленным Raspbian. Откройте терминал и перейдите к каталогу с библиотекой RPi.GPIO. Затем наберите $ sudo python setup.py install, чтобы установить модуль.

Скачать RPi.GPIO 0.5.11

Операционная система является мультизадачной и не является системой реального времени, в отличие от Arduino, поэтому возможен джиттер, зависящий от приоритета CPU.

Ниже приведен простой код на основе библиотеки RPi.GPIO, который включает и выключает светодиод с задержкой в 1 секунду. Светодиод моргнет 50 раз.

import RPi.GPIO as GPIO  
import time  

# функция моргания 
def blink(pin):  
    GPIO.output(pin,GPIO.HIGH)  
    time.sleep(1)  
    GPIO.output(pin,GPIO.LOW)  
    time.sleep(1)  
    return  

# использовать номера выводов платы Raspberry Pi  
GPIO.setmode(GPIO.BOARD)  

# настроить GPIO на выход  
GPIO.setup(11, GPIO.OUT)  

# моргнуть GPIO17 50 раз  
for i in range(0,50):  
    blink(11)

GPIO.cleanup()  

светодиод

Теги

GPIOPythonRaspberry Pi

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.