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

質問編集履歴

1

ソースコードに間違いがあったため

2021/02/03 12:44

投稿

Yokkii
Yokkii

スコア2

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
- ここにより詳細な情報を記載してください。