質問編集履歴

4

プログラムの修正

2021/07/17 12:35

投稿

VVVF_IR
VVVF_IR

スコア1

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

説明不足の修正

2021/07/17 12:35

投稿

VVVF_IR
VVVF_IR

スコア1

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

プログラムの問題の修正

2021/07/17 12:12

投稿

VVVF_IR
VVVF_IR

スコア1

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

文法の修正

2021/07/17 11:57

投稿

VVVF_IR
VVVF_IR

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- ArduinoMegaで3相インバーターを作って、電車のモーター音を再現しています。
3
+ ArduinoMegaでVVVFインバーターを作って、電車のモーター音を再現しています。
4
4
 
5
5
  ### 発生している問題・エラーメッセージ
6
6
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  ```
10
10
 
11
- 780行目のanalogRead()がずっと0を返しています。
11
+ analogRead()がずっと0を返しています。
12
12
 
13
13
  ```
14
14
 
@@ -550,8 +550,10 @@
550
550
 
551
551
 
552
552
 
553
- ### 補足情報(FW/ツールのバージョンなど)
553
+ ### 補足
554
-
555
-
556
-
554
+
555
+
556
+
557
- 特殊なPWMを出すため、TIMER2,TIMER3,TIMER4のレジスタをいじっています。
557
+ 特殊なPWMを出すため、TIMER2,TIMER3,TIMER4のレジスタを編集しています。
558
+
559
+ 波形テーブルの宣言と、モーター音指定プログラムは省略しています。