超音波+喇叭 範例_倒車雷達

 




// 超音波感測器模組 腳位接法

const int trigPin = 7;     // 超音波感測器 Trig 腳位

const int echoPin = 6;     // 超音波感測器 Echo 腳位

// 超音波感測器 Vcc 腳位  接 5V

// 超音波感測器 Gnd 腳位  接  Gnd


// 喇叭模組 腳位接法

const int speakerPin = 9;  // 3W 喇叭腳位接+極

// 3W 喇叭腳位接-極 接GND



long getDistance() {

    digitalWrite(trigPin, LOW);

    delayMicroseconds(2);

    digitalWrite(trigPin, HIGH);

    delayMicroseconds(10);

    digitalWrite(trigPin, LOW);


    long duration = pulseIn(echoPin, HIGH);

    long distance = duration * 0.034 / 2; // 轉換為公分

    return distance;

}


void setup() {

    pinMode(trigPin, OUTPUT);

    pinMode(echoPin, INPUT);

    pinMode(speakerPin, OUTPUT);

    Serial.begin(9600);

}


void loop() {

    long distance = getDistance();


    Serial.print("Distance: ");

    Serial.print(distance);

    Serial.println(" cm");


    if (distance > 100 || distance == 0) {

        noTone(speakerPin); // 100 公分以上不發聲

    } else if (distance > 30) {

        tone(speakerPin, 1000, 500); // 每 0.5 秒嘟 1 聲

        delay(500);

        noTone(speakerPin); // 停 0.5 秒

        delay(500);

    } else {

        tone(speakerPin, 1000); // 30 公分內,連續嘟

    }

}




留言