質問編集履歴

4

誤ってソースを変えてしまったので、元に戻しました。

2021/11/08 06:41

投稿

Y.Ta
Y.Ta

スコア2

test CHANGED
File without changes
test CHANGED
@@ -116,108 +116,112 @@
116
116
 
117
117
  count=count+1;
118
118
 
119
+ lcd.setCursor(0, 1); // LCD2行目指定
120
+
121
+ lcd.print("Count___");
122
+
123
+ lcd.print(count);
124
+
125
+ }}
126
+
127
+
128
+
129
+ void setup() {
130
+
131
+ //パルスイン
132
+
133
+ pinMode( 2, INPUT_PULLUP);
134
+
135
+ attachInterrupt(0,Count_pin, RISING); //2ピン=0, if関数, HIGHになった時に関数呼び出す
136
+
137
+
138
+
139
+ lcd.init(); // LCDの初期化
140
+
141
+ lcd.backlight(); // LCDバックライトの点灯
142
+
143
+ lcd.setCursor(0, 0); // LCD1行目指定
144
+
145
+ lcd.print("Coil Turn Count"); // 文字の表示
146
+
147
+ lcd.setCursor(0, 1); // LCD2行目指定
148
+
149
+ lcd.print("Count___");
150
+
151
+ lcd.print(count); // カウントアップの変数を入れたい
152
+
153
+
154
+
155
+ myStepper.setSpeed(200);//X軸動作速度
156
+
157
+
158
+
159
+ //DCモーター
160
+
161
+ pinMode(3, OUTPUT);//enA
162
+
163
+ pinMode(4, OUTPUT);
164
+
165
+ pinMode(5, OUTPUT);
166
+
119
167
 
120
168
 
169
+ Serial.begin(9600);
170
+
121
- }}
171
+ }
122
-
123
-
124
-
172
+
173
+
174
+
125
- void setup() {
175
+ void rot1(){
126
-
127
- //パルスイン
176
+
128
-
129
- pinMode( 2, INPUT_PULLUP);
177
+
130
-
131
- attachInterrupt(0,Count_pin, RISING); //2ピン=0, if関数, HIGHになった時に関数呼び出す
178
+
132
-
133
-
134
-
135
- lcd.init(); // LCDの初期化
136
-
137
- lcd.backlight(); // LCDバックライトの点灯
138
-
139
- lcd.setCursor(0, 0); // LCD1行目指定
140
-
141
- lcd.print("Coil Turn Count"); // 文字の表示
142
-
143
- lcd.setCursor(0, 1); // LCD2行目指定
144
-
145
- lcd.print("Count___");
146
-
147
- lcd.print(count); // カウントアップの変数を入れたい
148
-
149
-
150
-
151
- myStepper.setSpeed(200);//X軸動作速度
152
-
153
-
154
-
155
- //DCモーター
179
+ //DCモーター制御
156
-
180
+
157
- pinMode(3, OUTPUT);//enA
181
+ digitalWrite(4, HIGH);//正転
158
-
159
- pinMode(4, OUTPUT);
182
+
160
-
161
- pinMode(5, OUTPUT);
183
+ digitalWrite(5, LOW);
184
+
185
+ analogWrite(3, 80);
186
+
187
+
188
+
189
+ }
190
+
191
+
192
+
193
+ void rot2(){
194
+
195
+
196
+
197
+ //X軸制御
198
+
199
+ myStepper.step(250);
200
+
201
+ delay(10);
202
+
203
+ myStepper.step(-250);
204
+
205
+ delay(10);
206
+
207
+
208
+
209
+ }
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+ void loop() {
162
218
 
163
219
 
164
220
 
165
- Serial.begin(9600);
166
-
167
- }
168
-
169
-
170
-
171
- void rot1(){
221
+ rot1();
172
-
173
-
174
-
175
- //DCモーター制御
176
-
177
- digitalWrite(4, HIGH);//正転
178
-
179
- digitalWrite(5, LOW);
180
-
181
- analogWrite(3, 80);
182
-
183
-
184
-
185
- }
186
-
187
-
188
-
189
- void rot2(){
190
-
191
-
192
-
193
- //X軸制御
194
-
195
- myStepper.step(250);
196
222
 
197
223
  delay(10);
198
224
 
199
- myStepper.step(-250);
200
-
201
- delay(10);
202
-
203
-
204
-
205
- }
206
-
207
-
208
-
209
-
210
-
211
-
212
-
213
- void loop() {
214
-
215
-
216
-
217
- rot1();
218
-
219
- delay(10);
220
-
221
225
  rot2();
222
226
 
223
227
  delay(10);

3

非接触センサーの動作確認を行いました

2021/11/08 06:41

投稿

Y.Ta
Y.Ta

スコア2

test CHANGED
File without changes
test CHANGED
@@ -30,6 +30,20 @@
30
30
 
31
31
  -非接触センサー
32
32
 
33
+ (マグネットが最大に近づいた時にデジタルテスターで2pin~GND間で5.5vの電圧を確認できました
34
+
35
+ 。オシロスコープでも確認できました。
36
+
37
+
38
+
39
+ 現状はDCモーターには取り付けず手でつけたり離したりしている状況です。
40
+
41
+ 近づいている時は常に5.5Vです。距離が遠のくと徐々に電圧降下します。
42
+
43
+ もともと9000RPMくらいまで対応できるセンサーです。)
44
+
45
+
46
+
33
47
 
34
48
 
35
49
  やりたいこと

2

volatile int を追加。まだカウントアップはされません。

2021/11/08 05:26

投稿

Y.Ta
Y.Ta

スコア2

test CHANGED
File without changes
test CHANGED
@@ -86,7 +86,7 @@
86
86
 
87
87
  Stepper myStepper(200, 8, 9, 10, 11);//X軸モーター
88
88
 
89
- int count = 0; //カウント基準
89
+ volatile int count = 0; //カウント基準
90
90
 
91
91
 
92
92
 
@@ -102,44 +102,38 @@
102
102
 
103
103
  count=count+1;
104
104
 
105
+
106
+
107
+ }}
108
+
109
+
110
+
111
+ void setup() {
112
+
113
+ //パルスイン
114
+
115
+ pinMode( 2, INPUT_PULLUP);
116
+
117
+ attachInterrupt(0,Count_pin, RISING); //2ピン=0, if関数, HIGHになった時に関数呼び出す
118
+
119
+
120
+
121
+ lcd.init(); // LCDの初期化
122
+
123
+ lcd.backlight(); // LCDバックライトの点灯
124
+
125
+ lcd.setCursor(0, 0); // LCD1行目指定
126
+
127
+ lcd.print("Coil Turn Count"); // 文字の表示
128
+
105
- { lcd.setCursor(0, 1); // LCD2行目指定
129
+ lcd.setCursor(0, 1); // LCD2行目指定
106
130
 
107
131
  lcd.print("Count___");
108
132
 
109
133
  lcd.print(count); // カウントアップの変数を入れたい
110
134
 
111
- }
112
-
113
- }}
114
-
115
-
116
-
117
- void setup() {
118
-
119
- //パルスイン
120
-
121
- pinMode( 2, INPUT_PULLUP);
122
-
123
- attachInterrupt(0,Count_pin, RISING); //2ピン=0, if関数, HIGHになった時に関数呼び出す
124
-
125
135
 
126
136
 
127
- lcd.init(); // LCDの初期化
128
-
129
- lcd.backlight(); // LCDバックライトの点灯
130
-
131
- lcd.setCursor(0, 0); // LCD1行目指定
132
-
133
- lcd.print("Coil Turn Count"); // 文字の表示
134
-
135
- lcd.setCursor(0, 1); // LCD2行目指定
136
-
137
- lcd.print("Count___");
138
-
139
- lcd.print(count); // カウントアップの変数を入れたい
140
-
141
-
142
-
143
137
  myStepper.setSpeed(200);//X軸動作速度
144
138
 
145
139
 

1

配線図の追加

2021/11/08 04:28

投稿

Y.Ta
Y.Ta

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- ### 前提・実現したいこと
1
+ ![イメージ説明](44cb37502a64c8a2011812d0146e1d84.jpeg)### 前提・実現したいこと
2
2
 
3
3
  Arudiuno UNOプラグラムについて
4
4
 
@@ -20,6 +20,18 @@
20
20
 
21
21
 
22
22
 
23
+ 配線図です。手書きで申し訳ありません。
24
+
25
+ Arduino-L298n-ステッピングモーター
26
+
27
+ -L298n-DCモーター
28
+
29
+ -I2C-LCD
30
+
31
+ -非接触センサー
32
+
33
+
34
+
23
35
  やりたいこと
24
36
 
25
37
  /DCモーターでコイル巻く