美文网首页
树莓派3 GPIO初体验

树莓派3 GPIO初体验

作者: 雨中星辰0 | 来源:发表于2022-02-19 18:43 被阅读0次

    树莓派3 GPIO初体验

    作者 时间
    雨中星辰 2022-02-19

    树莓派引脚概述

    树莓派引脚图:

    image-20220219163724986 rpi-pins-40-0

    led灯接线

    接线要注意亮点:

    1. LED的负极要接地。就是上图中GND引脚。

      image-20220219164526847
    2. LED的正极要接GPIO口,就是图示中GPIO.xx引脚。

      image-20220219164616187

    如果正负接反了,LED灯是不会亮的。

    我这里实验,正极接的是GPIO18.

    shell方式操控GPIO

    1. 使GPIO18从内核空间暴露到用户空间中(执行该操作之后,/sys/class/gpio目录下会增加一个gpio18文件夹。)

      sudo echo 18 > /sys/class/gpio/export
      
    2. 进入GOIO18目录

      cd /sys/class/gpio/gpio18
      
    3. 设置GPIO18为输出模式

      sudo echo out > direction
      
    4. 向value文件中输入1,GPIO输出高电平,LED点亮

      sudo echo 1 > value
      
    5. 向value文件中输入0,GPIO输出低电平,LED熄灭

      sudo echo 0 > value
      
    6. 实验完毕,注销GPIO18接口

      sudo echo 18 > /sys/class/gpio/unexport
      

    python交互命令行中操控GPIO

    1. 进入python交互式命令行中

      pi@raspberrypi:~/py $ python
      Python 3.9.2 (default, Mar 12 2021, 04:06:34) 
      [GCC 10.2.1 20210110] on linux
      Type "help", "copyright", "credits" or "license" for more information.
      
    2. 导入GPIO库,并设置别名

      >>> import RPi.GPIO as GPIO
      
    3. 设置BOARD编码方式,基于BCM

      >>> GPIO.setmode(GPIO.BCM)
      
    4. 设置输出模式(这里注意:因为我的led插的是GPIO18的引脚,所以为18,如果你选择了别的GPIO引脚,需要换成对应的引脚GPIO编号)

      GPIO.setup(18,GPIO.OUT)
      
    5. 将lED灯点亮(GPIO18输出高电平,LED点亮)

      GPIO.setup(18,GPIO.HIGHT)
      
    6. 将lED灯熄灭(GPIO18输出低电平,LED熄灭)

      GPIO.setup(18,GPIO.LOW)
      
    7. 实验完毕,进行清理

      GPIO.cleanup()
      
    8. 退出命令行

      Ctrl+D

    Python脚本方式控制GPIO

    1. 创建python脚本:vim led.py

    2. 脚本内容如下:

      import RPi.GPIO as GPIO
      import time
      
      # 设置编码
      GPIO.setmode(GPIO.BCM)
      # 输出模式
      GPIO.setup(18,GPIO.OUT)
      # 将GPIO18设置为高电平,使LED亮起
      GPIO.output(18,GPIO.HIGH)
      # 暂停一下,使常亮3秒
      time.sleep(3)
      # 将GPIO18设置为低电平,使LED熄灭
      GPIO.output(18,GPIO.LOW)
      # 暂停1秒,使led熄灭一秒
      time.sleep(1)
      # 再次使led亮起
      GPIO.output(18,GPIO.HIGH)
      # 暂停一下,使常亮3秒
      time.sleep(3)
      # 清理GPIO
      GPIO.cleanup()
      
      

    本文部分内容参考:https://blog.csdn.net/weixin_34567079/article/details/112185595

    相关文章

      网友评论

          本文标题:树莓派3 GPIO初体验

          本文链接:https://www.haomeiwen.com/subject/bupplrtx.html