最新消息:

【Arduino教程】第十九讲:薄膜按键实验

Arduino 少儿编程 3760浏览 0评论
Arduino教程一

产品介绍

矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。4*4矩阵按键其原理图如图:

【Arduino教程】第十九讲:薄膜按键实验

实验器件

■ 4*4矩阵按键:1个

■ 多彩面包板实验跳绳:若干

实验连线

【Arduino教程】第十九讲:薄膜按键实验

如图所示分别用杜邦线将4*4矩阵按键的8个接口按照顺序接到开发板的4 5 6 7 8 9 10 11接口

 

程序代码

Arduino代码

const int numRows = 4;//定义4 行

const int numCols = 4;//定义4 列

const int debounceTime = 20;//去抖动时间长度

const char keymap[numRows][numCols]= {//键值,可以按需要更改

{ ’1′,’2′,’3′,’A’ },

{’4′,’5′,’6′,’B’ },

{’7′,’8′,’9′,’C’ },

{‘*’,’0′,’#’,’D’ }

}

const int rowPins[numRows] = {4,5,6,7};//设置硬件对应的引脚

const int colPins[numCols] = {8,9,10,11};

//初始化功能

void setup(){

Serial.begin(9600);

for(int row = 0; row < numRows; row++){

pinMode(rowPins[row],INPUT);

digitalWrite(rowPins[row],HIGH);

}

for(int column = 0;column < numCols;column++){

pinMode(colPins[column],OUTPUT);

digitalWrite(colPins[column],HIGH);

}

}

//主循环

void loop() {

// 添加其他的程序,循环运行

char key = getkey();

if(key !=0)

{

Serial.print(“Got key “);//串口打印键值

Serial.println(key);

}

}

//读取键值程序

char getkey(){

char key = 0;

for(int column = 0;column < numCols;column++){

digitalWrite(colPins[column],LOW);

for(int row = 0 ;row < numRows; row++){

if(digitalRead(rowPins[row]) == LOW){ //是否有按键按下

delay(debounceTime);

while(digitalRead(rowPins[row]) == LOW) //等待按键释放

{

key = keymap[row][column];

}

}

digitalWrite(colPins[column],HIGH); //De-activethe current column

}

return key;

}

米思齐代码:

 

【Arduino教程】第十九讲:薄膜按键实验

实验结论

 

打开串口监视器,按下键盘上的按键,能够显示出对应的键。

您必须 登录 才能发表评论!