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);
}