質問編集履歴
4
プログラムの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -84,8 +84,60 @@
|
|
84
84
|
|
85
85
|
10日立IGBT (JRE231系1000番台)
|
86
86
|
|
87
|
+
11東洋GTO (京急600形)
|
88
|
+
|
89
|
+
12オリジナルIGBT「オクターブ」
|
90
|
+
|
91
|
+
13オリジナルIGBT「ランダム変調」
|
92
|
+
|
93
|
+
14オリジナルGTO 「多変調」
|
94
|
+
|
95
|
+
15オリジナルGTO「大きな木」
|
96
|
+
|
87
97
|
*/
|
88
98
|
|
99
|
+
boolean pulseMode, ModeBuffer;
|
100
|
+
|
101
|
+
volatile double Kfrq, KfrqT, Vout, Vout_To, Hz, HzS, hzss, Discom, HzTo;
|
102
|
+
|
103
|
+
volatile int pulse, PulseBuffer;
|
104
|
+
|
105
|
+
float stepper, StepBuffer;
|
106
|
+
|
107
|
+
int analog;
|
108
|
+
|
109
|
+
double Vout_U, Vout_V, Vout_W;
|
110
|
+
|
111
|
+
volatile uint16_t U, V, W, Top, Top2;
|
112
|
+
|
113
|
+
volatile int32_t SynU, SynV, SynW;
|
114
|
+
|
115
|
+
int RANDOMT;
|
116
|
+
|
117
|
+
bool H, SendTrigger;
|
118
|
+
|
119
|
+
const volatile uint8_t U_table[] PROGMEM = {/*sinU相*/};
|
120
|
+
|
121
|
+
const volatile uint8_t V_table[] PROGMEM = {/*sinV相*/};
|
122
|
+
|
123
|
+
const volatile uint8_t W_table[] PROGMEM = {/*sinW相*/};
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
const volatile bool sqU_table[] PROGMEM = {/*矩形U相*/};
|
128
|
+
|
129
|
+
const volatile bool sqV_table[] PROGMEM = {/*矩形V相*/};
|
130
|
+
|
131
|
+
const volatile bool sqW_table[] PROGMEM = {/*矩形W相*/}
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
const volatile uint8_t Mu_table[] PROGMEM = {/*広域3パルス比較波U相*/};
|
136
|
+
|
137
|
+
const volatile uint8_t Mv_table[] PROGMEM = {/*広域3パルス比較波V相*/};
|
138
|
+
|
139
|
+
const volatile uint8_t Mw_table[] PROGMEM = {/*広域3パルス比較波W相*/};
|
140
|
+
|
89
141
|
opereator_type sin_operator, SinBuffer;
|
90
142
|
|
91
143
|
opereator_type sin_operator_adder;
|
@@ -94,6 +146,14 @@
|
|
94
146
|
|
95
147
|
|
96
148
|
|
149
|
+
const byte XPulse_table_U[2][28][114] PROGMEM = {/*同期モードテーブルU相*/};
|
150
|
+
|
151
|
+
const byte XPulse_table_W[2][28][114] PROGMEM = {/*同期モードテーブルV相*/};
|
152
|
+
|
153
|
+
const byte XPulse_table_V[2][28][114] PROGMEM = {/*同期モードテーブルW相*/};
|
154
|
+
|
155
|
+
|
156
|
+
|
97
157
|
#define Ut pgm_read_byte_near(&sqU_table[(sin_operator/Shift)])
|
98
158
|
|
99
159
|
#define Vt pgm_read_byte_near(&sqV_table[(sin_operator/Shift)])
|
@@ -116,7 +176,7 @@
|
|
116
176
|
|
117
177
|
void setKfrq(uint8_t SoundType) {
|
118
178
|
|
119
|
-
//省略
|
179
|
+
//省略
|
120
180
|
|
121
181
|
}
|
122
182
|
|
@@ -128,7 +188,7 @@
|
|
128
188
|
|
129
189
|
}
|
130
190
|
|
131
|
-
void Sp_Up(void) {
|
191
|
+
void Sp_Up(void) {//周波数あげる
|
132
192
|
|
133
193
|
macroMODE = 0;
|
134
194
|
|
@@ -156,7 +216,7 @@
|
|
156
216
|
|
157
217
|
}
|
158
218
|
|
159
|
-
void Sp_Dn(void) {
|
219
|
+
void Sp_Dn(void) {//周波数下げ下げマン
|
160
220
|
|
161
221
|
macroMODE = 1;
|
162
222
|
|
@@ -186,7 +246,7 @@
|
|
186
246
|
|
187
247
|
}
|
188
248
|
|
189
|
-
void SerialSendToMain(uint8_t SenderNum, uint8_t SendContent) {
|
249
|
+
void SerialSendToMain(uint8_t SenderNum, uint8_t SendContent) {//デバッグ用
|
190
250
|
|
191
251
|
if (!SendTrigger) {
|
192
252
|
|
@@ -224,19 +284,19 @@
|
|
224
284
|
|
225
285
|
}
|
226
286
|
|
227
|
-
ISR(TIMER4_COMPA_vect) {
|
287
|
+
ISR(TIMER4_COMPA_vect) {//速度制御
|
228
288
|
|
229
289
|
Hz += HzS * 10;
|
230
290
|
|
231
291
|
}
|
232
292
|
|
233
|
-
ISR(TIMER3_COMPA_vect) {
|
293
|
+
ISR(TIMER3_COMPA_vect) {//1パルス
|
234
294
|
|
235
295
|
PORTL = (Ut * 8) | (Vt * 16) | (Wt * 32);
|
236
296
|
|
237
297
|
}
|
238
298
|
|
239
|
-
ISR(TIMER5_CAPT_vect) {
|
299
|
+
ISR(TIMER5_CAPT_vect) {//マルチパルス
|
240
300
|
|
241
301
|
sin_operator += (opereator_type)(sin_operator_adder);
|
242
302
|
|
@@ -264,7 +324,7 @@
|
|
264
324
|
|
265
325
|
}
|
266
326
|
|
267
|
-
ISR(TIMER5_OVF_vect) {
|
327
|
+
ISR(TIMER5_OVF_vect) {//マルチパルス
|
268
328
|
|
269
329
|
sin_operator += (opereator_type)(sin_operator_adder);
|
270
330
|
|
@@ -466,8 +526,6 @@
|
|
466
526
|
|
467
527
|
OCR4A = (8000000 / 1000) - 1;//速度制御
|
468
528
|
|
469
|
-
|
470
|
-
|
471
529
|
analog = analogRead(A0);
|
472
530
|
|
473
531
|
//analog = 1023;
|
@@ -540,6 +598,12 @@
|
|
540
598
|
|
541
599
|
}
|
542
600
|
|
601
|
+
|
602
|
+
|
603
|
+
|
604
|
+
|
605
|
+
|
606
|
+
|
543
607
|
```
|
544
608
|
|
545
609
|
|
3
説明不足の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -556,6 +556,6 @@
|
|
556
556
|
|
557
557
|
|
558
558
|
|
559
|
-
特殊なPWMを出すため、TIMER2,TIMER3,TIMER4のレジスタを編集しています。
|
559
|
+
特殊なPWMを出すため、TIMER2,TIMER3,TIMER4,TIMER5のレジスタを編集しています。
|
560
560
|
|
561
561
|
波形テーブルの宣言と、モーター音指定プログラムは省略しています。
|
2
プログラムの問題の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -84,6 +84,8 @@
|
|
84
84
|
|
85
85
|
10日立IGBT (JRE231系1000番台)
|
86
86
|
|
87
|
+
*/
|
88
|
+
|
87
89
|
opereator_type sin_operator, SinBuffer;
|
88
90
|
|
89
91
|
opereator_type sin_operator_adder;
|
1
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
ArduinoMegaで
|
3
|
+
ArduinoMegaでVVVFインバーターを作って、電車のモーター音を再現しています。
|
4
4
|
|
5
5
|
### 発生している問題・エラーメッセージ
|
6
6
|
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
```
|
10
10
|
|
11
|
-
|
11
|
+
analogRead()がずっと0を返しています。
|
12
12
|
|
13
13
|
```
|
14
14
|
|
@@ -550,8 +550,10 @@
|
|
550
550
|
|
551
551
|
|
552
552
|
|
553
|
-
### 補足
|
553
|
+
### 補足
|
554
|
-
|
555
|
-
|
556
|
-
|
554
|
+
|
555
|
+
|
556
|
+
|
557
|
-
特殊なPWMを出すため、TIMER2,TIMER3,TIMER4のレジスタを
|
557
|
+
特殊なPWMを出すため、TIMER2,TIMER3,TIMER4のレジスタを編集しています。
|
558
|
+
|
559
|
+
波形テーブルの宣言と、モーター音指定プログラムは省略しています。
|