K210——按键流水灯

K210


在这里插入图片描述

前言

之前学K210也只是学习了K210的目标检查,并没有将这块开发板进行系统的学习,学第一个开发板就要从点灯开始啊

一、原理图

pyAI-K210 上总共有 3 个 LED,位于 2 个按键中间,三色一体 LED。分别是LED_B(蓝色)、LED_G(红色)、LED_R(红色)。
在这里插入图片描述
K210 为外部 IO 和内部 IO,其片上外设(比如 GPIO、I2C 等)对应的引脚是可以任意设置的,而传统大部分 MCU 片上外设和引脚对应关系已经固定了, 只有部分引脚可以复用, 相比之下 K210 自由度更大。

二、相关函数

编程使用 GPIO 的时候需要注册一下硬件 IO 和 K210 内部 IO 的对应关系。注册方式使用 fpioa_manager:简称 fm

1.fm.register(pin,function,force=False)

在这里插入图片描述

#将将LED外部IO注册到内部GPIO,K210引脚支持任意配置
fm.register(12, fm.fpioa.GPIO0)
fm.register(13, fm.fpioa.GPIO1)
fm.register(14, fm.fpioa.GPIO2)

2.GPIO(ID,MODE,PULL,VALUE)

在这里插入图片描述
在这里插入图片描述

#构建LED对象,并初始化输出高电平,关闭LED
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT,value=1)
LED_G = GPIO(GPIO.GPIO1, GPIO.OUT,value=1)
LED_R = GPIO(GPIO.GPIO2, GPIO.OUT,value=1)

在这里插入图片描述

三、实验代码

在这里插入图片描述

from Maix import GPIO
from fpioa_manager import fm
#将蓝灯引脚 IO12 配置到 GPIO0,K210 引脚支持任意配置
fm.register(12, fm.fpioa.GPIO0,force=True)
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT) #构建 LED 对象
LED_B.value(0) #点亮LED

在这里插入图片描述

然后实现他的流水灯,这里还有一个函数utime是在python中延迟用的
在这里插入图片描述

from Maix import GPIO
from fpioa_manager import fm
import utime

#将将LED外部IO注册到内部GPIO,K210引脚支持任意配置
fm.register(12, fm.fpioa.GPIO0)
fm.register(13, fm.fpioa.GPIO1)
fm.register(14, fm.fpioa.GPIO2)

#构建LED对象,并初始化输出高电平,关闭LED
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT,value=1)
LED_G = GPIO(GPIO.GPIO1, GPIO.OUT,value=1)
LED_R = GPIO(GPIO.GPIO2, GPIO.OUT,value=1)

#定义数组方便循环语句调用
LED=[LED_B, LED_G, LED_R]

while True:

    for i in range(0,3):
        LED[i].value(0) #点亮LED
        utime.sleep(1)
        LED[i].value(1) #关闭LED

在这里插入图片描述

四、按键

按键和灯其实是一样的,就不一一介绍了,先看原理图
在这里插入图片描述
设置模式的时候设置输入就可以了

KEY = GPIO(GPIO.GPIO1, GPIO.IN)
from Maix import GPIO
from fpioa_manager import fm

#注册IO,蓝灯-->IO12,KEY-->IO16
fm.register(12, fm.fpioa.GPIO0)
fm.register(16, fm.fpioa.GPIO1)

#初始化IO
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT)
KEY = GPIO(GPIO.GPIO1, GPIO.IN)

while True:

    if KEY.value()==0: #按键被按下接地
        LED_B.value(0) #点亮LED_B,蓝灯
    else:
        LED_B.value(1) #熄灭LED

在这里插入图片描述

总结

GPIO 是非常通用的功能,学会了 GPIO,就可以把开发板所有的引脚为自己所用,灵活性很强。

猜你喜欢

转载自blog.csdn.net/qq_51963216/article/details/123945064