アルディーノで膜スイッチを使ったよ!
i = customKey- '0';
でCHAR型のデータを数値に変換してLEDの点灯時間に利用しています。
#include <Keypad.h>
#include <string.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup(){
Serial.begin(9600);
pinMode(11,OUTPUT);
digitalWrite(11,LOW);
}
void loop(){
int i;
char customKey = customKeypad.getKey();
if (customKey){
Serial.println(customKey);
i = customKey- '0';
if(i >= 0 && i <= 9){
digitalWrite(11,HIGH);
Serial.println(i*1000);
delay(i * 1000);
digitalWrite(11,LOW);
}
}
}