08 January 2013
Arduino有很多有趣的擴充shield,
像是ethernet, wifi, bluetooth, 溫度測量, 溼度測量等等之類的!

這篇要講的是整合ultrasonic sensor,
透過這顆sensor去算出與前面障礙物的距離,
他的原理就是透過聲波去偵測,
發出一段聲波,然後根據回傳回來的時間來判斷出距離!


我使用的ultrasonic sensor是HC-SR04這顆,
這顆有4隻pin腳,
分別為
  • VCC
  • Trig
  • Echo
  • GND
VCC和GND就不需要多講了!就是正電與負電!自己接上去吧!
要講的是Trig和Echo這兩隻pin腳!
Trig的作用在於發出聲波,
Echo的作用就是取得回音的時間,
所以可以知道Trig作為output,
Echo作為Input!

然後把這兩隻pin腳也接在arduino上去,
在我的範例中,我是把Trig接在pin4,
Echo接在pin3,






下面為sample!
int iOutputPin = 4; // trig
int iInputPin = 3; // echo
long lCm;
void setup(){

Serial.begin(9600);
pinMode(iInputPin,INPUT);
pinMode(iOutputPin,OUTPUT);
}

void loop(){

digitalWrite(iOutputPin, HIGH);
delayMicroseconds(10); // 意思是發出訊號10microsecond,10是根據一個公式得出的.
digitalWrite(iOutputPin, LOW);

int distance = pulseIn(iInputPin, HIGH);
if (distance < 0) lCm = 0;
else lCm = distance / 58; // 除以58也是根據一個公式而來,除58單位就會變成cm
Serial.print(lCm);
Serial.print("cm ");
Serial.println("");
delay(500);
}




deploy上去以後,打開console,應該可以看到下圖.
PS:如果你的ultrasonic senso只有三根pin腳...那就代表你的trig和echo都為同一隻,
只要在code中互換pinMode就一樣可以正常使用了!




blog comments powered by Disqus