本帖最后由 stm1024 于 2024-3-17 13:36 编辑
又到了广大人民群众喜闻乐见的点灯环节了。
先说点题外话。一般采用A系列控制器,一般对外设的侧重点不是很强,更多的是跑算法和应用,一般也就串口通讯,主要是使用以太网或者USB通讯,HDMI等显示。但是树莓派作为全能型选手表示我全都要,不光这些有,而且一般微控制器上的什么UART,I2C,SPI,CAN等,也是支持的。
先看看经典的40 PIN针脚定义,这么多代的更迭,40PIN定义基本上没有变化,甚至还形成了树莓派HAT(Hardware Attached on Top),虽然有消息表示树莓派5以后可能会支持HAT+,不过目前来看HAT应该还是可以使用的,以下是4的定义(5的没找到):
我们可以在终端中输入pinout,查看其针脚定义:
在以后万一出现了与文档不一致时,以这个命令显示的结果为准。
可以看到,针脚号和GPIO通道号,并不一致,例如,17号GPIO口,其针脚号为11。其中11是物理针脚,而17是逻辑针脚,在接线的时候需要连接11,但是在操控时,则需要控制17号通道。可以将LED的正极接在11号针脚上,然后将负极连接在9号针脚(GND)上,注意LED的电压范围,最好串联一个合适的电阻,避免LED被烧坏。
搞清除了硬件以后,再看看软件环境。目前树莓派5官方只给出只能只用GPIO ZERO库,该库是基于Python的,已被系统自带,所以可以放心使用。
我们可以先看看系统中安装的Python,在终端中输入python,显示如下:
可以看到使用的是Python3.11,次版本号多少并不太重要,重要的是主版本号是Python3,而不是Python2,输入quit()先退出再说。
打开编辑器Geany:
然后输入如下代码:
- from gpiozero import LED
- from time import sleep
- led = LED(17)
- while True:
- led.on()
- print("LED ON")
- sleep(1)
- led.off()
- print("LED OFF")
- sleep(1)
复制代码务必注意Python坑爹的缩进,保存为test.py,然后点击工具栏上的那个纸飞机,就可以运行了:
实测效果如下:
接下来,开发板就可以吃灰了() |