我已经学会几个代码的写法了,那我这些写法是从哪里学的,或者说应该从哪里找到其他能用的代码呢。打开uPyCraft->Help->Tutorial Online
这个页面有MicroPython的基本语法和内置模块函数。
下面我要写一个按键控制开发板led点亮或者熄灭的例子
找到3.2.2 Pin相关的函数:
要想控制开发板,先要找到开发板引脚对应的引脚号
我这里选择用GPIO16,开发板编号为D0做按键引脚。
我想实现的功能是:D0接高电平(3V)led点亮;D0接低电平(GND)led熄灭
那么首先需要配置引脚id为16——这里注意,开发板引脚号和GPIO引脚并不是对应的,程序只认识GPIO的引脚号,我知道GPIO对应的实体引脚是D0就可以了。
mode模式为输入,pull输入方式为None无上下拉。代码如下:
from machine import Pin
led=Pin(2,Pin.OUT) #初始化LED引脚
button=Pin(16,Pin.IN,None) #初始化按键引脚
while 1: #一直循环下面的程序
if button.value()==1: #如果按键为高电平
led.value(0) #打开led
else: led.value(1) #关闭led
点击uPyCraft运行按钮,用导线连接D0和3V,led点亮,用导线连接D0和G,led熄灭。
我再试一下不同pull带来的不同效果
from machine import Pin
led=Pin(2,Pin.OUT) #初始化LED引脚
button = Pin(16, Pin.IN,Pin.PULL_UP) #初始化按键引脚
while 1: #一直循环下面的程序
if button.value()==1: #如果按键为高电平
led.value(0) #打开led
else: led.value(1) #关闭led
这个代码看似没有问题,但是运行会报错:
ValueError: Pin(16) doesn't support pull
错误的意思是这个引脚不能设置pull。之所以会这样是因为这个引脚有其他功能,看引脚图,GPIO16还有USER和WAKE。那么我换一个引脚,改成GPIO 05
button = Pin(5, Pin.IN,Pin.PULL_UP) #初始化按键引脚
这样运行就没有报错了。运行后我看到led已经亮了,这里我的D1引脚并没有连线。然后我吧D1连接到G,led熄灭,断开连接,led点亮。这里我就能理解PULL_UP上拉的意思了,就是芯片里面有一个电阻帮我把设置的引脚连接到高电平,在没有外部影响的情况下,这个引脚因为内部电阻置高电平。当这个引脚外部链接到GND的时候,等于内部电阻失效了,这个引脚就变成低电平了。