香蕉派M3 GPIO点亮LED (中): 点亮LED

in cn •  5 years ago 

昨天的帖子中,我们已经介绍了如何安装香蕉派版本的RPI.GPIO,今天我们继续来看看如何使用RPI.GPIO点亮LED。

在点亮LED之前,我们先来看看如何接线,在接线之前,我们需要知道哪跟针可以用来做输出,比如如果我错误的选用电源针或者接地的针,那是万万不可以做为输出的。

M3 GPIO

还好香蕉派官网的页面里提供了香蕉派M3的GPIO的图示:

然而新问题来了,这个图示是40针没错,香蕉派M3上也是40针没错,但是是从哪个方向数起呢?

这时需要我常用的一副M3实物图立功啦,看到下图左上部分天线接口旁边的一个小三角号图标吗?哪个指向的针脚就是GPIO图示中的1。

LED连接

知道了怎么数之后,上边GPIO示意图中的绿色针脚我们就可以随便使用了。当然也不是其它颜色的针脚不可以作为输出,但是一般它们可能会有一些特定的用途比如用作UART或者SPI之类的,另外就是电源和地是不用用做输入输出的。

为了方便我们选择11针作为输出,之所以选择这个,是因为它旁边的9号针就是地,方便接线。我们将一只LED与一只220欧姆的电阻串联(之所以串联电阻是避免电流过大烧毁LED),并接到11号针以及9号针之间,注意LED的正极(长的脚)接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, GPIO.HIGH)
        time.sleep(1)
        GPIO.output(11, GPIO.LOW)
        time.sleep(1)

试着执行一下:

BPI: gpioLayout(25)
BPI: name[bpi-m3] gpioLayout(25)
enter to sunxi_setup
Traceback (most recent call last):
File "./test2.py", line 7, in
GPIO.setup(11, GPIO.OUT)
RuntimeError: No access to /dev/mem. Try running as root!

啥,竟然要root权限?好吧,或许需要root权限才更合理,否则随便哪个用户都可以控制岂不是乱套了。

sudo 与virtualenv的问题

因为我使用的是virtualenv,所以直接sudo python xxx的方式会调用系统python,导致找不到香蕉派版本的RPI.GPIO。

所以需要这样执行sudo指令:

sudo venv/bin/python test2.py

执行后输出类似如下内容:

也就是说会在11针交替(间隔一秒)输出高低电平,这时再去看我们的LED,是不是一闪一闪的啦?

相关链接

相关资料


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
  ·  5 years ago 

恭喜你!您的这篇文章入选 @justyy 今日 (2019-06-23) 榜单 【优秀的文章】, 回复本条评论24小时内领赏,点赞本评论将支持 @dailychina 并增加将来您的奖赏。
@justyy 是CN区的见证人,请支持他,给他投票,感谢!

Congratulations! This post has been selected by @justyy as today's (2019-06-23) 【Good Posts】, Steem On! Reply to this message in 24 hours to get rewards. Upvote this comment to support the @dailychina and increase your future rewards! ^_^

SteemIt 工具、API接口、机器人和教程
SteemIt Tools, Bots, APIs and Tutorial
*Join cnsteem Discord channel: *https://discord.gg/SnNaaYS

thx

Thank you so much for participating in the Partiko Delegation Plan Round 1! We really appreciate your support! As part of the delegation benefits, we just gave you a 3.00% upvote! Together, let’s change the world!