矩阵键盘在51单片机的案例中应用较多,但是在Arduino中很少使用,今天小编就特立独行一次,在Arduino中搭建一个3*3的矩阵键盘。

一、什么是矩阵键盘?

矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组,实际上就是把键盘排成阵列,常见的有3行3列,4行4列等等。矩阵式的键盘显然比独立按键要复杂,不仅电路设计复杂,而且按键识别程序也比较复杂。

为什么会设计矩阵键盘呢?

举个例子,假设案例中要用到9个按键,我们先按照独立按键的方式连接到Arduino UNO板上,就需要占用9个引脚;如果我们换成矩阵键盘的连接方式,只需要6个引脚即可。如果是16个按键呢?所以说,使用矩阵键盘的优点是可以节约单片机的IO口(引脚)。

二、矩阵键盘的识别方法

目前,在矩阵键盘按键的识别方法中,最常用的一种方法叫做行扫描法,也叫动态扫描法,我们以Arduino接入的3*3矩阵键盘为例,介绍行扫描法的原理。行扫描法3行3列的矩阵式键盘设置行线为编程的输入线,列线为输出线,然后按照以下步骤判断被按下的按键位置。

行扫描法

1.列线输出全为0,读入行线,当行线读入全为1时,无按键按下;否则,有按键按下,进行延时去抖,然后再采用逐行扫描法判断按键位置。

2.先让第一列输出0,其他列输出1,分别判断行线,当某一行输出0时,则表示该行有按键按下,通过计算输出该按键的编号。

3.如果全部行线都没有输出0,则继续拉低下一列,其他列输出1,再次判断所有行线,如果某一行输出0,则表示该行有按键按下,输出其编号。

4.重复以上逐行扫描过程,直到全部扫描完成。

Arduino中实现3*3矩阵键盘的代码如下:

int hang[] = {4, 3, 2};
int lie[] = {7, 6, 5};
void setup() {Serial.begin(9600);for (int i = 0; i < 3; i++){pinMode(hang[i], INPUT);pinMode(lie[i], OUTPUT);}
}
void loop() {//列线输出0digitalWrite(lie[0], LOW);digitalWrite(lie[1], LOW);digitalWrite(lie[2], LOW);if (!digitalRead(hang[0]) || !digitalRead(hang[1]) || !digitalRead(hang[2])){delay(10);if (!digitalRead(hang[0]) || !digitalRead(hang[1]) || !digitalRead(hang[2])){digitalWrite(lie[0], LOW);//扫描第一列digitalWrite(lie[1], HIGH);digitalWrite(lie[2], HIGH);for (int j = 0; j < 3; j++){if (!digitalRead(hang[j])){Serial.println(0 + j * 3 + 1);//在串口监视器中输出键盘编号while (!digitalRead(hang[j]));}}digitalWrite(lie[0], HIGH);//扫描第二列digitalWrite(lie[1], LOW);digitalWrite(lie[2], HIGH);for (int j = 0; j < 3; j++){if (!digitalRead(hang[j])){Serial.println(1 + j * 3 + 1);while (!digitalRead(hang[j]));}}digitalWrite(lie[0], HIGH);//扫描第三列digitalWrite(lie[1], HIGH);digitalWrite(lie[2], LOW);for (int j = 0; j < 3; j++){if (!digitalRead(hang[j])){Serial.println(2 + j * 3 + 1);while (!digitalRead(hang[j]));}}}}
}

关于在Arduino中如何使用矩阵键盘的内容就为大家分享这些了,欲知更多精彩内容,可长按下面的二维码关注作者微信公众号,走过路过不要错过哦~

