2011年11月22日 星期二

Ultrasonic Ranging Module - HC-SRO4 + Arduino

超音波距離感測器,我買的是兩顆眼睛、四隻腳的HC-SRO4(正面如下圖)
HC-SRO4正面看由左至右的腳分別是
  • Vcc
  • Trig
  • Echo
  • Gnd
眼前程度體會的重點有兩個,一個是自己透過Trig, Echo完成一個Ping完成一次發送/接收超音波測距的動作,針對Trig送10 microsecond的HIGH訊號出去,然後SRO4就會送出8個40kHz的square wave出去,當訊號回來的時候,我們透過pulseIn()取得Echo pin HIGH pulse的時間;另一個是距離的計算根據datasheet說明的Echo back pulse width(這裡是Echo Pin由LOW -> HIGH -> LOW的時間) microseconds除上58就是距離(cm),除上148就是inch的距離。

Lab 1 - 結果送出Serial Port

/**
 *  Ultrasonic 1: 超音波測距 秀在Serial Port 9600
 */
#define TrigPin 10
#define EchoPin 13

long ping() {
  // PING
  digitalWrite( TrigPin, LOW );
  delayMicroseconds( 2 );
  digitalWrite( TrigPin, HIGH );
  delayMicroseconds( 10 );
  digitalWrite( TrigPin, LOW );
  return pulseIn( EchoPin, HIGH );
}

void setup() {
  pinMode( TrigPin, OUTPUT );
  pinMode( EchoPin, INPUT );
  Serial.begin( 9600 );
}

void loop() {
  long duration, cm;
  String result = "Distance: ";

  duration = ping();
  cm = duration / 58;
  result += cm;
  result += " (cm).";
  Serial.println( result );
  delay( 1500 );
}
終於買了其他顏色的單芯線,那就紅色是高電位、黑色接Gnd、其他顏色就接訊號,還沒想說input/output用啥顏色來區分。
換個角度再照一張

Lab 2 - 結果顯示在16*2 LCD

沒有留言:

張貼留言