【雕爷学编程】Arduino动手做(90)---4X4矩阵薄膜键盘模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验九十:4x4按键模块 轻触开关4*4薄膜矩阵形键盘 16位单片机外扩外接控制键盘

矩阵键盘
矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。由于电路设计时需要更多的外部输入,单独的控制一个按键需要浪费很多的IO资源,所以就有了矩阵键盘,常用的矩阵键盘有4*4和8*8,其中用的最多的是4*4。

组成结构,在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

薄膜键盘
是薄膜开关范畴的一例,按键较多且排列整齐有序的薄膜开关,人们习惯称之为薄膜键盘。薄膜键盘是近年来国际流行的一种集装饰性与功能性为一体的一个操作系统。由面板、上电路、隔离层、下电路四部分组成。薄膜键盘外形美观、新颖,体积小、重量轻,密封性强。具有防潮、防尘、防油污、耐酸碱、抗震及使用寿命长等特点。广泛应用于,医疗仪器,计算机控制,数码机床,电子衡器,邮电通讯,复印机,电冰箱,微波炉,电风扇,洗衣机,电子游戏机等领域。

优点
1.外形美观、新颖;
2.体积小、厚度薄、重量轻、更有利于笔记本型电脑键盘向轻、薄、短、小和 高智能化方向发展。
3.防潮、防尘、防油污及有害气体,密封性强、耐酸碱抗震。
4.使用寿命长、耐弯折。

薄膜开关电原理图

按键识别方法

这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

一、行扫描法,又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法。

1、判断键盘中有无键按下 将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。

2、判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

二、高低电平翻转法

首先让P1口高四位为1,低四位为0。若有按键按下,则高四位中会有一个1翻转为0,低四位不会变,此时即可确定被按下的键的行位置。然后让P1口高四位为0,低四位为1。若有按键按下,则低四位中会有一个1翻转为0,高四位不会变,此时即可确定被按下的键的列位置。最后将上述两者进行或运算即可确定被按下的键的位置。

实际上,键盘、显示处理是很复杂的,它往往占到一个应用程序的大部份代码,可见其重要性,但说到,这种复杂并不来自于单片机的本身,而是来自于操作者的习惯等等问题,因此,在编写键盘处理程序之前,最好先把它从逻辑上理清,然后用适当的算法表示出来,最后再去写代码,这样,才能快速有效地写好代码。

柔性薄膜键盘
是薄膜键盘的典型形式。这类薄膜键盘之所以称为柔性,是因为该薄膜键盘的面膜层、隔离层、电路层全部由各种不同性质的软件薄膜所组成。柔性薄膜键盘的电路层,均采用电器性能良好的聚酯薄膜(PET)作为开关电路图形的载体。由于聚酯薄膜所具有性质的影响,使得该薄膜键盘具有良好的绝缘性、耐热性、抗折性和较高的回弹性。开关电路的图形,包括开关的联机及其引出线均采用低电阻,低温条件下固化的导电性涂料印刷而成。因此,整个薄膜键盘的组成,具有一定的柔软性,不仅适合于平面体上使用,还能与曲面体配合。柔性薄膜键盘引出线与开关体的本身是一体的,在制作群体开关的联机时,将其汇集于薄膜的某一处,并按设计指定的位置和标准的线距向外延伸,作为柔软的、可任意弯曲的、密封的引出导线与整机的后置电路相连。

平面立体薄膜键盘
一种使开关键体微微凸起,略高于面板,构成立体形状的薄膜键盘,称为立体键开关。立体键不仅能准确地给定键体的范围,提高辨认速度,使操作者的触觉比较敏感,同时还增进了产品外观的装饰效果. 立体键的制作,必须在面板的设计阶段就要作好安排,备有工艺孔,以便在模具压制时有精确的定位, 其立体凸起的高度一般不宜超过基材厚度的两倍。为美观产品的外观,凸起薄膜键盘的凸起可有多种变化。

模块参数
接触电阻为500
绝缘电阻100M
关键操作力150-200N
回弹时间1(ms)
寿命1亿(次)
工作温度60

1.电子特性:

额定电流:35V(DC),100mA,1W

接触电阻:10Ω~500Ω

(根据引线长度的不同而不同于所用材料的引线长度)

绝缘电阻:100MΩ100V

介电强度:250VRms(50~60Hz 1min)

电击抖动:<5ms

寿命:触觉类型:≥100万次

2.机械性能

工作压力:触感:170~397g(6~14oz)

开关行程:触摸式:0.6~1.5mm

3.环境参数

工作温度:-40至+80

储存温度:-40至+80

温度:从40,90%到95%,240小时

振动:20G,最大 (10~200Hz,Mil-SLD-202 M204。条件B)

/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

 实验九十:4x4按键模块 轻触开关4*4薄膜矩阵形键盘 16位单片机外扩外接控制键盘

*/



#include <Keypad.h>

const byte ROWS = 4;

const byte COLS = 4;



char keys[ROWS][COLS] = {

  {'1','2','3','A'},

  {'4','5','6','B'},

  {'7','8','9','C'},

  {'*','0','#','D'}

};

byte rowPins[ROWS] = {9, 8, 7, 6};

byte colPins[COLS] = {5, 4, 3, 2};

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );



void setup(){

  Serial.begin(9600);

}



void loop(){

  char key = keypad.getKey();

  if (key != NO_KEY){

  Serial.println(key);

  }

}

  实验串口返回情况

实验开源仿真编程(Linkboy V4.62)

实验开源图形编程(Mind+、Mixly、编玩边学)

实验场景图

原文地址:https://www.cnblogs.com/eagler8/p/15179162.html