Groveで広がるArduinoの世界-Senser Kit-⑩ Grove Buzzer

 ブザーには、電圧をかけると音が出る(鳴る)自励式と、数kHzの信号を入力すると鳴る他励式の2種類があります。Grove Buzzerは、どちらでしょう?

接続

 D5端子につなげているSIG端子から、1kΩの抵抗を通してトランジスタにつながります。トランジスタでブザーymd12065をドライブします。センサ・キットに入っていますが、ブザーは出力デバイスです。

プログラム

 製造元のGrove - Buzzerにあるスケッチを動かします。

void setup() {
  pinMode(5, OUTPUT);
}
 
void loop() {
  digitalWrite(5, HIGH);
  delay(1000);
  digitalWrite(5, LOW);
  delay(1000);
}

 1秒ごとにカチカチという音は聞こえますが、ブザーはなりませんでした。自励式ではないようです。なのに、サンプル・スケッチがあるのは、意味不明です。

 では、THE BUZZERのページにあるtone関数を使ったサンプル・スケッチを動かします。

#define BUZZER 5
 
void setup() {  
  // put your setup code here, to run once:
  pinMode(BUZZER, OUTPUT);
}
 
void loop() {
  tone(BUZZER, 85); //Set the voltage to high and makes a noise
  delay(1000);//Waits for 1000 milliseconds
  noTone(BUZZER);//Sets the voltage to low and makes no noise
  delay(1000);//Waits for 1000 milliseconds
}

 ジー、ジーというブザーが鳴りました。tone関数は、次のように三つの引数をもちます。

  tone(pin, frequency, duration)

 duration=鳴らす時間ですが、省略できます。止めるときは、noTone(pin)関数を使います。

 周波数を85Hzから440Hzに変更しました。強めのピーという感じになりました。2000Hzは小さな音でピーと鳴っているようです。しっかり音量を望むなら1000Hzまでにしておいたほうがよいようです。

応用

 光センサが暗い状態を感知したらブザーを鳴らします。

#include "Arduino_SensorKit.h"
#define light_sensor A3 
#define BUZZER 5
 
void setup()
{  
  // put your setup code here, to run once:
  pinMode(BUZZER, OUTPUT);
  Environment.begin();
}
 
void loop()
{
  int raw_light;
  raw_light= analogRead(light_sensor); // read the raw value from light_sensor pin (A3)
  int light = map(raw_light, 0, 1023, 0, 100);
  if (light < 5 ) {
    tone(BUZZER, 1000); //Set the voltage to high and makes a noise
    delay(1000);//Waits for 1000 milliseconds
    noTone(BUZZER);//Sets the voltage to low and makes no noise
    delay(1000);//Waits for 1000 milliseconds
  }
  delay(2000);
}

前へ

Groveで広がるArduinoの世界-Senser Kit-⑨ Grove Sound Sensor

次へ

Groveで広がるArduinoの世界-Senser Kit-⑪ まとめ