検索コード

Arduinoで4x3キーパッドを使う

Arduinoで4x3キーパッドを使う

このチュートリアルでは、Arduinoと4x3キーパッドを使ってキーの押下を読み取る方法を解説します。このキーパッドは、セキュリティシステムの簡単な入力インターフェースの作成や、ユーザー入力を必要とするあらゆるアプリケーションなど、さまざまなプロジェクトで利用できます。このガイドの終わりまでには、キー入力を読み取り、特定のキーに応答できるようになります。

配線とコードの実装の視覚的なデモについては、付属のビデオを必ずご確認ください(ビデオの00:00で)。

ハードウェアの解説

このプロジェクトの主要な構成要素は4x3のキーパッドとArduinoボードです。キーパッドは4行3列に配置されたボタンのマトリクスで構成されています。ボタンが押されると、特定の行と特定の列が接続され、Arduinoはどのボタンが押されたかを識別できます。

Arduinoボードはキーパッドの入力を読み取る中央のコントローラとして機能します。マトリクスキーパッドの管理を簡素化し、キーの押下を検出しやすくするKeypadライブラリを利用しています。

データシートの詳細

製造元さまざま
部品番号4×3キーパッド
論理電圧5 V
動作電流20 mA以下
鍵の有効期間1,000,000回以上の押下
パッケージマトリックス式キーパッド

  • キーパッドのピンをArduinoのデジタルピンに正しく接続してください。
  • セットアップに応じて必要ならばプルアップ抵抗またはプルダウン抵抗を使用してください。
  • Arduino IDEにKeypadライブラリがインストールされていることを確認してください。
  • キー入力をソフトウェアでデバウンスして、複数回の読み取りを避けてください。
  • 適切な配線と動作を確認するために、各キーをテストしてください。

配線手順

Arduino_wiring_4x3_keypad

4x3キーパッドをArduinoに配線するには、キーパッドの行ピンと列ピンをArduinoのデジタルピンに接続します。行ピン(通常は4本)をピンに接続します。23,4、および5Arduino上で。列ピン(通常3本)はピンに接続する必要があります67、そして8

キーパッドのグランドピンをArduinoのグランドに、電源ピンを5V出力に接続してください。この接続により、Keypadライブラリでマトリクススキャンを行い、各キーが押されたときの状態をArduinoが読み取れるようになります。

コード例とウォークスルー

以下のコードはキーパッドを初期化し、押されたキーをシリアルモニタに出力します。キーの値は文字配列に格納されます。

const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

そのkeysarray はキーパッドのレイアウトを定義しており、これはキーの物理的な配置に対応します。各文字はキーパッド上のボタンを表します。

次に、キーパッドを…に設定しますsetup()関数:

void setup(){
  Serial.begin(9600);
  Serial.println("Robojax 4x3 keypad");
}

このセグメントはシリアル通信をボーレート9600で初期化し、シリアルモニタでキーの押下を表示できるようにします。

最後に、ループはキー入力をチェックし、それに応じて処理を行います:

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key);
  } 
  if (key =='4'){
    Serial.println("Key 4 is pressed");
  } 
}

ここでは、プログラムは任意のキーが押されているかどうかを確認しますkeypad.getKey()キーが押されると、そのキーの値が表示されます。さらに、キー「4」が押された場合は、特定のメッセージが表示されます。

デモンストレーション/期待できること

セットアップが完了すると、キーパッドの任意のキーを押すと対応する文字がシリアルモニタに出力されるはずです。キー '4' を押すと、そのキーが押されたことを示す特別なメッセージが出力されます。この機能により、これを基礎としてより複雑なアプリケーションを構築できます。

フローティング入力は不規則な動作を引き起こす可能性があるため注意してください。すべての接続が確実に固定されていることを確認し、各キーをテストして正常に動作することを確認してください(ビデオの00:00参照)。

画像

4x3_kaypad-1
4x3_kaypad-1
4x3_kaypad-2
4x3_kaypad-2
4x3_kaypad-3
4x3_kaypad-3
4x3_kaypad-4
4x3_kaypad-4
4x3_kaypad-5
4x3_kaypad-5
Arduino_wiring_4x3_keypad
Arduino_wiring_4x3_keypad
128-Ardunino code for 4x3 keypad
言語: C++
/*
 * Library taken from: https://playground.arduino.cc/Code/Keypad
 * This is the Arduino code for a 4x3 keypad.
 * Watch the video for details and demo: http://youtu.be/qIDzzG2LUtg
resources page: www.Robojax.com/RJT104
 * 
 * Modified by Ahmad Shamshiri for the Robojax Video channel: www.Robojax.com/RJT104
 * Date: July 11, 2018 at 19:56 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
 * Watch video instructions for this code: 
 * 
 */
/* @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 = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,8}; //connect to the column pinouts of the keypad

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

void setup(){
  // Robojax 4x3 keypad test
  Serial.begin(9600);
  Serial.println("Robojax 4x3 keypad");
}
  
void loop(){
  // Robojax 4x3 keypad test
  char key = keypad.getKey();
    // Just print the pressed key
   if (key){
    Serial.println(key);
  } 
   // This checks if 4 is pressed, then do something. Here we print the text, but you can control something.
  if (key =='4'){
    // If key matches what you are looking for
    Serial.println("Key 4 is pressed");
  } 

}

必要かもしれないもの

リソースと参考文献

まだリソースはありません。

ファイル📁

フリッツィングファイル

他のファイル