Arduino 4×4薄膜键盘

浪尽此生 提交于 2019-11-30 05:06:54

参考网址:
https://swf.com.tw/?p=917

接线方式:
在这里插入图片描述

arduino示例程序:
编译并上传,打开串口监视器,按键盘任意键会出现任意数字
在这里插入图片描述

可参考文章:
《完美图解Arduino互动设计入门》
Arduino 4×4薄膜鍵盤模組實驗(二):減少佔用Arduino的數位接腳
https://swf.com.tw/?p=921
Arduino 4×4薄膜鍵盤模組實驗(三):結合LCD顯示器的密碼輸入介面
https://swf.com.tw/?p=924

使用薄膜键盘控制四位数码管
接线方式:

clk 3
dio 2

代码:

#include <TM1637.h>
#include <Wire.h>

#include <Keypad.h>    // 引用Keypad程式庫
#define CLK 3  
#define DIO 2
TM1637 tm1637(CLK, DIO);
int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};

#define KEY_ROWS 4 // 按鍵模組的列數
#define KEY_COLS 4 // 按鍵模組的行數

// 依照行、列排列的按鍵字元(二維陣列)
char keymap[KEY_ROWS][KEY_COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

byte colPins[KEY_COLS] = {9, 8, 7, 6};     // 按鍵模組,行1~4接腳。
byte rowPins[KEY_ROWS] = {13, 12, 11, 10}; // 按鍵模組,列1~4接腳。 

// 初始化Keypad物件
// 語法:Keypad(makeKeymap(按鍵字元的二維陣列), 模組列接腳, 模組行接腳, 模組列數, 模組行數)
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, KEY_ROWS, KEY_COLS);

void setup(){
  Serial.begin(9600);
    tm1637.init();
  tm1637.set(1);

}
  
void loop(){
  // 透過Keypad物件的getKey()方法讀取按鍵的字元
  char key = myKeypad.getKey();

  if (key){  // 若有按鍵被按下…
//        tm1637.display(0, key);
  TimeDisp[3] = int(key)-48;//把char转化为int类型,然后变成ascII码,再-48
Serial.println(TimeDisp[3]);
    tm1637.display(TimeDisp);

//  tm1637.display(1, b1);
//  tm1637.display(2, b2);
//  tm1637.display(3, b3);
//Serial.println(key);  // 顯示按鍵的字元
  }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!