Arduino Uno 使用 4x4 矩阵按键 实现你家的密码锁吧

欢迎关注「凌顺实验室」微信公众号

 

 

 

 

 

 

 

Arduino Uno 使用 4x4 矩阵按键 实现你家的密码锁吧_第1张图片

 

实现效果

占用8个IO口 ,实现16个不同的按键

可应用于计算器,电子门锁,等等需要输入的场景

 

 

Arduino Uno 使用 4x4 矩阵按键 实现你家的密码锁吧_第2张图片

 

 

BOM表

Arduino Uno   *1

4x4 矩阵键盘   *1

跳线若干


引脚说明

4X4 矩阵按键 原理图

Arduino Uno 使用 4x4 矩阵按键 实现你家的密码锁吧_第3张图片

 

PCB 图   接线序号按PCB图的引脚序列号接线

Arduino Uno 使用 4x4 矩阵按键 实现你家的密码锁吧_第4张图片


接线

Arduino                  4x4 矩阵键盘

PIN 2      <----->         8   (行)

PIN 3      <----->         7   (行)   

PIN 4      <----->         6   (行)

PIN 5      <----->         5   (行)

PIN 6      <----->         4   (列)

PIN 7      <----->         3   (列)

PIN 8      <----->         2   (列)

PIN 9      <----->         1   (列)

 


开源程序

需要下载库文件

https://github.com/Chris--A/Keypad

 

 

#include   //加载库
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] = {2,3,4,5}; //定义行引脚
byte colPins[COLS] = {6,7,8,9}; //定义列引脚
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );//实例化Keypad 对象
void setup(){
  Serial.begin(9600);
}
void loop(){
  char key = keypad.getKey(); //新建一个key 变量 用于获取键盘当前的值
  if (key != NO_KEY){
    Serial.println(key);
  }
}

 

 

 

 

 


程序实现思路讲解

1

#include   //加载库

 

2

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'}
};//建立二维数组,用于设置按键的输出字符

 

3

byte rowPins[ROWS] = {2,3,4,5};   //定义行引脚
byte colPins[COLS] = {6,7,8,9};     //定义列引脚

 

4

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //实例化Keypad 对象

 

5

char key = keypad.getKey();//新建一个key 变量 用于获取键盘当前的值

你可能感兴趣的:(Arduino,系列实验)