Arduino Mega 2560 LESSON:11 メンブレンスイッチ
概要
メンブレンスイッチを接続するレッスンです。
完成図は
コードは以下のようなモノ
//www.elegoo.com
//2016.12.9
/* @file CustomKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates changing the keypad size and key values.
|| #
*/
#include <Keypad.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);
}
void loop(){
char customKey = customKeypad.getKey();
if (customKey){
Serial.println(customKey);
}
}
- "Keypad.h"
Arduino Mega 2560 LESSON:11 メンブレンスイッチ Keypad.h
- "Keypad.cpp"
Arduino Mega 2560 LESSON:11 メンブレンスイッチ Keypad.cpp
- "utility/Key.h"
Arduino Mega 2560 LESSON:11 メンブレンスイッチ Key.h
- "utility/Key.cpp"
Arduino Mega 2560 LESSON:11 メンブレンスイッチ Key.cpp
自分でスイッチを使ってメンブレンスイッチの仕組みを利用した2x2のマトリックスを勉強用に作ってみました2x2だと信号線の節約には全くなっていませんが、勉強用ということでやってみました。
回路図は以下の通り
完成図は以下の通り
コードは以下のとおり
const byte rowPins[2] = {6, 7};
const byte colPins[2] = {2, 3};
void setup() {
Serial.begin(9600);
// 外付けプルアップ抵抗を使用するためINPUT
for (byte r = 0; r < 2; r++) {
pinMode(rowPins[r], INPUT);
}
// 列は最初は高インピーダンス
for (byte c = 0; c < 2; c++) {
pinMode(colPins[c], INPUT);
}
}
void loop() {
for (byte c = 0; c < 2; c++) {
// 調査対象の列をLOWにする
digitalWrite(colPins[c], LOW);
pinMode(colPins[c], OUTPUT);
// 2つの行を確認する
for (byte r = 0; r < 2; r++) {
if (digitalRead(rowPins[r]) == LOW) {
byte sw = r * 2 + c + 1;
Serial.print("SW");
Serial.println(sw);
}
}
// 列を高インピーダンスに戻す
pinMode(colPins[c], INPUT);
}
delay(200);
}
PCB図は以下のとおり
3DPreview図は以下のとおり