2017-05-06 15 views
1

私はArduino UnoにHC-SR04超音波センサーを接続しています。私が抱えている問題は、シリアルモニタをチェックしてセンサが動作しているかどうかを確認することです。距離に関係なく「範囲外」としか表示されません。私はRedLEDがオンのままでブザーが消えないので距離計算が間違っているかもしれないと信じています。ここでArduino Unoで超音波センサーを正しく動作させるには?

は私.inoコードです:私は回答でそれを投稿しますので

#define trigPin 6 
#define echoPin 7 
#define RedLED 9 
#define buzzer 3 

int sound = 500; 


void setup() { 
    Serial.begin (9600); 
    pinMode(trigPin, OUTPUT); 
    pinMode(echoPin, INPUT); 
    pinMode(RedLED, OUTPUT); 
    pinMode(buzzer, OUTPUT); 
} 

void loop() { 
    long duration, distance; 
    digitalWrite(trigPin, LOW); 
    delayMicroseconds(2); 
    digitalWrite(trigPin, HIGH); 
    delayMicroseconds(10); 
    digitalWrite(trigPin, LOW); 
    duration = pulseIn(echoPin, HIGH); 
    distance = (duration/5)/29.1; 


    if (distance < 20) { 
    digitalWrite(RedLED, HIGH); 
    sound = 1000; 
} 
else { 
    digitalWrite(RedLED,LOW); 
} 

if (distance > 20 || distance <= 0){ 
    Serial.println("Out of range"); 
    noTone(buzzer); 
} 
else { 
    Serial.print(distance); 
    Serial.println(" cm"); 
    tone(buzzer, sound); 

} 
delay(300); 
} 

答えて

0

コメントを投稿することができません。

VCCを3.3Vではなく5Vに接続していることを確認してください。
あなたの計算は大丈夫だと思います。また、計算を除外するには、期間を印刷して、それが変化するかどうかを確認するだけです。

関連する問題