3*4矩阵键盘

1、矩阵按键扫描原理:

        先是把列置0(推挽输出),行是输入上拉,扫描行得到行的键值;再是把行置0(推完输出),列是输入上拉,扫描列得到列的键值;最后把行列的键值相加得到最后的总的键值。

2、#include "passWD.c"

#include "passWD.h"
#include "usart.h"
#include "delay.h"

void PassWordClockInit1(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;

	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//普通输入模式
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100M
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
	GPIO_Init(GPIOE, &GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;
	GPIO_InitStructur
Arduino 3x4矩阵键盘是一种常见的输入设备,通常用于需要用户输入数字或字符的场景。它由3行和4列共12个按键组成,通过行列扫描的方式进行按键检测。 ### 3x4矩阵键盘的结构 3x4矩阵键盘包含12个按键,分别排列在34列的网格中。每个按键对应一个唯一的行和列的交叉点。 ### 工作原理 矩阵键盘的工作原理是通过扫描行和列来检测按键状态。当某个按键被按下时,相应的行和列会连接在一起。Arduino通过以下步骤来检测按键: 1. 将所有列设置为高电平,所有行设置为低电平。 2. 依次将每一列设置为低电平,并检测行的状态。 3. 如果某一行检测到低电平,则说明该行和当前列交叉点的按键被按下。 4. 通过行和列的组合来确定具体的按键。 ### 连接方式 将矩阵键盘的列连接到Arduino的数字引脚(如2, 3, 4, 5),行连接到其他数字引脚(如6, 7, 8)。然后通过编程实现行列扫描。 ### 示例代码 以下是一个简单的Arduino代码示例,用于检测3x4矩阵键盘的按键: ```cpp #include <Keypad.h> const byte ROWS = 4; //四行 const byte COLS = 3; //三列 char keys[ROWS][COLS] = { {&#39;1&#39;,&#39;2&#39;,&#39;3&#39;}, {&#39;4&#39;,&#39;5&#39;,&#39;6&#39;}, {&#39;7&#39;,&#39;8&#39;,&#39;9&#39;}, {&#39;*&#39;,&#39;0&#39;,&#39;#&#39;} }; byte rowPins[ROWS] = {9, 8, 7, 6}; //连接到行引脚的数字引脚 byte colPins[COLS] = {5, 4, 3}; //连接到列引脚的数字引脚 Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup(){ Serial.begin(9600); } void loop(){ char key = keypad.getKey(); if (key){ Serial.println(key); } } ``` ### 优点 - 结构简单,成本低。 - 易于与Arduino等微控制器连接。 - 适用于简单的输入需求。 ### 缺点 - 只能检测有限的按键数量。 - 需要编程实现行列扫描,代码复杂度较高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁善被人欺

求打赏一杯蜜雪冰城

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值