[Arduino] Ultrasound

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毫秒更新一次距離
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *