Arduino UNO+LCD1602+4x4按键

发布于:2022-12-11 ⋅ 阅读:(820) ⋅ 点赞:(0)

1.任务

        利用Arduino、4X4按键,将按键内容显示在LCD1602上

2.所需材料

        1.Arduino UNO  x1

        2.LCD1602A  x1

        3.4X4膜按键 x1

        4.旋转电位器x1(用来调节LCD对比度)

        5.面包板  x1

        6.杜邦线  若干

3.硬件连接图

        1.4X4矩阵键盘:由于Arduino接口不够,所以将该4X4键盘改为3X3键盘,有效按钮为:1、2、3、4、5、6、7、8、9。

 

4.软件前期准备

        部分同学的IDE中可能为加载Keypad库,所以在开始前先检查一下自己的IDE中是否已经有此库。如果没有的话,按照以下步骤进行安装:

        1.下载Keypad库,下载地址:Arduino Playground - Keypad Library

        2.下载得到一个ZIP文件,将该文件存放在合适位置(加载该文件后,该ZIP文件将无法删除,除非将加载的库删掉才能删除,所以要存放在一个合适的位置),然后打开IED,按照“项目--加载库--添加.ZIP库”的顺序将下载的ZIP文件加载到库中,如下图所示:

 5.软件部分


#include <LiquidCrystal.h>//声明调用库
#include <Keypad.h>
const int rs=6,en=7,d4=5,d5=4,d6=3,d7=2;//对应引脚
const byte ROWS = 3; //3行
const byte COLS = 3; //3列
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'}
};//用的是4X4膜按键,但是Arduino接口不够,所以将4X4按键简化为3X3按键
byte rowPins[ROWS] = {13,12,11}; //按键行对应的Arduino接口
byte colPins[COLS] = {10,9,8};//按键列对应的Arduino接口
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
LiquidCrystal lcd(rs,en,d4,d5,d6,d7);//创建一个名为lcd的实例(对象),这里是4线法d4~d7
int i=0;
void setup() {
  lcd.begin(16,2);//初始化LCD的宽度和高度,设置16列2行
}
 
void loop() {
  char key = keypad.getKey();
  if (key != NO_KEY){
    lcd.print(key);
    i=i+1;
    if (i==17){
      lcd.clear();//清空第一行并重新开始显示
      lcd.print(key);//将第17次按下的按键显示在第一行第一位
      i=0;
    }
  }
}

        

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到