質問するログイン新規登録

質問編集履歴

1

修正

2017/06/29 11:45

投稿

super987
super987

スコア7

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が入らないように超音波センサの値を取得することは可能でしょうか。