int trig = 8;
int echo = 9;
int led[7] = {0,1,2,3,4,5,6};
float cm,inch;
void setup() {
pinMode(trig,OUTPUT); //初始化超音波發射器為OUTPUT
pinMode(echo,INPUT); //初始化超音波接收器為INPUT
for(int i = 1;i <= 6;i++)pinMode(led[i],OUTPUT); //初始化六個LED
Serial.begin(9600); //初始化序列埠傳輸速率
//delay(3000);
Serial.println("ShowDistance : ");
}
void loop() {
//trig發出脈衝
digitalWrite(trig,LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
//接收時間
long etime = pulseIn(echo,HIGH);//等到pin到HIGH之後開始計時直到LOW 回傳Microseconds;
//計算距離
cm = etime/29/2;
inch = etime/74/2;
Serial.print(cm);
Serial.println("cm");
Serial.print(inch);
Serial.println("inch");
for(int i = 1;i <= 6;i++) //全部LED熄滅
{
digitalWrite(led[i],LOW);
}
for(int i = 1;i <= ((cm/10)+1)&&i <= 6;i++) //判斷需有幾個燈亮並點亮
{
digitalWrite(led[i],HIGH);
}
delay(500); //每500毫秒更新一次距離
}

Hubert's Coding Notes
Useful notes for CS people