プログラム例では、「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」を表示する。
「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 件のコメント:
コメントを投稿