Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

[经验] 【Arduino】108种传感器模块系列实验(26)---4X4矩阵键盘模块

[复制链接]
 楼主| 发表于 2020-2-6 08:21 | 显示全部楼层
本帖最后由 eagler8 于 2020-2-6 08:45 编辑
小木屋 发表于 2020-2-5 22:00
老哥,我想用一个矩阵键盘做一个计算器并把计算过程显示在LCD1602上,但是在写程序的时候发现键盘不能输入 ...

早上好,这个组合的计算器项目没有做过,以前只是分别尝试过4x4键盘和LCD1602的简单走通实验

【Arduino】108种传感器模块系列实验(88) - LCD1602液晶屏模块
-Arduino中文社区 - Powered by Discuz!
https://www.arduino.cn/thread-91047-1-1.html

【Arduino】108种传感器系列实验(94)-4X4矩阵薄膜键盘模块
-Arduino中文社区 - Powered by Discuz!
https://www.arduino.cn/thread-91244-1-1.html

【Arduino】108种传感器模块系列实验(26)-4X4矩阵键盘模块
-Arduino中文社区 - Powered by Discuz!
https://www.arduino.cn/thread-88966-1-1.html
 楼主| 发表于 2020-2-6 08:52 | 显示全部楼层
小木屋 发表于 2020-2-5 22:00
老哥,我想用一个矩阵键盘做一个计算器并把计算过程显示在LCD1602上,但是在写程序的时候发现键盘不能输入 ...

找到一张项目示意图,是这样吗

15-.jpg
发表于 2020-2-6 16:13 | 显示全部楼层
eagler8 发表于 2020-2-6 08:52
找到一张项目示意图,是这样吗

矩阵键盘的接线是对的,但是我用的LCD没有蓝色的驱动,它的RS端,E使能端,还有D4,D5,D6,D7端都接了arduino的IO口。
 楼主| 发表于 2020-2-6 16:24 | 显示全部楼层
本帖最后由 eagler8 于 2020-2-6 16:26 编辑
小木屋 发表于 2020-2-6 16:13
矩阵键盘的接线是对的,但是我用的LCD没有蓝色的驱动,它的RS端,E使能端,还有D4,D5,D6,D7端都接了ardui ...

这个专用转接板挺好用的,相关资料在这里,淘宝上不到二元,自己焊接上就行了

【Arduino】108种传感器模块系列实验(111)-PCF8574扩展板模块
-Arduino中文社区 - Powered by Discuz!
https://www.arduino.cn/thread-91830-1-1.html
0.jpg

15.jpg
发表于 2020-2-6 16:28 | 显示全部楼层
eagler8 发表于 2020-2-6 08:21
早上好,这个组合的计算器项目没有做过,以前只是分别尝试过4x4键盘和LCD1602的简单走通实验

...

好的,我有机会再试一下
 楼主| 发表于 2020-2-9 07:59 | 显示全部楼层
小木屋 发表于 2020-2-6 16:28
好的,我有机会再试一下

早上好,谢谢鼓励
 楼主| 发表于 2020-2-10 07:32 | 显示全部楼层

多交流
 楼主| 发表于 2020-2-28 15:01 | 显示全部楼层
[mw_shl_code=arduino,true]/*
  【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
  实验二十六:4X4矩阵键盘模块(12键示例代码)
  程序之三:测试每个按键的按下与松开
*/

#include "Adafruit_Keypad.h"

const byte ROWS = 4; // 行
const byte COLS = 4; // 列
//定义键盘按钮上的符号
char hexaKeys[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}; //连接到键盘的列插脚

//初始化类NewKeypad的实例
Adafruit_Keypad customKeypad = Adafruit_Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup() {
  Serial.begin(9600);
  customKeypad.begin();

}

void loop() {
  //把你的主代码放在这里,重复运行
  customKeypad.tick();

  while (customKeypad.available()) {
    keypadEvent e = customKeypad.read();
    Serial.print((char)e.bit.KEY);
    if (e.bit.EVENT == KEY_JUST_PRESSED) Serial.println(" pressed");
    else if (e.bit.EVENT == KEY_JUST_RELEASED) Serial.println(" released");
  }

  delay(10);
}[/mw_shl_code]
 楼主| 发表于 2020-2-28 15:04 | 显示全部楼层
14.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino爱好者

GMT+8, 2022-12-7 09:02 , Processed in 0.073219 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表