Project 22.1 マトリックスキーパッド/Matrix Keypad

前回は超音波測距モジュールを温度補正して距離を測定してみました。

あわせて読みたい
Project 21.2 超音波測距モジュール温度補正版/Ultrasonic Ranging 前回は超音波測距モジュールを使用して距離を測定してみました。 https://kaneshige.org/?p=608 今回はライブラリを使用して温度補正できるようにしてみましょう。使用...

今回はマトリックスキーパッドを使用してみましょう。

目次

4x4マトリックスキーパッドについて

マトリックスキーパッドは、複数のキーを一つのパッケージに統合したデバイスです。以下は、16個のキーを統合した4×4マトリックスキーパッドの例です。

LEDマトリックスと同様に、4×4キーパッドマトリックスは各行を一つのピンに接続しており、列についても同様です。このように効率的な接続方法により、使用するプロセッサのポート数を減らすことができます。キーパッドマトリックスの内部回路図は下記のとおりです。

使い方はLEDマトリックスと似ています。行または列のスキャン方式を使用して、各キーの位置の状態を行と列によって検出します。たとえば、列のスキャン方式では、まず1列目(Pin1)にローレベル信号を送信し、行5、6、7、8のレベル状態を検出して、キーA、B、C、Dが押されているかどうかを判断します。次に、2、3、4列目に順番にローレベル信号を送信して、他のキーが押されているかどうかを検出します。これにより、すべてのキーの状態を取得できます。

回路図

接続図

コード

/**********************************************************************
  Filename    : Get Input Characters
  Description : Call the Keypad function to set the matrix keyboard and get the value for the matrix keyboard
  Auther      : www.freenove.com
  Modification: 2022/10/25
**********************************************************************/
#include <Keypad.h>

// define the symbols on the buttons of the keypad
char keys[4][4] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

byte rowPins[4] = {14, 13, 12, 11}; // connect to the row pinouts of the keypad
byte colPins[4] = {10,  9,  8, 18};   // connect to the column pinouts of the keypad

// initialize an instance of class NewKeypad
Keypad myKeypad = Keypad(makeKeymap(keys), rowPins, colPins, 4, 4);

void setup() {
  Serial.begin(115200); // Initialize the serial port and set the baud rate to 115200
  Serial.println("ESP32S3 is ready!");  // Print the string "UNO is ready!"
}

void loop() {
  // Get the character input
  char keyPressed = myKeypad.getKey();
  // If there is a character input, sent it to the serial port
  if (keyPressed) {
    Serial.println(keyPressed);
  }
}

コンパイル(アップロード)する前にライブラリを追加してください。
プログラミングとしては特筆するところはないと思いますが、今回のライブラリの使い方はこんな感じ、というところでしょうか。

次回はキーパットとサーボを使って、『暗証番号で開くドア』みたいなものを作りましょう!

あわせて読みたい
Project 22.2 暗証番号で開くドア/Keypad Door 前回はマトリックスキーパッドの使い方を学びました。 https://kaneshige.org/?p=618 今回はキーパッドとサーボを使って『暗証番号で開くドア』風のものを作ってみまし...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

金重総合研究所の主席研究員。
子供の頃から研究者を目指し、ライフワークとして日々様々な研究をしています。
経営・マネジメント・金融・DXあたりが本職です。
私を採用したい人、私と一緒に働きたい人、一緒に知識を肥やしていきたい人はぜひお声がけ下さい。

コメント

コメントする

目次