課題6 キーパッド

課題6-1

  1. TINKERCADのサイトにアクセスしてサインインする。
  2. 「新規作成」→「回路」をクリックする。
  3. 入れる部品の種類を「コンポーネント すべて」にし、「Arduino Uno 3」「LCD 16 x 2 (I2C)」「キーパッド(4x4)」を入れ、図のように配線する。


  4. コードを「文字」に切り替え、以下のコードをコピー&ペーストする。
  5. #include <Adafruit_LiquidCrystal.h>
    #include <Keypad.h>
    
    Adafruit_LiquidCrystal lcd(0);
    // それぞれのキーに対応させる文字
    char keys[4][4] {
      {'1', '2', '3', 'A'},
      {'4', '5', '6', 'B'},
      {'7', '8', '9', 'C'},
      {'*', '0', '#', 'D'}
    };
    
    byte yPins[4] = {10, 9, 8, 7}; // 縦位置取得用ピン
    byte xPins[4] = {6, 5, 4, 3};  // 横位置取得用ピン
    // キーパッド初期化
    Keypad keypad = Keypad(makeKeymap(keys), yPins, xPins, 4, 4);
    
    void setup(){
      lcd.begin(16, 2); // LCD初期化
      lcd.setCursor(0, 0); // カーソルを上の行左端に移動
    }
    
    void loop(){
      char key = keypad.getKey(); // キーの取得
      if (key!=NO_KEY){ // 何かを押していたら
        lcd.print(key); // そのキーの文字をLCDに表示
      }
    }
    xPins, yPinsで設定している4本+4本のピンがそれぞれ押したボタンの横位置・縦位置に対応する。
    押したキーの情報はgetKey関数で文字として取得される。

  6. 実行してそれぞれのボタンを押し、その文字がLCDに表示されることを確認する。


  7. 名前を「課題6-1」に変更し、トップページに戻ってこの回路を公開する。

課題6-2

  1. 新しい回路「課題6-2」を作って公開する。

  2. 「課題6-2」を編集し、キーパッドを使った機能をつくる。
  3. 以下に例を挙げるが、これらと全く同じものはNG。

    例1 : 電卓
    (A, B, Dのボタンをそれぞれ +, -, = として使い、足し算・引き算を行う。Cキーで結果をクリアする)
    素子・配線は課題6-1と同じ

    コード


    実行結果


    例2 : 数当てゲーム
    (0~9の乱数を作り、上の行には回答した数字とターン数を表示する。下の行にはヒントなどの情報を表示する)
    素子・配線は課題6-1と同じ

    コード


    実行結果



    例3 : 7セグメント ディスプレイへの表示
    (キーパッドで押した数字を7セグメント ディスプレイに表示させる。LCDは使わない)

    素子・配線
    (課題2-1をベースにし、押しボタンと抵抗を削除してキーパッドを追加)
    (キーパッドの左4つ、右4つの端子からArduinoのA3~A0, 12~9につなぐ)


    コード


    実行結果

提出

inserted by FC2 system