質問編集履歴
1
ソースコードに間違いがあったため
title
CHANGED
File without changes
|
body
CHANGED
@@ -90,118 +90,4 @@
|
|
90
90
|
### 該当のソースコード
|
91
91
|
|
92
92
|
```ここに言語名を入力
|
93
|
-
ソースコード
|
93
|
+
ソースコード
|
94
|
-
#include <SD.h>
|
95
|
-
#define chipSelect 4
|
96
|
-
#define Pina 6 // 2 つのピンに名前を付けておく
|
97
|
-
#define Pinb 2
|
98
|
-
#define Pinc 5
|
99
|
-
const int numa = 10800; // 駆動歯車:2880
|
100
|
-
const int numb = 10800; // 被動歯車:3600
|
101
|
-
const int numc = 3; //被動歯車Z相
|
102
|
-
boolean V1a, V2a, V1b, V2b, V1c, V2c;
|
103
|
-
File dataFile;
|
104
|
-
static unsigned long startTime;
|
105
|
-
int i1,i2,i3;
|
106
|
-
void setup(){
|
107
|
-
Serial.begin (9600);
|
108
|
-
|
109
|
-
Serial.print(F("Initializing SD card..."));
|
110
|
-
pinMode(10, OUTPUT);
|
111
|
-
if (!SD.begin(chipSelect)){
|
112
|
-
Serial.println(F("Card failed, or not present"));
|
113
|
-
while(1);
|
114
|
-
}
|
115
|
-
Serial.println(F("ok."));
|
116
|
-
dataFile = SD.open("datalog.txt", FILE_WRITE);
|
117
|
-
Serial.println(F("Recored start!"));
|
118
|
-
startTime=micros();
|
119
|
-
|
120
|
-
pinMode(Pina, INPUT);//6(金属)
|
121
|
-
pinMode(Pinb, INPUT);//2(プラスチック)
|
122
|
-
pinMode(Pinc, INPUT);//Z相
|
123
|
-
pinMode(LED_BUILTIN, OUTPUT);
|
124
|
-
V1a =0;
|
125
|
-
V2a =0;
|
126
|
-
V1b =0;
|
127
|
-
V2b =0;
|
128
|
-
V1c =0;
|
129
|
-
V2c =0;
|
130
|
-
i1=0;
|
131
|
-
i2=0;
|
132
|
-
i3=0;
|
133
|
-
}
|
134
|
-
void loop(){
|
135
|
-
int j,k,l;
|
136
|
-
static unsigned long t1[numa+3]={0}, t2[numb+3]={0},t3[numc+3]={0};
|
137
|
-
V2a = digitalRead(Pina); // 2 つのピンで読んだ値を V1 と V2 に
|
138
|
-
V2b = digitalRead(Pinb);
|
139
|
-
V2c = digitalRead(Pinc);
|
140
|
-
|
141
|
-
if( V1c==0 && V2c>=1 && i3<numc){
|
142
|
-
t3[i3] = micros();
|
143
|
-
i3++;
|
144
|
-
}
|
145
|
-
|
146
|
-
if(V1a==0 && V2a>=1){
|
147
|
-
t1[i1] = micros();
|
148
|
-
i1++;
|
149
|
-
}
|
150
|
-
|
151
|
-
if(V1b==0 && V2b>=1){
|
152
|
-
t2[i2] = micros();
|
153
|
-
i2++;
|
154
|
-
}
|
155
|
-
if(i2>=numb){
|
156
|
-
Serial.print("data record finished");
|
157
|
-
if(((micros()-startTime)%1000000000)<50000000){
|
158
|
-
for(l=0;l<numc;l++){
|
159
|
-
dataFile.println(t3[l]);
|
160
|
-
delay(5);
|
161
|
-
}
|
162
|
-
for(j=0,k=0;j<numa && k<numb ;j++,k++){
|
163
|
-
dataFile.print(t1[j]);
|
164
|
-
dataFile.print(" ");
|
165
|
-
dataFile.println(t2[k]);
|
166
|
-
delay(5);
|
167
|
-
}
|
168
|
-
}
|
169
|
-
for(l=0;l<numc;l++){
|
170
|
-
Serial.println(t3[l],4);
|
171
|
-
delay(20);
|
172
|
-
}
|
173
|
-
for(j=0,k=0;j<numa && k<numb ;j++,k++){
|
174
|
-
Serial.print(t1[j],4);
|
175
|
-
Serial.print(",");
|
176
|
-
Serial.println(t2[k],4);
|
177
|
-
delay(20);
|
178
|
-
}
|
179
|
-
|
180
|
-
i1=0;
|
181
|
-
i2=0;
|
182
|
-
i3=0;
|
183
|
-
if((micros()-startTime)>40000000){ // 1,000,000micros=1sec 40s
|
184
|
-
dataFile.flush();
|
185
|
-
dataFile.close();
|
186
|
-
Serial.println(F("finished"));
|
187
|
-
while(1){
|
188
|
-
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
|
189
|
-
delay(5000); // wait for a second
|
190
|
-
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
|
191
|
-
delay(5000); // wait for a second
|
192
|
-
}
|
193
|
-
}
|
194
|
-
}
|
195
|
-
|
196
|
-
V1a=V2a;
|
197
|
-
V1b=V2b;
|
198
|
-
V1c=V2c;
|
199
|
-
}
|
200
|
-
|
201
|
-
### 試したこと
|
202
|
-
|
203
|
-
データ数をそれぞれ54000個のデータを取得したいです
|
204
|
-
|
205
|
-
### 補足情報(FW/ツールのバージョンなど)
|
206
|
-
|
207
|
-
ここにより詳細な情報を記載してください。
|