查看: 954|回复: 17

[经验] 【Arduino】108种传感器系列实验(94)---4X4矩阵薄膜键盘模块

[复制链接]
发表于 2019-8-11 18:03 | 显示全部楼层 |阅读模式
本帖最后由 eagler8 于 2019-8-30 08:57 编辑

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

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

实验九十四: 4X4矩阵形薄膜键盘模块轻触开关模组
0.jpg









 楼主| 发表于 2019-8-13 18:01 | 显示全部楼层
本帖最后由 eagler8 于 2019-8-19 12:52 编辑

Arduino 系列传感器和模块实验目录清单:
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
https://www.arduino.cn/thread-88696-1-1.html
实验一:干簧管传感器模块
https://www.arduino.cn/thread-86350-1-1.html
实验二:光敏电阻传感器模块
https://www.arduino.cn/thread-86393-1-1.html
实验三:微波雷达感应开关模块
https://www.arduino.cn/thread-86397-1-1.html
实验四:振动传感器模块
https://www.arduino.cn/thread-86512-1-1.html
实验五:热敏电阻温度传感器模块
https://www.arduino.cn/thread-86520-1-1.html
实验六:KY-038高感度声音传感器模块
https://www.arduino.cn/thread-86576-1-1.html
实验七:旋转电位器模块
https://www.arduino.cn/thread-86866-1-1.html
实验八:湿度传感器模块
https://www.arduino.cn/thread-87993-1-1.html
实验九:火焰(红外线)传感器模块
https://www.arduino.cn/thread-88283-1-1.html
实验十:敲击传感器模块KY-031
https://www.arduino.cn/thread-88401-1-1.html
实验十一:金属触摸传感器模块KY-36
https://www.arduino.cn/thread-88422-1-1.html
实验十二:开关霍尔磁力传感器模块
https://www.arduino.cn/thread-88461-1-1.html
实验十三:触摸传感器模块
https://www.arduino.cn/thread-88523-1-1.html
实验十四:倾斜传感器模块(角度开关)
https://www.arduino.cn/thread-88530-1-1.html
实验十五:手指侦测心跳传感器模块KY-039
https://www.arduino.cn/thread-88557-1-1.html
实验十六:电容式数字触摸传感器模块(TTP223 )
https://www.arduino.cn/thread-88567-1-1.html
实验十七:HC-SR312微型热释电传感器模块
https://www.arduino.cn/thread-88578-1-1.html
实验十八:0.25W太阳能滴胶板传感器模块(45X45毫米)
https://www.arduino.cn/thread-88669-1-1.html
实验十九:常闭型SW-420震动开关传感器模块
https://www.arduino.cn/thread-88672-1-1.html
实验二十:水银开关传感器模块(KY-017)
https://www.arduino.cn/thread-88787-1-1.html
实验二十一:激光头传感器模块(KY-008)
https://www.arduino.cn/thread-88842-1-1.html
实验二十二:MAX7219点阵显示模块(8X8 LED共阴)
https://www.arduino.cn/thread-88851-1-1.html
实验二十三:NE555频率可调脉冲发生器模块(方波简版)
https://www.arduino.cn/thread-88867-1-1.html
实验二十四:水位水滴传感器模块(Water Sensor)
https://www.arduino.cn/thread-88886-1-1.html
实验二十五:MQ-2气敏式烟雾传感器模块(甲烷等)
https://www.arduino.cn/thread-88906-1-1.html
实验二十六:4X4矩阵键盘模块(轻触式按键)
https://www.arduino.cn/thread-88966-1-1.html
实验二十七:GY-BMP280-3.3 高精度大气压强传感器模块
https://www.arduino.cn/thread-89010-1-1.html
实验二十八:三色5050 RGB全彩LED模块 KY-009
https://www.arduino.cn/thread-89022-1-1.html
实验二十九:DS1302实时时钟模块(带电池  掉电走时)
https://www.arduino.cn/thread-89070-1-1.html
实验三十:光敏二极管传感器模块(英语photodiode )
https://www.arduino.cn/thread-89129-1-1.html
实验三十一:ISD1820录音语音模块(8-20秒)
https://www.arduino.cn/thread-89154-1-1.html
实验三十二:雨滴传感器模块(雨水/雨量/叶面湿度)
https://www.arduino.cn/thread-89184-1-1.html
实验三十三:ESP8266串口WIFI收发无线模块 (ESP-01S)
https://www.arduino.cn/thread-89245-1-1.html
实验三十四:三色LED交通灯模块(红绿黄灯)
https://www.arduino.cn/thread-89273-1-1.html
实验三十五:模拟量声音传感器模块(4线制)
https://www.arduino.cn/thread-89289-1-1.html
实验三十六:WS2812B智能外控集成LED四位彩灯模块
https://www.arduino.cn/thread-89297-1-1.html
实验三十七:MQ-3酒精乙醇传感器模块
https://www.arduino.cn/thread-89300-1-1.html
实验三十八:joystick双轴XY按键摇杆模块(游戏控制杆)
https://www.arduino.cn/thread-89365-1-1.html
实验三十九:DS18B20单总线数字温度传感器模块
https://www.arduino.cn/thread-89368-1-1.html
实验四十:360度旋转增量编码器模块(KY-040)
https://www.arduino.cn/thread-89427-1-1.html
实验四十一:IS0203激光接收管传感器模块
https://www.arduino.cn/thread-89428-1-1.html
实验四十二:DSM501A韩国PM2.5灰尘粉尘传感器模块
https://www.arduino.cn/thread-89441-1-1.html
实验四十三:5V低电平触发单路继电器模块
https://www.arduino.cn/thread-89445-1-1.html
实验四十四:类比霍尔磁性传感器 KY-035(模拟量)
https://www.arduino.cn/thread-89464-1-1.html
实验四十五:红外避障传感器模块(光电接近开关)
https://www.arduino.cn/thread-89473-1-1.html
实验四十六:350Ω高精度电阻式应变片传感器 (BF350)
https://www.arduino.cn/thread-89474-1-1.html
实验四十七:七段LED数码管模块(共阴/共阳)
https://www.arduino.cn/thread-89475-1-1.html
实验四十八:GY-291三轴重力加速度模块 (IIC/SPI传输)
https://www.arduino.cn/thread-89567-1-2.html
实验四十九:有源蜂鸣器报警器发声模块(低电平触发)
https://www.arduino.cn/thread-89568-1-2.html
实验五十:W25Q64 FLASH外扩存储模块 (SPI接口 )
https://www.arduino.cn/thread-89570-1-2.html
实验五十一:自锁点动触摸按键传感器模块(TTP223芯片)
https://www.arduino.cn/thread-89721-1-1.html
实验五十二:SPI接口Micro SD卡模块(带电平转换芯片)
https://www.arduino.cn/thread-89729-1-1.html
实验五十三: 土壤湿度水分传感器模块(电阻式)
https://www.arduino.cn/thread-89734-1-1.html
实验五十四: 大按键点动轻触开关模块(高电平输出)
https://www.arduino.cn/thread-89785-1-1.html
实验五十五:DHT11 温湿度传感器(数字型单总线通信)
https://www.arduino.cn/thread-89786-1-1.html
实验五十六: 8路LED流水的灯跑马灯模块SUNLEPHANT
https://www.arduino.cn/thread-89832-1-1.html
实验五十七: 四档频率占空比可调矩形波信号发生器(NE555)
https://www.arduino.cn/thread-89868-1-1.html
实验五十八: HC-SR04超声波测距传感器模块(通用款)
https://www.arduino.cn/thread-89869-1-1.html
实验五十九: RS232转TTL2代串口模块刷机板(MAX3232)
https://www.arduino.cn/thread-89895-1-1.html
实验六十:ATTINY85 Digispark kickstarter 微型usb开发板
https://www.arduino.cn/thread-89898-1-1.html
实验六十一: 直条8位 WS2812B 5050 RGB LED全彩模块
https://www.arduino.cn/thread-90147-1-1.html
实验六十二:电压检测模块 Voltage Sensor 电压传感器
https://www.arduino.cn/thread-90149-1-1.html
实验六十三: 1排4键薄膜开关 Arduino扩展键盘模块控制面板
https://www.arduino.cn/thread-90150-1-1.html
实验六十四: TCS3200D颜色识别传感器(可编程彩色光频模块)
https://www.arduino.cn/thread-90168-1-1.html
实验六十五: 5MM三色RGB全彩LED模块颜色传感器KY-016
https://www.arduino.cn/thread-90400-1-1.html
实验六十六: TCRT5000红外反射光电开关寻迹传感器模块
https://www.arduino.cn/thread-90402-1-1.html
实验六十七:HC-SR501 热释电人体红外感应传感器模块
https://www.arduino.cn/thread-90404-1-1.html
实验六十八: GY-68 BMP180 新款 BOSCH温度模块气压传感器
https://www.arduino.cn/thread-90411-1-1.html
实验六十九: AT24C256 I2C接口 EEPROM 存储模块 IIC
https://www.arduino.cn/thread-90412-1-1.html
实验七十: GY-30 数字光强度传感器模块(BH1750FVI芯片)
https://www.arduino.cn/thread-90413-1-1.html
实验七十一:电容式土壤湿度传感器模块(TL555I)
https://www.arduino.cn/thread-90471-1-1.html
实验七十二:HX1838红外无线遥控套件红外扩展模块(遥控器+接收板)
https://www.arduino.cn/thread-90473-1-1.html
实验七十三:人体秤50kg称重传感器模块(电阻应变半桥式)
https://www.arduino.cn/thread-90545-1-1.html
实验七十四:4位LED数码管显示模块0.36英寸亮度可调带时钟点( TM1637)
https://www.arduino.cn/thread-90546-1-1.html
实验七十五: GY-NEO-6MV2新款飞控GPS模块 (带大天线)
https://www.arduino.cn/thread-90547-1-1.html
实验七十六:TTL转RS-485模块 MAX485 RS485模块
https://www.arduino.cn/thread-90549-1-1.html
实验七十七: 2路继电器模块 带光耦保护Arduino扩展板
https://www.arduino.cn/thread-90557-1-1.html
实验七十八: LGT8F328P LQFP32 MiniEVB开发板(替代NANO V3.0 )
https://www.arduino.cn/thread-90724-1-1.html
实验七十九: 模拟灰度传感器 (反射式光电模块)
https://www.arduino.cn/thread-90725-1-1.html
实验八十: ov7670摄像头模块30W采集拍照模组(替OV7725)
https://www.arduino.cn/thread-90726-1-1.html
实验八十一:槽型光耦对射光电开关模块(红外计数测速传感器)
https://www.arduino.cn/thread-90833-1-1.html
实验八十二: MQ135空气质量检测传感器模块(有害物体 氨气 硫化物检测)
https://www.arduino.cn/thread-90834-1-1.html
实验八十三: 4路TTP224电容式触摸模块 人体数字触摸传感器
https://www.arduino.cn/thread-90835-1-1.html
实验八十四: 8位LED数码管MAX7219模块(支持级联八位串行3个IO口控制)
https://www.arduino.cn/thread-90864-1-1.html
实验八十五:开源 Mini MP3 Player SD卡播放器模块(YX5200-24SS)
https://www.arduino.cn/thread-90865-1-1.html
实验八十六: 180度SG90舵机模块(模拟9G)
https://www.arduino.cn/thread-91033-1-1.html
实验八十七: DS1307时钟模块 Tiny RTC I2C模块 24C32存储器 时钟(带电池)
https://www.arduino.cn/thread-91034-1-1.html
实验八十八: LCD1602液晶屏5V显示模块
https://www.arduino.cn/thread-91047-1-1.html
实验八十九: WS2812B-4*4位 RGB LED 全彩驱动16位彩灯开发板模块
https://www.arduino.cn/thread-91048-1-1.html
实验九十:步进电机+ULN2003驱动板 4相 5线 5V步进电机模组
https://www.arduino.cn/thread-91049-1-1.html
实验九十一: 1号霍尔水流量传感器咖啡机直饮机流量监控模块
https://www.arduino.cn/thread-91241-1-1.html
实验九十二:8位 5V-3V IIC UART SPI TTL双向电平转换模块
https://www.arduino.cn/thread-91242-1-1.html
实验九十三: CSR8350 蓝牙V4.1立体声音乐模块(带功放)
https://www.arduino.cn/thread-91243-1-1.html
实验九十四: 4X4矩阵形薄膜键盘模块轻触开关模组
https://www.arduino.cn/thread-91244-1-1.html
实验九十五:XD-58C pulsesensor光学心率脉搏生物模拟传感器
https://www.arduino.cn/thread-91245-1-1.html
实验九十六: 433M无线发射接收模块 超再生防盗报警无线模组
https://www.arduino.cn/thread-91247-1-1.html
实验九十七: 0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块
https://www.arduino.cn/thread-91514-1-1.html
实验九十八: L298N电机驱动板模块直流步进电机智能机器人小车模组
https://www.arduino.cn/thread-91515-1-1.html
实验九十九: APDS-9960 GY-9960-3.3 RGB红外手势传感器 方向识别模块
https://www.arduino.cn/thread-91516-1-1.html
实验一百: AT-09蓝牙4.0BLE 模块 串口引出 CC2541兼容HM-10模块
https://www.arduino.cn/thread-91517-1-1.html
实验一百零一: 10段LED发光条MT102510AG数码显示光柱模块
https://www.arduino.cn/thread-91518-1-1.html
实验一百零二:MFRC-522 RC522 RFID射频 IC卡感应模块读卡器S50复旦卡模组
https://www.arduino.cn/thread-91519-1-1.html
实验一百零三: 8X32 LED点阵显示模块 MAX7219 输出 共阴 5V 模组
https://www.arduino.cn/thread-91520-1-1.html
实验一百零四: MAX30102血氧仪手腕心率脉搏检测心跳传感器模块
https://www.arduino.cn/thread-91521-1-1.html
实验一百零五:12位 WS2812 5050 RGB LED 智能全彩RGB环开发板大环
https://www.arduino.cn/thread-91522-1-1.html
实验一百零六: TM1638按键数码管LED显示模组8位数码管\LED\按键智控模块
https://www.arduino.cn/thread-91523-1-1.html
实验一百零七: 400KV高压发生器模组 3-6V升压逆变器模块
https://www.arduino.cn/thread-91524-1-1.html
实验一百零八: 16X16点阵LED汉字显示屏模块UART接口
https://www.arduino.cn/thread-91526-1-1.html
 楼主| 发表于 2019-8-19 16:39 | 显示全部楼层
