工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

4x3キーパッドのピンは3つだけ

コンポーネントと消耗品

>
抵抗330オーム
× 1
抵抗1kオーム
× 3
抵抗器3kオーム
× 1
4x3マトリックス12キーアレイスイッチキーパッド
× 1
Arduino UNO
× 1

必要なツールとマシン

>
はんだごて(汎用)

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

はじめに

このプロジェクトの目的は、テンキーに必要なピンの数を大幅に減らすことです。これは、ArduinoUnoやNanoboardで利用できるものと比較して多くのI / Oピンが必要になることが多いためです。

通常の数字キーパッドはマトリックスで構成されています。4x3キーパッドには、4 +3のArduinoデジタルピンが必要です。 Arduinoで使用するために、ネット上で多数のライブラリを利用できます。

私の解決策

次の図に示すような回路で、3つのアナログ入力のみを使用するため、私が提案するソリューションははるかに優れています。

<図>

各列には、4つのキーのそれぞれに対応する4つの電圧値と、キーが押されていない場合のゼロボルトのみがあります。同等のスキーム(b)では、R1eは4つの抵抗R1〜R4の1つを示し、R2eは3つの抵抗R5〜R7の1つを示します。

次に、4つの可能な最も広い間隔を作成する方法を見てみましょう。まず、抵抗R2e =R5 =R6 =R7を等しくすることができます。次に、R1 =0に設定して、出力を5Vの最初のラインに対応させることができます。

R2 =330オーム、R3 =1 kオーム、R4 =3 kオーム、R5、R6、R7 =1 kオームの場合、出力ごとに次の間隔が得られます。

<図>

ご覧のとおり、3つの出力の間隔は可能な限り最大であり、±5%の許容誤差を持つ6つの標準抵抗を使用できます。追加のアナログ入力と別の抵抗を使用すると、4x4キーボードなどを使用できます。次の図は、Arduinoとの接続を示しています。

<図>

この図では、抵抗R1がライン2に接続されています。これは、ライン1の抵抗R1がワイヤで描画されているため、抵抗の基準が1つスケーリングされているためです。ピン割り当ては、アナログとしてピン構成可能である限り、必要に応じて変更できます。

もちろん、Arduinoに3.3Vで電力が供給されている場合、ADCコンバーターはデフォルトで供給電圧を使用し、ADC番号は変更されないため、何も変更されません。

このタイプのキーボードを使用せずにプログラムをテストするために、リサイクルキーを使用してプログラムを作成しました。下の図はmyprototypeを示しています。 5ピンの右コネクタを使用してArduinoに配線します。

<図>

コード

  • Analog4x3Keybf.ino
Analog4x3Keybf.ino Arduino
KeyPad()関数をテストする簡単なプログラム
 / *プログラムAnalog4x3Keybf * 3つのアナログ出力を備えた4x3キーキーボードのテスト* G.Carrera- 2018年11月19日* ///キーボード出力値の制限:const int NADCm100 [4 ] ={923,669,412,156}; const int NADCp100 [4] ={1123,869,612,356}; const char key [13] ={'1'、 '4'、 '7'、 'C​​'、 '2'、 '5' 、 '8'、 '0'、 '3'、 '6'、 '9'、 'E'}; int keyval [3]; int i、colp、val; void setup(){Serial.begin(9600); //シリアルモニターで使用} void loop(){char k; k =KeyPad(); //キーパッドを読み取るif(k!='N'){//キーが押されたSerial.print( "key ="); Serial.println(k); delay(500); }} / ********プログラムで使用される関数******** / char KeyPad(){//キーパッドを読み取り、charキーを返します// key ='N' for none KeyScan(); //アナログキーボードを読み取るif(keyval [0] + keyval [1] + keyval [2] <40){return'N '; } else {//キーが押されたdelay(10); //アンチバウンスKeyScan(); //アナログキーボードを再読み取りして(i =0; i <3; i ++){//どの列に属するかを特定するif(keyval [i]> 40){colp =i; val =keyval [i]; //これは(int j =0; j <4; j ++){//列で押されたキーを識別しますif(val> =NADCm100 [j] &&keyval <=NADCp100 [j]){return key [colp * 4 + j];壊す; }}}}}} void KeyScan(){//アナログキーボードの読み取りkeyval [0] =analogRead(A0); delay(1); keyval [1] =analogRead(A1); delay(1); keyval [2] =analogRead(A2); delay(1); } 

回路図


製造プロセス

  1. WS2812 RGBLEDアレイアニメーション用のExcel
  2. 喉の渇き警報プラント警報
  3. イタリア語の単語時計
  4. SigfoxkWhメーター
  5. Bluetooth温度モニター
  6. ジェスチャー制御ロック
  7. コンパニオンIC
  8. USBMIDIアダプター
  9. Arduino用の絶縁アナログ入力
  10. RGB32バンドオーディオスペクトルビジュアライザー
  11. 反応時間を測定する