Arduino—再び(3)–LCD Keypad Shield

ほぼ目的のプログラム(スケッチ--arduinoではこう呼ぶみたいですね。)ができました。難しいものではな
く、入門編によくあるようなLチカ(LEDを点灯させる)のプログラムと大差ありません。ただ、キーの読み取
りをアナログの変化で読み取っているので、安定しない部分があるのか、長押しの判別がどうしても、できま
せんでした。

               押されたキーの判別
                    │
          ┌───────────────────────┐
    UPキーが押された⇒⇒ +1の処理    UPキーが長押しされた⇒⇒+10の処理

のようにしたかったのですが、あきらめて、+10の処理は、RIGHTキーに割り当てました。 スケッチでは、

   キー判別の関数の呼び出し
      
   呼び出されたそれぞれキーの回数をカウントする
      
   カウントが一定以上になったら、キーに応じた処理をする。

という単純なことを、メインのLOOPのなかで、繰り返してるだけです。「回数をカウント」の部分はなくても
いいのですが、一応チャタリングの対策です。
入力した数字をLCDに表示するのに数字の桁数が違ってしまうと、正しい表示がされないので、左詰めで表示
できるように簡単な関数を作りました。文字数を取得する関数が準備されてますが、その書式がどちらかとい
うとエクセルのVBAのような感じで、ちょっと戸惑いました。PICのC言語だと目的の文字を括弧の中にいれる
のですが、ピリオドで連結するようでした。このへんの細かい文法は、その都度調べないとだめですね。

   arduinoの記述  s.length( )  (sが長さを求める文字)
   PICのC言語記述 sterlen(s)   (sが長さを求める文字) 

とりあえず表示ができたLCDです。

PILSEの数字がUPキーで+1,DOWNキーで-1,RIGHTキーで+10、LEFTキーで-10になるようにしました。

PILSEの数字がUPキーで+10,DOWNキーで-10,RIGHTキーで+100、LEFTキーで-100になるようにしました。

“Arduino—再び(3)–LCD Keypad Shield” への2件の返信

  1. おはようございます。
    プログラムも色々とあって、理解するには大変だと思います。
    大したものですね。

    1. 書き込みありがとうございます。細かいところは違いますが、プログラム作るのは、PICに比べると遙かに楽です。
      ただ、反面、割り込み等の細かい設定がいまいちのような気がします。ぼけ防止にはいいかなと思ってやってます。
      LCDがあるだけ、デバックが楽かなと思いましたが、やはり最後の頼みは、LEDを回路にいれて、点滅で判定が、確実でした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA