【Arduino】デジタル出力の超音波センサ(PWM波形)

しばらく放置していたArduinoですが、久しぶりに再開しようと「Prototyping Lab」を読みながら、いろいろセンサを買ってきて繋いでみています。

超音波センサ(「Prototyping Lab」p116 / 3 距離を測りたい(超音波センサ))を試そうと買ってきたら、参考書のセンサはアナログ出力で、買ってきたのはデジタル出力のみでアナログ出力がない…。ということで、いろいろ試してみたのでメモ。
・手に入れた超音波センサ(秋月で一番安かった)
このセンサのFAQページを見ると、PWM波形出力というのが(パルス幅=距離値)らしいので、FAQページに書かれている通りに接続して、このページの「Mode 3: PWM passive control mode」に書かれているスケッチをアップロード。要はこのスケッチでモジュール側の設定を書き換えて、設定書き換え用のピンを抜くと書き換えた設定で計測が開始される…ということらしい。
Pin 8 RXD (URM V3.2) -> Pin 1 (Arduino)
Pin 9 TXD (URM V3.2) -> Pin 0 (Arduino)
を引っこ抜くと、計測値が表示されるようになります(Arduino IDEでツール>シリアルモニタを表示すると、Serial.print() で出力されたメッセージが表示される)。
そこにLCDで計測距離を表示しようとプログラムを書き換えてみるが、計測自体がうまくいかない。調べた結果、LCDシールドと超音波センサモジュールで使用しているデジタルピン番号がかち合っていることが判明。LCDシールドは接続が固定なので、プログラムに書かれている超音波センサ側のピン番号を下記に変更。もちろん繋ぐピンも変更する。
//センサのデジタルピン番号
int URPWM = 8; // 上のページのPin 3 (Arduino)
int URTRIG = 9; // 上のページのPin 5 (Arduino)
これで超音波センサでの計測と結果のLCDシールド表示が完成。LCDシールド表示は、下記のような関数を作ってloopの中で呼び出した。
void showResult(){
  //LCD:初期化
  lcd.clear();
  
  //LCD:表示
  lcd.setCursor(0,0);
  lcd.print("Range: ");
  lcd.print(Distance);
  lcd.print(" cm");
}
かなり初歩的な話なんだけど、すぐ忘れそうなので備忘録として。
<参考>