超音波測距センサーSRF02を使ってみる

世の中、いろんな超音波測距センサーはあるものでして。簡単に使えそうなものをってことで、SRF02なんてどうでしょう。

例によってピン配置

基板にある固定用のネジがある方から記す。右からになる。

  • GND
  • MODE
  • SCL
  • SDA
  • 5V

結線

今回は、
Sparkfun Pro Micro 16MHz版
を使った。USBで給電している場合にはVCCピンに5Vが出てくるので、これをSRF02の5Vと接続すれば動く。

c

Pro Micro SRF02
VCC 5V
2 SDA
3 SCL
Mode
GND GND

MODEピンにはなにも接続しない、これでI2C通信ができるはず。

今回私は9番ピンに圧電ブザーを接続してみた。

適当にスケッチを書く

いろんな参考サイトがあるからそちらを見てね。

ARduino Leonardoでブザーを鳴らす

前書き

ARduinoの入門スクリプトとしてLEDを点滅させるスケッチはよく見かける。C言語で言うところの”Hello World”みたいなものだろうか。

さて、LEDの代わりに、ブザーを鳴らすことを考えてみよう。

ブザーには2種類ある

ブザーには、ただ電流を流してやれば一定の音がするいわゆるブザーと、スピーカーのように振る舞う圧電ブザーという2種類がある。前者であればLEDの点滅スケッチがそのまま使えるだろう。LEDの代わりにブザーを接続すれば音が出るはずだ。

では、後者の場合は?残念ながら音は出ない。点滅の瞬間にちっちゃなノイズが出るかもしれないが、これでは実用にはならない。

サンプルコード

#define SW 9
#define BZ 8
#define TONE_FREQ 700

void setup()
{
    pinMode(SW, INPUT_PULLUP);
    pinMode(BZ, OUTPUT);
}

void loop()
{
    if (digitalRead(SW) == LOW) {
        tone(BZ, TONE_FREQ);
        while (digitalRead(SW) == LOW); // 離されるのを待つ
        delay(10); // チャタリング除去
    }
    else if (digitalRead(SW) == HIGH) {
        noTone(BZ);
        while (digitalRead(SW) == HIGH); // 押されるのを待つ
    }
    return;
}

動作

スイッチを押している間だけ音が鳴る。ピンはどれでも良いのだけれど、私がこの実験に使ったマイコンのピン配置から考えてちょっと楽だっただけだ。

後書き

小学生の頃、電子工作が好きだった担任の先生が、モールス符号を練習するというキットを作って見せてくれた。完全なアナログ発振回路。ここでやっていることは、その練習機と同等のことだ。スイッチの代わりにキー(電鍵)を接続すれば、モールス練習機になる。

時代は移り変わったとは言え、全く違う考え方や手法を使って同じことを実現しているんだな、と感慨にふけってみた瞬間であった。

HiLetgo Atmega32u4 pro micro

なにものか?

Sparkfun Arduino Pro Microの互換品である。本物を持っていないので、ピン配置とかが完全に同じなのかは知らない。とりあえずピン配置などのメモ。

接続

買ってきた状態でUSB端子に接続すると、Arduino Leonardoとして認識される。それはそれで良いのだろうな。

ピン配置

USB端子を左側にして、チップがある面を表にして置く。ピンは上下2段。左から記す。

RAW GND RST VCC A3 A2 A1 A0 D15 D14 D16 D10
TXO AXI GND GND D2 D3 D1 D5 D6 D7 D8 D9