1. 主页
  2. 文档
  3. Arduino教程(持续更新)
  4. 2.基础例程
  5. 2.14 4 * 4 按键膜测试

2.14 4 * 4 按键膜测试

所需要的材料:

Arduino * 1

线材 * 8

按键膜 * 1

接线方式:

.14

代码:

#include <Keypad.h>

const byte ROWS = 4;

const byte COLS = 4;

char keys[ROWS][COLS] = {

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

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

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

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

};

byte rowPins[ROWS] = {5,4,3,2};

byte colPins[COLS] = {6,7,8,9};

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

byte ledPin = 13;

boolean blink = false;

void setup(){

Serial.begin(9600);

pinMode(ledPin, OUTPUT);

digitalWrite(ledPin, HIGH);

keypad.addEventListener(keypadEvent);

}

void loop(){

char key = keypad.getKey();

if (key != NO_KEY) {

Serial.println(key);

}

if (blink){

digitalWrite(ledPin,!digitalRead(ledPin));

delay(100);

}

}

//take care of some special events

void keypadEvent(KeypadEvent key){

switch (keypad.getState()){

case PRESSED:

switch (key){

case ‘#’: digitalWrite(ledPin,!digitalRead(ledPin)); break;

case ‘*’:

digitalWrite(ledPin,!digitalRead(ledPin));

break;

}

break;

case RELEASED:

switch (key){

case ‘*’:

digitalWrite(ledPin,!digitalRead(ledPin));

blink = false;

break;

}

break;

case HOLD:

switch (key){

case ‘*’: blink = true; break;

}

break;

}

}

.14

 访问次数: 0

有帮助? 没有

发邮件?

发表评论

登录后才能评论