请选择 进入手机版 | 继续访问电脑版
搜索
热搜: ROHM 模拟 车载
查看: 2371|回复: 6

【R课堂】通过RPi.GPIO Python库使用Raspberry Pi GPIO引脚

  [复制链接]
回帖奖励 470 ROHM金币 回复本帖可获得 5 ROHM金币奖励! 每人限 1 次

该用户从未签到

4221

主题

5060

帖子

11

精华

管理员

最后登录
2024-3-29
发表于 2022-9-9 12:52:57 | 显示全部楼层 |阅读模式
这篇文章来源于DevicePlus.com英语网站的翻译稿。在2016年推出GPIO Zero之前,新用户通常使用另一个Python模块(RPi.GPIO)来使用GPIO引脚
使用RPi.GPIO需要学习更多的相关知识,但是事实证明花费这些精力是值得的。

为什么不直接使用GPIO Zero?
GPIO Zero并不是作为RPi.GPIO的替代品而创建的。它其实构建在RPi.GPIO之上,旨在帮助初学者能够尽可能轻松地使用RPi.GPIO。
通过直接使用RPi.GPIO,您可以更好地了解内部的运行操作,并且为之后的项目开发出更精细的控制功能。
通过GPIO Zero的API您可以对上拉和下拉电阻、高态动作和低态动作引脚等进行修改。但是如果您过于频繁的使用它,那么就失去GPIO在简易性方面的优势了。

使用RPi.GPIO的另一个原因是骇客和制造商们分享了许多使用了RPi.GPIO的很棒的项目。一旦您掌握了这个模块,就意味着这个领域的大门将会向您敞开!
也许有一天您会想使用诸如C或C++这样的语言。这些语言更高级一些,但是会提供更多的控制功能以及使硬件的使用更加高效的功能。使用RPi.GPIO无法让您直接实现这个目的,但是它可以帮助您朝这个方向迈进。
目前不用担心会消耗过多CPU周期。每个Raspberry Pi的处理能力都远远超过本项目所需。镜像:Raspberry Pi。
导入RPi.GPIO库
导入RPi.GPIO模块的语法是:
import RPi.GPIO as GPIO
官方文档和大多数已发布的项目都遵循该语法。如果您也使用该语句,可以直接借用他们的代码。
RPi.GPIO 可让您选择引脚编号模式
有两种对引脚进行编号的方法。您可以通过它们在GPIO接头中的放置位置来描述这些引脚,这种方法称为“板编号”。
您也可以通过它们连接到Raspberry Pi核心中Broadcom芯片的顺序来对其进行描述。如果您觉得GPIO引脚编号与其在接头中的位置无关,可以使用该方法。
您可以使用RPi.GPIO’s setmode函数来对这两种编号系统进行选择:
GPIO.setmode(GPIO.BOARD)
GPIO.setmode(GPIO.BCM)
如果在设置模式之前就分配引脚,那么Python会返回错误信息。
我个人更喜欢Broadcom编号模式。因为在这种模式下,哪些引脚是GPIO、接地或电源会更清晰。我还使用了GPIO扩展板来构建面包板原型,并且在该板上根据GPIO编号对每个引脚进行标记。
有人可能觉得板编号模式更容易一些。如果该模式适用于您的项目,那也很好!您可以自行选择。
在本文的剩余部分,我们将会使用Broadcom编号模式。
如果您使用过解释器,并且忘记了设置的是哪种模式,请使用以下指令:
GPIO.getmode()
设置及使用引脚
设置编号模式后,使用setup函数来将引脚分配为输入或输出引脚:
GPIO.setup(11, GPIO.OUT)
GPIO.setup(12, GPIO.IN)
对于输入引脚,您通常需要设置一个上拉或下拉电阻来防止浮动。您可以用以下方式来设置这些电阻:
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
要读取输入引脚的当前状态,请使用:
GPIO.input(12)
您可以使用output函数来将输出引脚设置为高电平或低电平,如下所示:
GPIO.output(11, True)
GPIO.output(11, False)
为引脚命名
如果您将引脚编号分配给描述性命名的变量,您的代码将更具可读性,如下所示:
redLED = 11
button = 12
GPIO.setup(redLED, GPIO.OUT)
GPIO.setup(button, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.output(redLED, True)
GPIO.input(button)
用这种代码可以更清楚地显示所执行的操作,不是吗?
您可能觉得即使不使用这些实用标签,项目也会进行得很容易,但是最好养成这种习惯。当您需要构建更复杂的项目时,以及暂时中止正在进行的项目时,或者其他人查看您的代码的时候,这个习惯会给您带来很大的便利。
完成后清除
如果您保留了对这些引脚的分配设置,很容易造成意外短路从而烧坏电路板。
当脚本运行结束或者您退出解释器时,GPIO Zero会自动进行重置。在RPi.GPIO中,我们使用以下函数:

有奖问答:GPIO.cleanup()这个函数有什么功能?只会怎么样?
Tips:点击阅读原文,获得答案
请规范答题,连续答错将无法获得奖励哦~

回复

使用道具 举报

该用户从未签到

205

主题

1万

帖子

0

精华

论坛元老

最后登录
2023-6-10
发表于 2022-9-9 21:22:15 | 显示全部楼层

回帖奖励 +5 ROHM金币

此帖仅作者可见

使用道具 举报

该用户从未签到

1

主题

3696

帖子

0

精华

论坛元老

最后登录
2024-3-29
发表于 2022-9-9 22:06:00 | 显示全部楼层

回帖奖励 +5 ROHM金币

此帖仅作者可见

使用道具 举报

  • TA的每日心情
    开心
    2022-8-31 10:36
  • 签到天数: 1 天

    [LV.1]初来乍到

    8

    主题

    6374

    帖子

    0

    精华

    论坛元老

    最后登录
    2024-3-29
    发表于 2022-9-10 10:47:53 | 显示全部楼层

    回帖奖励 +5 ROHM金币

    此帖仅作者可见

    使用道具 举报

    该用户从未签到

    3

    主题

    3871

    帖子

    0

    精华

    论坛元老

    最后登录
    2024-3-29
    发表于 2022-9-11 12:06:48 | 显示全部楼层

    回帖奖励 +5 ROHM金币

    此帖仅作者可见

    使用道具 举报

    该用户从未签到

    2384

    主题

    9828

    帖子

    0

    精华

    论坛元老

    最后登录
    2023-9-26
    发表于 2022-9-16 18:10:48 | 显示全部楼层

    回帖奖励 +5 ROHM金币

    此帖仅作者可见

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-9-12 09:26
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    2268

    帖子

    0

    精华

    金牌会员

    最后登录
    2024-3-28
    发表于 2022-9-16 21:20:49 | 显示全部楼层

    回帖奖励 +5 ROHM金币

    此帖仅作者可见

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    Archiver|手机版|小黑屋|罗姆半导体技术社区

    GMT+8, 2024-3-29 20:50 , Processed in 0.120631 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表