RPI.GPIO使用手册

RPI.GPIO教程

1. 导入模块

import RPi.GPIO as GPIO

通过下面的代码可以检测导入是否成功

try:
    import RPi.GPIO as GPIO
except RuntimeError:
    print("Error importing RPi.GPIO!  This is probably because you need superuser privileges.  You can achieve this by using 'sudo' to run your script")

基本操作

RPi.GPIO中有两种引脚的编号方式。第一个是使用电路板编号系统。这指的是在树莓派电路板上P1开头的。使用这个编号系统的优势是,您的硬件将总是工作,不管电路板是哪个版本的。你不需要重新修改代码。
第二个编号系统是BCM数字。这是一个低水平的工作方式,它指的是电路板引脚的位置号。电路板版本变化时脚本程序需要对应修改。

指定编号方式:

GPIO.setmode(GPIO.BOARD)
  # or
GPIO.setmode(GPIO.BCM)

查询使用的哪种编号方法:

mode = GPIO.getmode()
#输出: GPIO.BOARD, GPIO.BCM or None

3.设置通道

设为输入:

GPIO.setup(channel, GPIO.IN)
#chanel与使用的编号方式对应

设为输出:

GPIO.setup(channel, GPIO.OUT)
GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)

设置多个通道

chan_list = [11,12]    # add as many channels as you want!
GPIO.setup(chan_list, GPIO.OUT)

读取一个GPIO口的值

GPIO.input(channel)
#返回:0 / GPIO.LOW / False or 1 / GPIO.HIGH / True.

设置一个GPIO口的输出值

GPIO.output(channel, state)
#State 可以是 0 / GPIO.LOW / False or 1 / GPIO.HIGH / True.

设置多个通道的输出

chan_list = [11,12]           # also works with tuples
GPIO.output(chan_list, GPIO.LOW)   # sets all to GPIO.LOW
GPIO.output(chan_list, (GPIO.HIGH, GPIO.LOW))
# sets first HIGH and second LOW

清空

GPIO.cleanup()

如果想清理特定的通道

GPIO.cleanup(channel)
GPIO.cleanup( (channel1, channel2) )
GPIO.cleanup( [channel1, channel2] )

上拉或者下拉电阻

GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP)
  # or
GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

中断与边沿检测

为了避免您的程序在忙于处理其它的事物时而错过了您按下按钮的操作,这里有两种方法可以解决:

wait_for_edge() 函数
event_detected() 函数
在检测到边缘时执行线程回调函数

PWM

创建PWM 实例

p = GPIO.PWM(channel, frequency)

启动PWM

p.start(dc)   # where dc is the duty cycle (0.0 <= dc <= 100.0)

改变频率

p.ChangeFrequency(freq)   # where freq is the new frequency in Hz

改变占空比

p.ChangeDutyCycle(dc)  # where 0.0 <= dc <= 100.0

停止PWM

p.stop()
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值