HS-KEY12A-L 12键矩阵键盘

目 录 (点击目录列表可以跳转到相应位置)

  1. 介绍
  2. 原理图
  3. 模块参数
  4. 电路板尺寸
  5. ArduinoIDE 和Python示例程序
  6. 米思齐 Mixly 示例程序(图形化语言)
  7. Arduino测试环境搭建
  8. 视频教程
  9. 测试结论

1、介绍 点这里回到目录

12键矩阵键盘含12个四脚按键,依靠金属弹片来保护受力情况,每个按键的四个引脚排列成矩阵的形式。在12键矩阵键盘模块中,当某个按钮被按压时,电路导通;当撤销这种压力的时候,电路断开。这个施压的力,就是用我们的手去开按钮、关按钮的动作。12键矩阵键盘共用一个模拟输出,当不同按键被按下时所输出的模拟值不同,由此可以判断是哪个按钮被按下。我们可以用一个Arduino的模拟口就可以控制12键矩阵键盘模块,可以大大减少需要使用IO接口。对于 Arduino初学者来说创作更便捷。


2、原理图 点这里回到目录

HS-KEY12A-L 12键矩阵键盘


3、模块参数 点这里回到目录

引脚名称 描述
G GND(电源输入负极)
V VCC(电源输入正极)
S 模拟信号引脚
  • 供电电压:3.3V / 5V

  • 连接方式:PH2.0 端子线

  • 安装方式:四螺丝固定


4、电路板尺寸 点这里回到目录

HS-KEY12A-L 12键矩阵键盘


5、Arduino IDE示例程序 点这里回到目录

Arduino UNO 图形化示例程序:

volatile boolean buttonState;
volatile int buttonvaule;
void light(boolean G, boolean Y, boolean R) {
 digitalWrite(9,G);
 digitalWrite(10,Y);
 digitalWrite(11,R);
}
void setup(){
 Serial.begin(9600);
 buttonState = 0;
 buttonvaule = 0;
 // 按键状态值
 pinMode(A0, INPUT);
 pinMode(9, OUTPUT);
 pinMode(10, OUTPUT);
 pinMode(11, OUTPUT);
}
void loop(){
 //1按键模拟值:36±1;
 //2按键模拟值:76±1;
 //3按键模拟值:108±1;
 //4按键模拟值:139±1;
 //5按键模拟值:169±1;
 //6按键模拟值:196±1;
 //7按键模拟值:216±1;
 //8按键模拟值:235±1;
 //9按键模拟值:252±1;
 //*按键模拟值:270±1;
 //0按键模拟值:285±1;
 //#按键模拟值:307±1;
 //按键没被按下模拟值:1023
 //矩阵键盘接A0,交通灯接D9,D10,D11
 //效果:按下数字0关灯,按下数字1亮绿灯;
 //按下数字2亮黄灯;按下数字3亮红灯;
 buttonvaule = analogRead(A0);
 if (buttonvaule == 1023) {
 buttonState = 0;
 }
 if ((buttonvaule >= 35 && buttonvaule <= 37) && buttonState == 0) {
 light(HIGH, LOW, LOW);
 buttonState = 1;
 } else if ((buttonvaule >= 75 && buttonvaule <= 77) && buttonState == 0) {
 light(LOW, HIGH, LOW);
 buttonState = 1;
 } else if ((buttonvaule >= 107 && buttonvaule <= 109) && buttonState == 0) {
 light(LOW, LOW, HIGH);
 buttonState = 1;
 } else if ((buttonvaule >= 284 && buttonvaule <= 286) && buttonState == 0) {
 light(LOW, LOW, LOW);
 buttonState = 1;
 }
 Serial.println(buttonvaule);
}


ESP32 Python 示例(适用于Mixly IDE /米思齐)
(开发板选择 Python ESP32 【ESP32 Generic(4MB)】切换为代码模式上传 ):

import machine


pin25 = machine.Pin(25, machine.Pin.OUT)
pin26 = machine.Pin(26, machine.Pin.OUT)
pin27 = machine.Pin(27, machine.Pin.OUT)
adc32 = machine.ADC(machine.Pin(32))
while True:
if 3000 < adc32.read_u16() < 4000:
pin25.value(1)
pin26.value(0)
pin27.value(0)
print(adc32.read_u16())
elif 11000 < adc32.read_u16() < 13000:
pin25.value(0)
pin26.value(1)
pin27.value(0)
print(adc32.read_u16())
elif 18000 < adc32.read_u16() < 20000:
pin25.value(0)
pin26.value(0)
pin27.value(1)
print(adc32.read_u16())


6、米思齐 Mixly 示例程序(图形化语言) 点这里回到目录

Arduino UNO 图形化示例程序:点击下载

HS-KEY12A-L 12键矩阵键盘

ESP32 Python图形化示例程序:点击下载

HS-KEY12A-L 12键矩阵键盘


7、测试环境搭建 点这里回到目录

Arduino UNO 测试环境搭建

准备配件:

  • HELLO STEM UNO R3 开发板 *1
  • HELLO STEM UNO R3 P 扩展板 *1
  • USB type-c 数据线 *1
  • 信号灯模块(HS-F05L)*1
  • 12键矩阵键盘(HS-KEY12A-L)*1
  • PH2.0 4P双头端子线 *1条
  • PH2.0 3P双头端子线 *1条

电路接线图:

HS-KEY12A-L 12键矩阵键盘


ESP32 Python 测试环境搭建


8、视频教程 点这里回到目录

Arduino UNO视频教程点击查看

ESP32 Python视频教程:


9、测试结论 点这里回到目录

Arduino UNO测试结论:

HS-KEY12A-L 12键矩阵键盘

器件连接好线之后,将上述程序烧录到UNO-R3 PRO开发板之后,接通电源。打开串口监视 器,波特率设置为 9600。当不同按键被按下时所输出的模拟值不同,由此可以判断是哪个按钮被按下。按下按键1输出模拟值为36,将使得信号灯绿灯亮起;按下按键2输出模拟值为75,将使得信号灯黄灯亮起;按下按键3输出模拟值为108,将使得信号灯红灯亮起;按下按键0输出模拟值为286,使得灯全部熄灭。


ESP32 Python测试结论:器件连接好线之后,将上述程序烧录到ESP32开发板之后,接通电源。打开串口监视 器,波特率设置为 9600。当不同按键被按下时所输出的模拟值不同,由此可以判断是哪个按钮被按下。按下按键1输出模拟值为36,将使得信号灯绿灯亮起;按下按键2输出模拟值为75,将使得信号灯黄灯亮起;按下按键3输出模拟值为108,将使得信号灯红灯亮起;按下按键0输出模拟值为286,使得灯全部熄灭。


点这里回到目录