このチュートリアルはの一部です: キーパッド
すべてのキーパッドのビデオがここにリストされています。
Arduinoコードと動画:4x4マトリックスの黒いキーパッド
このチュートリアルでは、Arduinoで4x4マトリックス式キーパッドを使い、キーの押下に応じて動作を行う方法を学びます。キーパッドを使うと '6'、'A'、'B'、'D' のような値を入力でき、それらのキーが押されたときに特定の処理を実行できます。チュートリアルに沿って進めることで、キーパッドの接続方法やそれと効果的にやり取りするためのコードの書き方を学べます。さらに詳しくは、ビデオ(:00)を必ずご覧ください。

ハードウェア解説
4x4のマトリックスキーパッドは、4x4のグリッドに配置された16個のキーで構成されています。各キーの押下によって特定の行と列が接続され、マイクロコントローラがどのキーが押されたかを判別できるようになっています。キーパッドはデジタルピンを使ってArduinoに接続されており、コード内でキー入力を読み取るためにこれらのピンが設定されます。
このプロジェクトでは、Keypadライブラリを使用します。これによりキーパッドからの入力の読み取り作業が簡素化されます。ライブラリが行と列のスキャンのロジックを処理してくれるので、プロジェクトの機能に集中しやすくなります。
データシートの詳細
| 製造元 | 一般的 |
|---|---|
| 部品番号 | 4x4 マトリクスキーパッド |
| ロジック/入出力電圧 | 5 V |
| 鍵の有効期間 | 1,000,000回のプレス |
| 寸法 | 68.5 mm × 9.8 mm |
| 重量 | 23グラム |
- 行ピンをデジタルピン2-5に接続してください。
- コラムピンをデジタルピン6〜9に接続します。
- 誤読を避けるため、配線が適切であることを確認してください。
- 安定化のために必要であればプルアップ抵抗を使用してください。
- 複数回読み取られるのを避けるため、ソフトウェアでキー入力をデバウンスしてください。
配線手順
4x4のマトリックスキーパッドをArduinoに配線するには、まず行ピンを接続します。最初の行ピンをデジタルピンに接続します5、第2列のピンに4、3列目のピンに3、そして4行目のピンに2次に、列ピンを接続します。最初の列ピンからデジタルピンへ接続することから始めます9、第2列にピン留めする8、第3列のピンに7、そして第4列のピンを6. この設定は、ビデオ(00:00)で説明されている右から左への配線方式に従っています。
配線が緩まないように、キーパッドとArduinoに配線をしっかり取り付けてください。接続を扱いやすくするためにメスヘッダを使うことができます。ブレッドボードを使用している場合は、すべての接続が確実に差し込まれていることを確認してください。
コード例と解説
次のコードはキーパッドを初期化し、シリアル通信を設定します。これにより、シリアルモニタでどのキーが押されたかを確認できます。
#include
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
この抜粋では、行数と列数を定義し、文字配列を作成します。keysキーパッド上のキーをマッピングする配列です。この配列はどのキーが押されたかを識別するために使用されます。
void setup(){
Serial.begin(9600);
}その中でsetup関数内で、シリアル通信をボーレート9600で初期化します。これにより、デバッグや観察のためにキー入力をシリアルモニタに出力できます。
void loop(){
char key = keypad.getKey();
if (key){
Serial.print("Key ");
Serial.print(key);
Serial.println(" is pressed");
}
}そのloop関数は〜を使用してキー入力を継続的にチェックするkeypad.getKey()キーが押されると、そのキーの値がシリアルモニタに表示されます。ここで入力に対するリアルタイムのフィードバックを確認できます。

デモンストレーション/期待される内容
配線とコードが正しく設定されると、キー入力がシリアルモニタに表示されるはずです。'4'を押すと特定の動作がトリガーされ、その動作はコード内でカスタマイズできます。この構成は、ユーザー入力に基づいてデバイスを制御するなど、さまざまな用途に利用できます。極性が逆になっていないか注意し、問題を避けるためにすべての接続が確実に固定されていることを確認してください(ビデオの00:00)。
動画のタイムスタンプ
- 00:00はじめに
- 01:30キーパッドの配線
- 02:45コードの説明
- 04:00キー入力の実演
このチュートリアルはの一部です: キーパッド
- Arduinoで4x3キーパッドを使う
- 4キーキーパッド用のArduinoコードと動画
- Build a Simple Electronic Lock with Keypad and LCD Using Arduino
- Controlling an 8-channel relay with a 4x3 keypad
- Arduinoで4x4ソフトキーパッドを使う方法
- How to Use a 5x4 20-Key Keypad with Arduino to Detect Strings
- Lesson 67: Controlling an 8-Channel Relay with a Keypad Using Arduino
- 1602 LCDキーパッドシールド:基本コード
/*
* Original source: https://playground.arduino.cc/Code/Keypad
* This is the Arduino code for a 4x4 keypad.
* Watch the video for details and demo: https://youtu.be/1rfrvOTxtrg
* *
* Written by Ahmad S. for Robojax Video channel www.Robojax.com
resources page for this code robojax.com/RJT75
* Date: April 15, 2018, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
* This code has been downloaded from https://robojax.com
*
*/
/* @file HelloKeypad.pde
|| @version 1.0
|| @author Alexander Brevig
|| @contact alexanderbrevig@gmail.com
||
|| @description
|| | Demonstrates the simplest use of the matrix Keypad library.
|| #
*/
#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
// connect the pins from right to left to pins 2, 3, 4, 5, 6, 7, 8, 9
byte rowPins[ROWS] = {5,4,3,2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9,8,7,6}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
Serial.begin(9600);
}
void loop(){
char key = keypad.getKey();
// just print the pressed key
if (key){
Serial.print("Key ");
Serial.print(key);
Serial.println(" is pressed");
}
// This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
if (key =='4'){
// Do something here if 4 is pressed
Serial.println("Key 4 is pressed -> Action");
}
}
必要かもしれないもの
-
アマゾンアマゾンから4x4ハードキーパッドを購入するamzn.to
-
アマゾンアマゾンで4x4キーパッドを購入するamzn.to
リソースと参考文献
まだリソースはありません。