「神はプログラミングを学ぶ刻まれた」DIY Arduinoの(26) - 4X4マトリックスキーボードモジュール

パラグラフ37及び基準センサモジュールは、広く実際には、Arduinoのセンサモジュールと互換以上37種である必要があり、インターネット上で循環されます。私が手にセンサーやモジュールの数を蓄積しておりますので、実際に基づいて---、コンセプト(DIYに必ず)ハンズオン実験、成功したか否か、記録されます実行しようとするためにここに一つずつ調製する目的のための学習とコミュニケーション最適ですほとんど進展または開始することを期待して、問題を処理することはできません。 

 

実験の[] Arduinoのシリーズ、センサモジュール108の種類(情報+ +グラフィック+シミュレーションコード)

実験二十から六:4X4行列キーモジュール(タッチボタン)

 

マトリックスキーボード

グループは、外部の装置に使用されるキーパッドマトリクス配列マイクロコントローラと同様です。キーボードマトリックス構造は、明らかに、いくつかの直接的な方法よりも複雑であるだけでなく、認識複合体、抵抗を介して正の電源に接続された列線と、出力端子として、マイクロコントローラI / Oポートに接続された行ラインおよび列ラインコンタクトI / Oポートは入力として使用されます。追加の外部入力回路の設計として、独立したコントロールボタンは、IOリソースの多くを無駄にする必要があるので、最も使用される4X4で、従来のキーボードマトリクス4X4と8X8、で、キーボードの行列があるでしょう。

動作原理
マトリックスキーボード、行線として4つのI / O線であるキーボードも知ら決定基、キーボードからなる列線として4つのI / Oライン。行及び列線の各交点、セットボタン。したがって、キーボードのキーの数が4X4あります。キーボード設定のこの決定は、システムのマイクロコントローラI / Oポートの利用率を向上させることができます。いずれかのキーが押されたときに、行及び列ラインの両方がラインであるラインので、マイクロコントローラIOポート機能を有する、キーボタンキーの座標を決定するために、計算によって描くことができます。

 

原理走査線
1、行ラインプログラミング入力ラインこと、出力線はカラムダウン線、列線のすべての変更があるので、行線が決定され、キーが押された場合、キーを押し対応する行ラインがローに引っ張られますそうでない場合は、すべての行ラインが高いです。
キーが押された後に2は、再び機械10msの遅延ジッタ、読み出し行の値を排除するために、最初のステップで判定された場合、次のステップに低い状態更に進行中の行ライン、そうでなければ最初のステップおよび判定。
他の三つが高いダウン3、キーのスキャン開始位置は、それぞれ、プログレッシブスキャン、1ミリ秒の各時間間隔、と関係なく、どの列の第一列、第二列、第3列、第4列、ダウンしています、それぞれ、リード線位置のキー値を見つけるために、行の値と列の値は、レジスタに格納されています。
図4に示すように、このキーの値が符号化される第4行は、第4の値を符号化されるまで、それは最初の行から最初の行のように符号化され、レジスタから行と列の値を検索し、キーの値を与えるためにそれらを結合します「0000」から「1111」から、その後、デコードされた、最後の表示ボタン番号。

 

4ピンストレート4×4行列キーパッド
(1)小型;
(2)スペースを節約、
使用の(3)容易さ;
16個のキー(4)総;
(5)、マイクロコントローラ拡張キーボード良い選択。

 

行列のキーボードに必要なライブラリファイル

ArduinoのIDE 1.8.0以降では、プロジェクト - >ライブラリの検索キーパッドを管理して、それをインストール - > [ライブラリを追加します。

また、ライブラリをダウンロードすることができます(ライブラリファイルhttps://github.com/Chris--A/Keypadをダウンロードする必要があります)、その後、手動でIDE内のライブラリフォルダにファイルを追加するには、IDEを再起動することができます。

インストール4×4行列キーボード
4×4行列キーボード8女性アパーチャの列を有し、それは理論的には0〜7フィートに直接接続することができるが、シリアル通信端子0,1のために、我々は、2〜13フィートから選択することができ、 2〜9フィートのこちらを選択。キーパッドピンのR1 - > Arduinoのピン2 キーパッドピンR2 - > Arduinoのピン3 キーパッドピンR3 - > Arduinoのピン4 キーパッドピンR4 - >アルドゥイーノピン5 キーパッドピンC1 - > Arduinoのピン6。キーパッド端子C2 - >アルドゥイーノピン7 キーパッドピンC3 - > 8 Arduinoのピン。キーパッドピンC4 - > Arduinoのピン9。









 

/*

【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)

实验二十六:4X4矩阵键盘模块(12键示例代码)

实验区域位3x4

*/

 

#include <Keypad.h>

 

const byte ROWS = 4; 

const byte COLS = 3; 

 

char keys[ROWS][COLS] = {

  {'1','2','3'},

  {'4','5','6'},

  {'7','8','9'},

  {'#','0','*'}

};

byte rowPins[ROWS] = {5, 4, 3, 2}; 

byte colPins[COLS] = {8, 7, 6}; 

 

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

 

void setup(){

  Serial.begin(9600);

}

 

void loop(){

  char key = keypad.getKey();

 

  if (key != NO_KEY){

    Serial.println(key);

  }

}

  

这是一个非常简单的示例,可以看到将键盘输入添加到Arduino程序中是多么容易。也可以将此类输入用于许多不同的项目,包括:
●    门锁
●    输入PWM
●    闹钟
●    安全锁等

 

尝试图形编程

 

/*

【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)

实验二十六:4X4矩阵键盘模块(16键示例代码)

*/

 

#include <Keypad.h>

 

const byte ROWS = 4; 

const byte COLS = 4; 

 

char hexaKeys[ROWS][COLS] = {

  {'1','2','3','A'},

  {'4','5','6','B'},

  {'7','8','9','C'},

  {'*','0','#','D'}

};

 

byte rowPins[ROWS] = {2, 3, 4, 5}; 

byte colPins[COLS] = {6, 7, 8, 9}; 

 

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);

  }

}

  

 

程序思路
1
#include <Keypad.h>   //加载库


2
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};//建立二维数组,用于设置按键的输出字符


3
byte rowPins[ROWS] = {2,3,4,5};   //定义行引脚
byte colPins[COLS] = {6,7,8,9};     //定义列引脚


4
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //实例化Keypad 对象


5
char key = keypad.getKey();//新建一个key 变量 用于获取键盘当前的值

 

4X4矩阵键盘模块的应用电路

尝试的仿真事件编程

おすすめ

転載: www.cnblogs.com/eagler8/p/11479087.html