Arduino中矩阵键盘的编程与搭建相关推荐

  1. 2021-07-10 arduino 用于矩阵键盘的 开源库函数 keypad.h使用说明

    先实例化一个键盘: 确定行引脚 确定列引脚 const byte rows = 4; //4行 const byte cols = 4; //4列 char keys[rows][cols] = {{ ...

  2. 矩阵键盘简易计算机设计报告,矩阵键盘设计实验报告.doc

    南 京 林 业 大 学 实验报告 基于AT89C51 单片机4x4矩阵键盘接口电路设计 课 程 机电一体化设计基础 院 系 机械电子工程学院 班 级 学 号 姓 名 指导老师 杨雨图 201 南京林业 ...

  3. 矩阵键盘简易计算机设计报告,矩阵键盘设计实验报告

    <矩阵键盘设计实验报告>由会员分享,可在线阅读,更多相关<矩阵键盘设计实验报告(21页珍藏版)>请在人人文库网上搜索. 1.南京林业大学实验报告基于 AT89C51单片机 4x ...

  4. Arduino--4*4矩阵键盘

    (1)简介 4*4矩阵键盘实物如下图所示: 其对应的原理图如下,电路主要结构就是横4竖4共8组IO口pin脚 (2)连接方式 矩阵键盘和arduino的连接方式如下(以4*3矩阵为例,其他类似): 矩 ...

  5. imx6ul添加keyboard Matrix矩阵键盘

    文章目录 一.功能实现(代码) 1.1 添加编译选项 1.2 添加设备树节点 1.2.1 添加kpp节点 1.2.2 在iomuxc中添加pinctrl_复用节点 1.2.3 屏蔽其他设备节点占用的键 ...

  6. Ti AM335X工控模块矩阵键盘电路的设计与驱动移植

    本内容的验证使用的盈鹏飞嵌入式CoM-335x核心模块及评估板EAC-335X,简要介绍如下: 前言 与按键相比,矩阵按键(键盘)使用更少的GPIO实现更多按键接口.以下,基于COM-335x核心模块 ...

  7. 11.嵌入式控制器EC实战 KBC矩阵键盘Keyboard开发流程

    文章目录 笔记本矩阵键盘概述 矩阵键盘的扫描方式 行列扫描方式 逐行逐列扫描方式 EC中矩阵键盘是如何扫描并得到码值的(代码分析) 笔记本矩阵键盘概述 在EC中支持两种形式的键盘,一种是PS/2接口的 ...

  8. 「雕爷学编程」Arduino动手做(26)——4X4矩阵键盘模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  9. AutoLeaders控制组——51单片机学习笔记(模块化编程、LCD_1602、矩阵键盘)

    本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 一些内容涉及 ...

最新文章

  1. 52是什么水平_送礼送什么白酒,适合送礼的白酒推荐,看这篇最新白酒送礼指南就行了...
  2. html和css有序列表,HTMLCSS基础学习笔记14—有序列表及列表嵌套
  3. 【微信小程序企业级开发教程】订阅消息功能
  4. Python教程:zip 函数的用法
  5. mysql封装 javabean,利用Java针对MySql封装的jdbc框架类JdbcUtils完整实现(包含增删改查、JavaBean反射原理,附源码)...
  6. 我对NHibernate的感受(3):有些尴尬的集合支持
  7. android得到assets下面的资源
  8. pycharm 显示空格及tab
  9. C++构造函数异常(二)
  10. 利用hexo搭建一个只属于你自己的博客
  11. c# 小写金额转大写
  12. linux多线程调度设置
  13. ASP.NET开发实践系列课程之Web应用的安全攻防之网页木马
  14. VGA显示原理、时序标准及相关参数
  15. JS实现轮播图(一看就懂逻辑清晰)
  16. Android各个版本特性简介
  17. Android从网页中跳转到APP
  18. mysql查询计算机系信息_mysql——查询练习
  19. 我国计算机的创新,浅析计算机技术的创新过程
  20. 艺术 回文诗《璇玑图》

热门文章

  1. 一个假冒的序列号被被用来注册internetdownload manager。IDM正在退出解决办法
  2. php bloomfilter,【Bloom filter】Python实现Bloom filter
  3. 红米note电信版_标注2014910_官方线刷包_救砖包_解账户锁
  4. 外挂框架开发(1)HOOKAPI
  5. 互联网日报 | 4月27日 星期二 | 美团回应被立案调查;滴滴开通老年人打车400热线;百度App月活跃用户数达5.58亿
  6. vuex本地储存方案
  7. 燕十八php基础视频学习杂记
  8. matlab中亚像素坐标位置,MATLAB+7.X生物信息工具箱的应用——序列比对(二)
  9. uniapp微信小程序video全屏苹果xs
  10. java程序员找工作前需要做什么准备?