こんにちは。NABEです。
前回からサンプルプログラムを使ってのロボット制御が始まりました。
今回はSTEP2でブザーを扱います。
ブザーを鳴らす
ブザーの種類
世の中で使われているブザーは大きく分けて2種類ありますが、トレーニングトレーサーに使われているブザーは圧電ブザーという、電圧を印加(回路や装置に電圧をかけること)して音が鳴るタイプです。
ちなみにもうひとつは電磁ブザーというもので、電磁石の力で音を出します。
圧電ブザーの中でも
①一定の電圧を加えると音を出す自励振タイプ
②外部から入力される信号によって音を出す他励振タイプ
があります。
トレーニングトレーサーは①の自励振タイプなので、LEDと似た命令でブザーを鳴らすことができます。
STEP2
STEP2のファイルを開いて書き込むと…
1秒ブザーが鳴り、1秒消音、を繰り返します。
また、ブザーが鳴るときはLEDが点灯し、消音時はLEDが消灯します。
プログラムを見てきましょう。
前回LEDを点滅させたSTEP1に、ブザーの項目が追加されたような内容です。
12 int LED_Pin = D13; 13 int BUZZER_Pin = D2; 14 15 void setup() { 16 // put your setup code here, to run once: 17 pinMode(LED_Pin,OUTPUT); 18 pinMode(BUZZER_Pin,OUTPUT); 19 } 20 21 void loop() { 22 // put your main code here, to run repeatedly: 23 digitalWrite(LED_Pin,HIGH);//LEDを点灯 24 digitalWrite(BUZZER_Pin,HIGH); 25 delay(1000); //1秒待つ 26 digitalWrite(LED_Pin,LOW);//LED消灯 27 digitalWrite(BUZZER_Pin,LOW); 28 delay(1000); //1秒待つ 29 }
上から順番に見ていきます。
12 int LED_Pin = D13; 13 int BUZZER_Pin = D2;
13行目でブザーのピン配置が記録されています。
ブザーはD2のピンヘッダから繋がっているようです。
15 void setup() { 16 // put your setup code here, to run once: 17 pinMode(LED_Pin,OUTPUT); 18 pinMode(BUZZER_Pin,OUTPUT); 19 }
setup()のところにもブザーの設定が追加されています。
LEDと同じくOUTPUTで出力にします。
21 void loop() { 22 // put your main code here, to run repeatedly: 23 digitalWrite(LED_Pin,HIGH);//LEDを点灯 24 digitalWrite(BUZZER_Pin,HIGH); 25 delay(1000); //1秒待つ 26 digitalWrite(LED_Pin,LOW);//LED消灯 27 digitalWrite(BUZZER_Pin,LOW); 28 delay(1000); //1秒待つ 29 }
メインの関数です。
前回LEDに出したdigitalWrite()とdelay()の間に、ブザーについてのdigitalWrite()が追記されています。
ブザーもLEDと感覚的には同じで
HIGH=鳴る
LOW=鳴らない
です。
このように書けば、LEDの点灯と同時に鳴り、消灯と同時に消音になります。
演習問題
トレーニングトレーサーの解説マニュアルでは、サンプルプログラムの内容を解説するだけでなく、演習問題が用意されています。
STEP2の演習問題はこちらです。
「LED消灯時に音が鳴り、LED点灯時に消音になるようにしてみましょう」
setup()まではそのままで大丈夫そうなので、21行目~28行目に注目します。
21 void loop() { 22 // put your main code here, to run repeatedly: 23 digitalWrite(LED_Pin,HIGH);//LEDを点灯 24 digitalWrite(BUZZER_Pin,HIGH); 25 delay(1000); //1秒待つ 26 digitalWrite(LED_Pin,LOW);//LED消灯 27 digitalWrite(BUZZER_Pin,LOW); 28 delay(1000); //1秒待つ 29 }
23、24行目でLED点灯とブザー鳴動がセットになっていて
26、27行目でLED消灯とブザー消音がセットになっています。
この組み合わせが入れ替われば良さそうですね。
21 void loop() { 22 // put your main code here, to run repeatedly: 23 digitalWrite(LED_Pin,HIGH);//LEDを点灯 24 digitalWrite(BUZZER_Pin,LOW); 25 delay(1000); //1秒待つ 26 digitalWrite(LED_Pin,LOW);//LED消灯 27 digitalWrite(BUZZER_Pin,HIGH); 28 delay(1000); //1秒待つ 29 }
24行目をLOWにして、27行目をHIGHにしました。
これでLED消灯時にブザー鳴動、LED点灯時にブザー消音となりました!
今回はブザーのところを書き換えましたが、LEDのところを同様に書き換えても正解です。
解説マニュアルにはもちろん、演習問題の答えと解説が載っています。
このような演習問題を行うことで、自分がきちんと理解しているかチェックできるのが良いですね。
以上、演習問題のご紹介でした。
次回はサンプルプログラムのSTEP3へ進み、スイッチを使います!
Part.8へつづく