矩阵键盘
矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。由于电路设计时需要更多的外部输入,单独的控制一个按键需要浪费很多的IO资源,所以就有了矩阵键盘,常用的矩阵键盘有4*4和8*8,其中用的最多的是4*4。

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

01.jpeg

 楼主| 发表于 2019-8-19 17:13 | 显示全部楼层
02 (1).jpg

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

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


 楼主| 发表于 2019-8-19 17:32 | 显示全部楼层
03.jpeg

03-.jpeg
 楼主| 发表于 2019-8-19 17:41 | 显示全部楼层
识别方法
这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

一、行扫描法,又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法。
1、判断键盘中有无键按下 将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。
2、判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

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

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

04.jpeg

 楼主| 发表于 2019-8-19 17:52 | 显示全部楼层
05 (1).jpg

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

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

 楼主| 发表于 2019-8-19 18:23 | 显示全部楼层
07.jpg
模块参数
接触电阻为500
绝缘电阻100M
关键操作力150-200N
回弹时间1(ms)
寿命1亿(次)
工作温度60

 楼主| 发表于 2019-8-19 18:26 | 显示全部楼层
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)

06.jpg

 楼主| 发表于 2019-8-19 19:30 | 显示全部楼层

kittenblock中小学创客名师推荐的图形化编程软件

/*
【Arduino】108种传感器模块系列实验(94)
实验九十四: 4X4薄膜矩阵键盘模块轻触开关模组
 */
 
#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);
  }
}

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

Blynk与m5stack basic以及uiflow的交互玩法
Blynk与m5stack basic以及
Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
【搬运】通过UDP将M5Camera图像发送至M5Stack
【搬运】通过UDP将M5Camer
本例将介绍通过UDP发送图像至M5Stack,代码分为M5CameraB与M5Stack,由于UDP传输
SYN6288语音模块
SYN6288语音模块
我用arduino写SYN6288的程序,用的是UNO板,可以吗? SYN怎么将文字转化为语音输出啊
【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
【原创】 drawbot平面关节
这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
【原创】全球最小口袋3D打印机mini one直播教程贴
【原创】全球最小口袋3D打
最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表