raspberryWithPython

树莓派gpio接口操作

  1. 基础知识介绍

  General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,人们利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。(摘自百度)
  树莓派gpio接口示意图树莓派针脚图图片来源

  1. 使用python操作gpio接口
    ##安装python gpio库
    1
    2
    3
    4
    5
    6
    7
    mkdir gpio
    cd gpio
    wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.7.tar.gz
    #或者到这里下载最新版本:https://pypi.python.org/pypi/RPi.GPIO
    tar xvzf RPi.GPIO-*.tar.gz
    cd RPi.GPIO-*/
    sudo python setup.py install

安装的时候出现错误:

1
source/py_gpio.c:23:20: fatal error: Python.h: No such file or directory

缺少Python.h文件,没安装python编译环境:

1
sudo apt-get install python-dev

再次安装:

1
sudo python setup.py install

点亮led灯

先测试下输出,新建个led.py文件:

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
while True:
GPIO.output(11,True)
time.sleep(1)
GPIO.output(11,False)
time.sleep(1)

  注意: 这里使用GPIO.BOARD模式,所以对于引脚号的排序,是按26个pin的顺序,不是gpio1这样的.也就是说pin1就是板子上的3V3. 把led的负极接到板子上的pin11.正极接一个3K3的电阻,在接到3V3上,防止烧坏. 特别注意python的缩进.

终端下运行:

1
sudo python led.py

如果LED出现一闪一闪就表示成功了.