通过python控制Pi的GPIO

python GPIO集成库

我大概了解了下树莓派的几种库,比较常见的有python GPIO,BCM2835 C Library还有wiringPi,其实对于我们自动化的学生来说最熟悉的应该就是wiringPi。Pi的官方资料中推荐的是python GPIO,而且相较于C,python更加简洁易读。 ## 让LED闪烁 在这个实验中,我只是简单的控制了一个GPIO口,输出一个方波信号,占空比50%,这样就可以让一个LED小灯闪烁。

  • 连接实验电路 在单片机学习中,掌握好各个引脚的功能是非常重要的,要根据电路的连接来写相关的控制程序。在Pi中我们可以使用GPIO readall来列出所有的引脚,便于我们下一步操作。 引脚图
    然后将LED,电阻串联起来,LED正端接GPIO口,负接地。记得用杜邦线,拿着导线乱碰很可能导致引脚短路,损坏Pi。
  • Python代码部分 新建LED.py文件,加入以下代码:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(7,GPIO.OUT)
    for i in range(0,50):
    blink(7)
    GPIO.cleanup()

然后执行下试试吧~ 点亮的LED 图是随手拍的,桌上的电阻都有点大了,亮起来不明显。建议大家还是串上一个阻值合适的电阻,GPIO输出的电压幅值好像是1V。当然大家就不要作死把发光二极管直接接在3.3V和GND之间了,不要问我是怎么知道的+_+,我炸了一个。
可以通过:

pi@raspberrypi:~/Desktop $ sudo cat /sys/kernel/debug/gpio
GPIOs 0-53, platform/3f200000.gpio, pinctrl-bcm2835:
 gpio-35  (?                   ) in  hi
 gpio-47  (?                   ) out lo

来查看引脚状态。

最后说两句题外话吧: 其实系里还是挺关心我们的,想要什么小零件基本都能提供。模电老师还给我们每个人准备了一个小器件包,里面有面包版,各种电容电阻什么的。虽然都不是什么精贵的东西,但看到宿舍里有各种各样的小元件和各种工具,总有一种迷之幸福感。万用表好像也可以向系里申请了,还是希望系里越来越好吧(≧∇≦)