質問編集履歴
1
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,59 +3,4 @@
|
|
3
3
|
誤差・振れをできるだけ取り除き、安定した距離測定の実現。
|
4
4
|
|
5
5
|
###発生している問題・エラーメッセージ
|
6
|
-
距離は取れているが、誤差・振れが大きい。
|
6
|
+
距離は取れているが、誤差・振れが大きい。
|
7
|
-
###該当のソースコード
|
8
|
-
```
|
9
|
-
#define echo1Pin 4 // Echo1 Pin
|
10
|
-
#define trig1Pin 3 // Trigger1 Pin
|
11
|
-
#define echo2Pin 5 // Echo2 Pin
|
12
|
-
#define trig2Pin 6 // Trigger2 Pin
|
13
|
-
int Duration_1, Duration_2;
|
14
|
-
float Distance_1, Distance_2,AveDistance;
|
15
|
-
void setup() {
|
16
|
-
Serial.begin( 9600 );
|
17
|
-
pinMode( echo1Pin, INPUT );
|
18
|
-
pinMode( trig1Pin, OUTPUT );
|
19
|
-
pinMode( echo2Pin, INPUT );
|
20
|
-
pinMode( trig2Pin, OUTPUT );
|
21
|
-
}
|
22
|
-
////////////////////////////////////////////////////////////////////////////////
|
23
|
-
void loop() {
|
24
|
-
ultra_sonicPin();
|
25
|
-
Distance_1 = Duration_1 / 2;
|
26
|
-
Distance_2 = Duration_2 / 2;
|
27
|
-
Distance_1 = (Distance_1 * 0.034);//1番センサ cm間隔で取得
|
28
|
-
Distance_2 = (Distance_2 * 0.034);//2番センサ cm間隔で取得
|
29
|
-
AveDistance=((Distance_1+Distance_2)/2);//センサ-壁間の距離
|
30
|
-
}
|
31
|
-
////////////////////////////////////////////////////////////////////////////////
|
32
|
-
/* 超音波センサ */
|
33
|
-
void ultra_sonicPin() {
|
34
|
-
int count=0;
|
35
|
-
if(count==0){
|
36
|
-
digitalWrite(trig1Pin, LOW);
|
37
|
-
delayMicroseconds(10);
|
38
|
-
digitalWrite(trig1Pin, HIGH);
|
39
|
-
delayMicroseconds(10);
|
40
|
-
digitalWrite(trig1Pin, LOW);
|
41
|
-
Duration_1 = pulseIn(echo1Pin, HIGH);
|
42
|
-
delay(60);
|
43
|
-
count=1;
|
44
|
-
}
|
45
|
-
if(count=1){
|
46
|
-
digitalWrite(trig2Pin, LOW);
|
47
|
-
delayMicroseconds(10);
|
48
|
-
digitalWrite(trig2Pin, HIGH);
|
49
|
-
delayMicroseconds(10);
|
50
|
-
digitalWrite(trig2Pin, LOW);
|
51
|
-
Duration_2 = pulseIn(echo2Pin, HIGH);
|
52
|
-
delay(60);
|
53
|
-
count=0;
|
54
|
-
}
|
55
|
-
}
|
56
|
-
```
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
###補足情報(言語/FW/ツール等のバージョンなど)
|
61
|
-
また、main文内にdelayが入らないように超音波センサの値を取得することは可能でしょうか。
|