1.1按键实验
1.需要学习的知识:
1) Arduino 的输入口配置方法,配置函数的用法
通过pinMode()函数,可以将ADUINO的引脚配置(INPUT)输入模式
2) 搞懂什么是抖动
机械抖动: 按键按下时,电平的变化并不是马上到位,而是会有一个不稳定的状态过程,再进入电平稳定状态。
3)软件和硬件消抖的原理
硬件消抖是通过采用外加零件来消除干扰抖动杂脉冲波,通常采用电容滤波、单稳延时电路等等。
软件消抖是通过采用软件程序的方法来达到消除干扰抖动杂脉冲波,最常见的是软件采用延时再次检测的方法来消抖。
补充:
按键按下时的瞬间,它的两片触片不是“理想”地立即接触的,特别是按键开关用了一段时间后,触片有些氧化和老化,这一点,如果用示波器来观察,就能观察到按键接触时的脉冲变化中附带有许多抖动波。
另,无论采用硬件还是软件方法,消除抖动波只是它主要的功能,它还起到消除干扰的作用。
4)搞懂什么是上升沿、下降沿,同时学习一款 timegen 的软件来绘制高低电平图
数字电路中,数字电平从低电平(数字“0”)变为高电平(数字“1”)的那一瞬间(时刻)叫作上升沿。反之,叫做下降沿。
5) 搞懂 arduino 的逻辑 1 是多少电压,逻辑 0 是多少电压
1 2V-5V 0 0V -0.8V
6) 搞懂读取多个按键(矩阵键盘)的方法及原理
没有按键按下时,X0~X3是低电平,Y0~Y3是高电平。
某一个按键按下,其所在的行是高电平,列是低电平。
1、判断有无键被按下
方法是:将全部行线X0~X3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。
2、确定哪个键按下
方法是:在确认有键按下后,依次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平(其实就是屏蔽其他行的按键状态,只有当前检测行的按键状态有效);在确定某根行线位置为低电平后,再逐行检测各列线的电平状态,若某列为低(说明当前检测行有按键按下),则该列线与置为低电平的行线交叉处的按钮就是闭合的按键。
---------------------
来源:CSDN
原文:https://blog.csdn.net/nanfeibuyi/article/details/80469909
2.考核指标:
要求1:现场展示,按键A、按键B、按键C、按键D按下,通过串口向串口调试器发送对应的信息,具体如下表。 按键名 |
对应发送内容 |
按键A |
Hello world! |
按键B |
你好! |
按键C |
0x30 0x31 |
按键D |
Hello@talent.cn |
程序源码:
String A;
String B;
String C;
String D;
void setup() {
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
Serial.begin(9600);
}
void loop() {
A = "Hello world!";
B = "你好!";
C = "01";
D ="Hello@talent.cn";
if (!digitalRead(5)) {
delay(200);
Serial.print(String(A));
}
if (!digitalRead(6)) {
delay(200);
Serial.print(String(B));
}
if (!digitalRead(7)) {
delay(200);
Serial.print(String(C));
}
if (!digitalRead(8)) {
delay(200);
Serial.print(String(D));
}