本文主要是介绍【CanMV K230】按键测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【CanMV K230】按键测试
- 按键
- 测试例程
之前我分享了LED如何使用
今天我再来分享一下,按键如何使用。
B站视频链接
抖音链接
按键
首先还是打开官方文档
来看一下,按键如何操作
按键是最简单也最常见的输入设备,很多产品都离不开按键。
我们知道他是输入设备就行。
通过检测按键被按下后,改变LED(蓝灯)的亮灭状态
确认使用设备是板载按键,按键引脚21
注意官方备注——按键没按下时候输入高电平(1),按下时候输入低电平(0)。
这次我们先自己写,然后在分析代码
参考LED灯,先把按键引脚定义好。
from machine import Pin #调库
Key = Pin(id, mode, pull) # 定义按键> Id :21 Mode(输入输出模式):Pin.IN(输入)
>
> 输入设备一般使用上拉电阻(其他情况官方会标注)
此时我们就定义好了按键
from machine import Pinkey = Pin(21,Pin.IN, Pin.PULL_UP)
我们之前使用xx.value去配置LED灯的电平值。
KEY.value([X])
按键是输入设备,配置的输入模式,无需参数,获取当前引脚输入电平值。
KEY.value()
此时我们可以用print在串行终端打印一下
Print(KEY.value())
可以看到默认信号是1
我按下后信号变成0
按键基本都这样用。
我们现在看官方提供的说明。
按键被按下时候可能会发生抖动,抖动如下图,有可能造成误判,因此我们需要使用延时函数来进行消抖:
常用的方法就是当检测按键值为0时,延时一段时间,大约10ms,再判断按键引脚值仍然是0,是的话说明按键被按下。延时使用time模块,使用方法如下:
import timetime.sleep(1) # 睡眠1秒
time.sleep_ms(500) # 睡眠500毫秒
time.sleep_us(10) # 睡眠10微妙
start = time.ticks_ms() # 获取毫秒计时器开始值delta = time.ticks_diff(time.ticks_ms(), start) # 计算从上电开始到当前时间的差值
我们已经配置好了按键引脚,现在要实现
测试例程
当检测到按键被按下时候点亮LED蓝灯,松开时关闭LED蓝灯。
我们现在把官方文档直接站过来
'''
实验名称:按键
版本:v1.0
作者:01Studio
实验平台:01Studio CanMV K230
说明:通过按键改变LED的亮灭状态
'''from machine import Pin
from machine import FPIOA
import time#将GPIO52、GPIO21配置为普通GPIO模式
fpioa = FPIOA()
fpioa.set_function(52,FPIOA.GPIO52)
fpioa.set_function(21,FPIOA.GPIO21)LED=Pin(52,Pin.OUT) #构建LED对象,开始熄灭
KEY=Pin(21,Pin.IN,Pin.PULL_UP) #构建KEY对象state=0 #LED引脚状态while True:if KEY.value()==0: #按键被按下time.sleep_ms(10) #消除抖动if KEY.value()==0: #确认按键被按下state=not state #使用not语句而非~语句LED.value(state) #LED状态翻转print('KEY')while not KEY.value(): #检测按键是否松开pass
简单分析一下代码了。按照LED的经验。我们先把没用的删掉。
from machine import Pin
import timeLED=Pin(52,Pin.OUT) #构建LED对象,开始熄灭
KEY=Pin(21,Pin.IN,Pin.PULL_UP) #构建KEY对象state=0 #LED引脚状态while True:if KEY.value()==0: #按键被按下time.sleep_ms(10) #消除抖动if KEY.value()==0: #确认按键被按下state=not state #使用not语句而非~语句LED.value(state) #LED状态翻转# 我们一般写到这里就能完成按键控制LED ↑print('KEY')while not KEY.value(): #检测按键是否松开pass
我们先把key 写上运行代码。会发现我按一下 就会有一堆key 这就是所谓接触不良。
实现到开发板就是这个灯不灵敏。 While not里面处理的是把消除抖动前的信号都略过不执行。添加后在看效果。就很正常了,没有接触不良的情况了。
具体效果再视频4分49秒~5分04秒
这篇关于【CanMV K230】按键测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!