2026年3月7日土曜日

脳トレゲーム対応制御学習ボード3 スイッチ制御

  プログラム例では、「loop」関数部のみを示します。「loop」関数部以外は変更しないでください。

(1)if文

 プログラムの制御を行うときに使う命令の一つが「if」文です。

 if文の基本は「if文のみ」と「if-else文」です。

 「if文」の「条件1」が成り立つときに「処理1」を行う命令。

 「if-else文」の「条件1」が成り立つときに「処理1」を行う、成り立たないときに「処理2」を行う命令。

があります。


(2)スイッチSW1を押したら数字「1」を表示する。離しているときは数字「0」を表示する。

 スイッチを離しているときは「1(HIGH)」の状態で、スイッチを押すと「0(LOW)」になる回路になっています。このためプログラムでは「digitalRead(SW1)」の値がゼロ(押した)の時に数字「1」を表示し、それ以外は数字「0」を表示します。
 if-else文を使っています。
void loop() {
  if(digitalRead(SW1)==0){
    // 数字「1」を表示
    digitalWrite(SEG_A, 0);
    digitalWrite(SEG_B, 1);
    digitalWrite(SEG_C, 1);
    digitalWrite(SEG_D, 0);
    digitalWrite(SEG_E, 0);
    digitalWrite(SEG_F, 0);
    digitalWrite(SEG_G, 0);
  }else{
    // 数字「0」を表示
    digitalWrite(SEG_A, 1);
    digitalWrite(SEG_B, 1);
    digitalWrite(SEG_C, 1);
    digitalWrite(SEG_D, 1);
    digitalWrite(SEG_E, 1);
    digitalWrite(SEG_F, 1);
    digitalWrite(SEG_G, 0);
  }
}

(3)スイッチSW1を押したら数字「1」を表示、スイッチSW2を押したら数字「2」を表示する。離しているときは数字「0」を表示する。

 条件が2つ以上あるときには、「if-else if-else」文を使います。
 「else if」のelseとifの間にはスペースが必要です。

void loop() {
  if(digitalRead(SW1)==0){
    // 数字「1」を表示
    digitalWrite(SEG_A, 0);
    digitalWrite(SEG_B, 1);
    digitalWrite(SEG_C, 1);
    digitalWrite(SEG_D, 0);
    digitalWrite(SEG_E, 0);
    digitalWrite(SEG_F, 0);
    digitalWrite(SEG_G, 0);
  }else if(digitalRead(SW2)==0){
    // 数字「2」を表示
    digitalWrite(SEG_A, 1);
    digitalWrite(SEG_B, 1);
    digitalWrite(SEG_C, 0);
    digitalWrite(SEG_D, 1);
    digitalWrite(SEG_E, 1);
    digitalWrite(SEG_F, 0);
    digitalWrite(SEG_G, 1);
  }else{
    // 数字「0」を表示
    digitalWrite(SEG_A, 1);
    digitalWrite(SEG_B, 1);
    digitalWrite(SEG_C, 1);
    digitalWrite(SEG_D, 1);
    digitalWrite(SEG_E, 1);
    digitalWrite(SEG_F, 1);
    digitalWrite(SEG_G, 0);
  }
}

(4)演習

a)スイッチSW1を押したら数字「1」を表示、スイッチSW2を押したら数字「2」を表示、スイッチSW3を押したら数字「3」を表示する。離しているときは数字「0」を表示する。


 hint.  「else if」を増やしていくと条件を増やすことができます。
  if(      ){
    // 数字「1」を表示

  }else if(     ){
    // 数字「2」を表示    

  }else if(     ){
    // 数字「3」を表示  

  }else{
    // 数字「0」を表示

  }

b)同じようにスイッチSW6まで増やしましょう。

0 件のコメント:

コメントを投稿

LEDマトリックス表示装置の設計・製作 9(画像表示)

  LEDマトリックスに画像を表示させるには、いろいろな画像形式を知る必要があります。現在、よく使われるJPG形式やPNG形式は圧縮処理されて保存されています。これに対して、BMP形式やTIFF形式は非圧縮形式で、画像データがそのまま保存されています。このため、ファイルは大きくな...