Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

Arduinoねた その47 SRF-05

2014-01-10 | Arduinoねた

M&Yが使っている超音波センサーは SRF-05 というものです。

なんで、これを選択したか!? というと、安かったから・・・

当時、超音波センサーは、結構な値段でした。

LEGO MINDSTORMS の超音波センサーは(確か)5,500円だし・・・

有名な PING))) も5,000円位していました。

安い超音波センサーを探していて見つけたのが SRF-05 で、当時は1,500円位でした。


ところが、最近、いくつかのチームから「SRF-05」について問合わせを受けました。

なんか、「SRFシリーズは、干渉に強い・・・」らしいです。

(本当にそうなの!?)


ということで、改めて、SRF-05のおさらいをしておこうかと・・・


SRF-05はDevantech社の超音波センサーです。


Dsc05706


M&Yが、このセンサーを選択したのは、上にも書いたように単に安かったからです。

価格は11.49GBP(英ポンド)で、当時は1,500円くらいでした。(今は、円安なので、2,000円程度)

それと、最短検知距離が1cmだったから・・・

テクニカルシートはこちらです。

http://www.robot-electronics.co.uk/htm/srf05tech.htm

まあ、これを読めば、私が変な説明をする必要は無いですよね。(笑)


Arduinoとの接続は、3本で、5VとGNDと信号線、だけです。(Mode2の場合)

信号線1本で、入力と出力を切り替えて共用します。


プログラムは単純明快で・・・

int SRF05( )
{
  int d;
 
  pinMode( PORT , OUTPUT );
  digitalWrite( PORT , HIGH );
  delayMicroseconds(10);
  digitalWrite( PORT , LOW);
  pinMode( PORT , INPUT );
  d = pulseIn( PORT , HIGH )/58;
  return( d );
}

これで、PORT で指定したピンに信号線を接続したSRF-05で距離を測ります。

返す値は 1cm 単位になります。


まあ、これが普通だと思うのですが、これを実験していて・・・気が付いたのですが・・・

上のプログラムでは、1本の信号線を出力と入力に切り替えて使っています。

これを切り替えなくても、なんか動く(動いちゃう)みたいです。

ポートを入力に設定したままで

int SRF05( )
{
  int d;
 
  digitalWrite( PORT , HIGH );
  delayMicroseconds(10);
  digitalWrite( PORT , LOW);
  d = pulseIn( PORT , HIGH )/58;
  return( d );
}

を実行しても、普通に計測できます。(何で!?)


しかし、ポートを出力にしたままでは、計測できません。

まあ、ちゃんと、入力と出力を切り替えた方が、精神的にも良いと思います。(笑)

コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする