12键矩阵键盘含12个四脚按键,依靠金属弹片来保护受力情况,每个按键的四个引脚排列成矩阵的形式。在12键矩阵键盘模块中,当某个按钮被按压时,电路导通;当撤销这种压力的时候,电路断开。这个施压的力,就是用我们的手去开按钮、关按钮的动作。12键矩阵键盘共用一个模拟输出,当不同按键被按下时所输出的模拟值不同,由此可以判断是哪个按钮被按下。我们可以用一个Arduino的模拟口就可以控制12键矩阵键盘模块,可以大大减少需要使用IO接口。对于 Arduino初学者来说创作更便捷。
引脚名称 | 描述 |
---|---|
G | GND(电源输入负极) |
V | VCC(电源输入正极) |
S | 模拟信号引脚 |
供电电压:3.3V / 5V
连接方式:PH2.0 端子线
安装方式:四螺丝固定
示例程序:点击下载
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); }
示例程序:点击下载
准备配件:
电路接线图:
视频教程:点击查看
器件连接好线之后,将上述程序烧录到UNO-R3 PRO开发板之后,接通电源。打开串口监视 器,波特率设置为 9600。当不同按键被按下时所输出的模拟值不同,由此可以判断是哪个按钮被按下。按下按键1输出模拟值为36,将使得信号灯绿灯亮起;按下按键2输出模拟值为75,将使得信号灯黄灯亮起;按下按键3输出模拟值为108,将使得信号灯红灯亮起;按下按键0输出模拟值为286,使得灯全部熄灭。