質問編集履歴

2

プログラムの説明の記入

2021/08/10 08:24

投稿

jake0228
jake0228

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,12 @@
1
1
  ```c
2
+
3
+ //HC-SR04を設定
2
4
 
3
5
  #define trigPin A4
4
6
 
5
7
  #define echoPin A5
6
8
 
7
-
9
+ //2つのモーターを定義
8
10
 
9
11
  #include <AFMotor.h>
10
12
 
@@ -12,19 +14,19 @@
12
14
 
13
15
  AF_DCMotor motor4 (4);
14
16
 
15
-
17
+ //間隔、距離
16
18
 
17
19
  long duration;
18
20
 
19
21
  int distance;
20
22
 
21
- bool bolMotor1;
22
23
 
23
- bool bolMotor4;
24
24
 
25
25
 
26
26
 
27
27
  void setup(){
28
+
29
+ //HC-SR04を設定
28
30
 
29
31
  pinMode(trigPin, OUTPUT);
30
32
 
@@ -32,19 +34,13 @@
32
34
 
33
35
  Serial.begin(9600);
34
36
 
35
-
36
-
37
- bolMotor1 = false;
37
+ //モータのスピードを設定する
38
-
39
- bolMotor4 = false;
40
-
41
-
42
38
 
43
39
  motor1.setSpeed(200);
44
40
 
45
41
  motor4.setSpeed(200);
46
42
 
47
-
43
+ //モータを停止させる
48
44
 
49
45
  motor1.run(RELEASE);
50
46
 
@@ -52,7 +48,7 @@
52
48
 
53
49
  }
54
50
 
55
-
51
+ //HC-SR04で距離を測定する
56
52
 
57
53
  void loop(){
58
54
 
@@ -72,13 +68,7 @@
72
68
 
73
69
  distance = duration*0.034/2;
74
70
 
75
- Serial.print("Distance = ");
71
+ //距離が25センチ以上の時は前進、それ以下の場合はモータ4を逆回転させる
76
-
77
- Serial.print(distance);
78
-
79
- Serial.println("cm");
80
-
81
-
82
72
 
83
73
  if (distance >= 25){
84
74
 

1

プログラムの追加

2021/08/10 08:24

投稿

jake0228
jake0228

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,106 @@
1
- ```c++
1
+ ```c
2
2
 
3
+ #define trigPin A4
4
+
5
+ #define echoPin A5
6
+
7
+
8
+
9
+ #include <AFMotor.h>
10
+
11
+ AF_DCMotor motor1 (1);
12
+
13
+ AF_DCMotor motor4 (4);
14
+
15
+
16
+
17
+ long duration;
18
+
19
+ int distance;
20
+
21
+ bool bolMotor1;
22
+
23
+ bool bolMotor4;
24
+
25
+
26
+
27
+ void setup(){
28
+
29
+ pinMode(trigPin, OUTPUT);
30
+
31
+ pinMode(echoPin, INPUT);
32
+
33
+ Serial.begin(9600);
34
+
35
+
36
+
37
+ bolMotor1 = false;
38
+
39
+ bolMotor4 = false;
40
+
41
+
42
+
43
+ motor1.setSpeed(200);
44
+
45
+ motor4.setSpeed(200);
46
+
47
+
48
+
49
+ motor1.run(RELEASE);
50
+
51
+ motor4.run(RELEASE);
52
+
53
+ }
54
+
55
+
56
+
57
+ void loop(){
58
+
59
+ uint8_t i;
60
+
61
+ digitalWrite(trigPin, LOW);
62
+
63
+ delayMicroseconds(5);
64
+
65
+ digitalWrite(trigPin, HIGH);
66
+
67
+ delayMicroseconds(10);
68
+
69
+ digitalWrite(trigPin, LOW);
70
+
71
+ duration = pulseIn(echoPin, HIGH);
72
+
73
+ distance = duration*0.034/2;
74
+
75
+ Serial.print("Distance = ");
76
+
77
+ Serial.print(distance);
78
+
79
+ Serial.println("cm");
80
+
81
+
82
+
83
+ if (distance >= 25){
84
+
85
+ motor1.run(FORWARD);
86
+
87
+ motor4.run(FORWARD);
88
+
3
- コード
89
+ }else{
90
+
91
+ motor1.run(FORWARD);
92
+
93
+ motor4.run(BACKWARD);
94
+
95
+ }
96
+
97
+
98
+
99
+
100
+
101
+ delay(1);
102
+
103
+ }
4
104
 
5
105
  ```arduino にモーター制御シールドをつけ、DCモータ2個と超音波距離センサーを接続して、障害物を回避する車を作るためのプログラムを作成いたしました。
6
106