Forum: Mikrocontroller und Digitale Elektronik Verluste am Motor? Oder Fehler im Code?


von Kartoffel (Gast)


Lesenswert?

Hi zusammen,
also ich programmiere ja an einem Motorregler. Es ist mir aufgefallen, 
dass meine Drehzahl_ist kleiner ist, als die, die ich vorgegeben habe.
Habe die Spannung, die am Motor ankommt gemessen, die ist fast so groß 
wie die Spannung am Netzteil, also kommt am Motor schon mal das an, was 
ankommen soll.
Die Drehzahlmessung müsste eigentlich auch stimmen: habe bei einer 
geringen Drehzahl die Umdrehungen optisch gemessen und mit dem Wert, den 
das Programm ausgibt, verglichen-> sind gleich. Allerdings kommen bei 
höheren Drehzahlen Abweichungen zustande, meine max. Drehzahl ist im 
Leerlauf so um die 3500, die Marke 2500 wird aber nie überschritten.
Weiß vielleicht einer woran das liegen könnte?

danke schön

von huhu (Gast)


Lesenswert?

Hi,
So richtig verstehe ich dein Problem nicht. Bzw, was du da aufgebaut 
hast.
Es könnten vll. bei deiner MC Messung Abweichungen im oberen 
Drehzahlbereich auftreten, oder eine Spannungsmessung war falsch.
mfg

von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

Schaltplan, Bilder?

von Kartoffel (Gast)


Lesenswert?

Also wie gesagt, am Schaltplan sollte das nicht liegen (IMHO), denn 
genau am Motor kommt ja die Spannung an, die ankommen sollte. Also ist 
es doch so, dass die Verluste der Schaltung dabei nicht so große Rolle 
spielen.

@huhu: also ich hab mich auch gefragt, wie das sein kann, dass meine 
Messung nur im unteren Drehzahlbereich nen Sinn macht und in oberen 
nicht. Ich tu ja nichts anderes....

von Rolf Magnus (Gast)


Lesenswert?

> Also wie gesagt, am Schaltplan sollte das nicht liegen (IMHO), denn
> genau am Motor kommt ja die Spannung an, die ankommen sollte.

Wenn er trotzdem zu langsam läuft, kann das doch dann auch kaum am 
Programm liegen. Oder ist hier eine PWM im Spiel, mit der das 
Spannungsmeßgerät evtl. nicht klar kommt?

von Kartoffel (Gast)


Lesenswert?

@ Rolf: da ist schon PWM im Spiel!!!
Wieso sollte das U-Messgerät damit nicht klar kommen????

von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

Kartoffel wrote:

> also ich programmiere ja an einem Motorregler. Es ist mir aufgefallen,
> dass meine Drehzahl_ist kleiner ist, als die, die ich vorgegeben habe.

Zu kleiner oder gar kein I-Anteil im Regler?



Zur Messung: Vllt ist deine auswertung zu langsam? im µC mit Interrupts 
gecodet?

von Matthias L. (Gast)


Lesenswert?

Der Transitor T42 erhält zuwenig Basisstrom, und in Programmzeile 24 
hast du dich im Vorzeichen vertan.

>Schaltplan, Bilder?

???

von Gonzo (Gast)


Lesenswert?

Hi,

ist die ausgegebene Spannung wirklich so hoch wie die von deinem 
Netzteil? Was passiert wenn du die Netzteilspannung erhöhst? Bist Du 
vielleicht an der Aussteuergrenze?

Gruß,
Gonzo

von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

Gonzo wrote:

> ist die ausgegebene Spannung wirklich so hoch wie die von deinem
> Netzteil? Was passiert wenn du die Netzteilspannung erhöhst? Bist Du
> vielleicht an der Aussteuergrenze?


Kann auch sein das dein Regler keinen "Spielraum" mehr hat...

von Kartoffel (Gast)


Lesenswert?

@JÜrgen: also der Regler ist eigentlich noch gar nicht im Spiel -> den 
Regelalgorithmus ruf ich noch gar nicht auf.

Ich poste mal den Code:
1
//****************************************************************************
2
// @Defines
3
//****************************************************************************
4
5
// USER CODE BEGIN (CC1_General,4)
6
/*
7
#define MAX 65535    // untere Grenze
8
#define MIN 65135     // obere Grenze
9
#define MAXDREH 3000  // maximale Drehzahl
10
11
*/
12
// USER CODE END
13
14
15
//****************************************************************************
16
// @Global Variables
17
//****************************************************************************
18
19
// USER CODE BEGIN (CC1_General,7)
20
volatile unsigned int CC9alt;    // Dummy für Inhalt bei der vorheringen pos. Flanke (global)
21
volatile unsigned long int Counter_dif;  // Inhaltdifferenz des Timers bei 2 pos. Flanken
22
volatile unsigned long int Drehzahl_mot; // Istdrehzahl 
23
24
25
//****************************************************************************
26
// @Prototypes Of Local Functions
27
//****************************************************************************
28
29
// USER CODE BEGIN (CC1_General,9)
30
31
unsigned long int Drehzahl (void);  // Funktion zur Berechnung der Drehzahl
32
//unsigned long int Drehz_setzen(int);          // Solldrehzahl setzen mit Überwinden des Anlaufmomentes
33
34
// USER CODE END
35
36
37
38
39
//****************************************************************************
40
//              Variablen
41
//****************************************************************************
42
unsigned int Counter = 0;  // zum Zählen der Interrupts
43
//int Pulsbreite = 400;
44
//unsigned long int Hexwert;  // der entspr. Wert für CC2_CC30
45
46
47
//****************************************************************************
48
//               Unterfunktionen
49
//****************************************************************************
50
unsigned long int Drehzahl(void)
51
{
52
unsigned long int Drehz =0;
53
54
  /*if (Counter ==1)
55
  {
56
    CC9alt = 0x0000;
57
  } */
58
  if (CC1_CC9 < CC9alt) // Heißt: der Timer ist abgelaufen
59
    {
60
    Counter_dif = 0-(CC1_CC9-CC9alt);
61
    //Counter=0;
62
    }
63
  else
64
    {
65
  Counter_dif = CC1_CC9-CC9alt;
66
    }
67
68
  CC9alt = CC1_CC9;
69
70
71
  Drehz = 1200000L/(int)Counter_dif; // Drehzahl in Umdrehungen pro Minute
72
73
74
   return Drehz; 
75
}
76
77
78
// USER CODE END
79
80
void CC1_vInit(void)
81
{
82
  // USER CODE BEGIN (Init,2)
83
84
  CC9alt = 0x0000; // Vorbelegen für die erste Berechnung der Periode
85
   
86
  // USER CODE END
87
88
  ///  -----------------------------------------------------------------------
89
  ///  Configuration of CAPCOM1 Control:
90
  ///  -----------------------------------------------------------------------
91
  ///  - the contents of the port register is changed by the CAPCOM1 unit
92
  ///  - staggered mode is disabled
93
94
  CC1_IOC        =  0x0004;      // load CAPCOM1 I/O control register
95
96
  ///  -----------------------------------------------------------------------
97
  ///  Configuration of CAPCOM1 Timer 0:
98
  ///  -----------------------------------------------------------------------
99
  ///  - timer 0 works in timer mode
100
  ///  - prescaler factor is 4
101
  ///  - timer 0 run bit is set
102
103
  ///  -----------------------------------------------------------------------
104
  ///  Configuration of CAPCOM1 Timer 1:
105
  ///  -----------------------------------------------------------------------
106
  ///  - timer 1 works in timer mode
107
  ///  - prescaler factor is 1
108
  ///  - timer 1 run bit is reset
109
110
111
  CC1_T01CON     =  0x0002;      // load CAPCOM1 timer 0 and timer 1 control 
112
                                 // register
113
114
  CC1_T0         =  0x0000;      // load CAPCOM1 timer 0 register
115
116
  CC1_T0REL      =  0x0000;      // load CAPCOM1 timer 0 reload register
117
118
  CC1_T1         =  0x0000;      // load CAPCOM1 timer 1 register
119
120
  CC1_T1REL      =  0x0000;      // load CAPCOM1 timer 1 reload register
121
122
  ///  -----------------------------------------------------------------------
123
  ///  Configuration of the used CAPCOM1 Timer Port Pins:
124
  ///  -----------------------------------------------------------------------
125
126
127
  ///  -----------------------------------------------------------------------
128
  ///  Configuration of the used CAPCOM1 Timer Interrupts:
129
  ///  -----------------------------------------------------------------------
130
  ///  Tmr0 service request node configuration:
131
  ///  - Tmr0 interrupt priority level (ILVL) = 9
132
  ///  - Tmr0 interrupt group level (GLVL) = 1
133
  ///  - Tmr0 group priority extension (GPX) = 0
134
135
  CC1_T0IC       =  0x0065;     
136
137
138
139
  ///  -----------------------------------------------------------------------
140
  ///  Configuration of the used CAPCOM1 Channel 0:
141
  ///  -----------------------------------------------------------------------
142
  ///  - channel 0 is disabled
143
144
  CC1_CC0        =  0x0000;      // load CAPCOM1 channel 0 register
145
146
  ///  -----------------------------------------------------------------------
147
  ///  Configuration of the used CAPCOM1 Channel 1:
148
  ///  -----------------------------------------------------------------------
149
  ///  - channel 1 is disabled
150
151
  CC1_CC1        =  0x0000;      // load CAPCOM1 channel 1 register
152
153
  ///  -----------------------------------------------------------------------
154
  ///  Configuration of the used CAPCOM1 Channel 2:
155
  ///  -----------------------------------------------------------------------
156
  ///  - channel 2 is disabled
157
158
  CC1_CC2        =  0x0000;      // load CAPCOM1 channel 2 register
159
160
  ///  -----------------------------------------------------------------------
161
  ///  Configuration of the used CAPCOM1 Channel 3:
162
  ///  -----------------------------------------------------------------------
163
  ///  - channel 3 is disabled
164
165
  CC1_CC3        =  0x0000;      // load CAPCOM1 channel 3 register
166
167
  ///  -----------------------------------------------------------------------
168
  ///  Configuration of the used CAPCOM1 Channel 4:
169
  ///  -----------------------------------------------------------------------
170
  ///  - channel 4 is disabled
171
172
  CC1_CC4        =  0x0000;      // load CAPCOM1 channel 4 register
173
174
  ///  -----------------------------------------------------------------------
175
  ///  Configuration of the used CAPCOM1 Channel 5:
176
  ///  -----------------------------------------------------------------------
177
  ///  - channel 5 is disabled
178
179
  CC1_CC5        =  0x0000;      // load CAPCOM1 channel 5 register
180
181
  ///  -----------------------------------------------------------------------
182
  ///  Configuration of the used CAPCOM1 Channel 6:
183
  ///  -----------------------------------------------------------------------
184
  ///  - channel 6 is disabled
185
186
  CC1_CC6        =  0x0000;      // load CAPCOM1 channel 6 register
187
188
  ///  -----------------------------------------------------------------------
189
  ///  Configuration of the used CAPCOM1 Channel 7:
190
  ///  -----------------------------------------------------------------------
191
  ///  - channel 7 is disabled
192
193
  CC1_CC7        =  0x0000;      // load CAPCOM1 channel 7 register
194
195
  ///  -----------------------------------------------------------------------
196
  ///  Configuration of the used CAPCOM1 Channel 8:
197
  ///  -----------------------------------------------------------------------
198
  ///  - channel 8 is disabled
199
200
  CC1_CC8        =  0x0000;      // load CAPCOM1 channel 8 register
201
202
  ///  -----------------------------------------------------------------------
203
  ///  Configuration of the used CAPCOM1 Channel 9:
204
  ///  -----------------------------------------------------------------------
205
  ///  - capture on positive transition (rising edge) at pin CC9IO (P2.9)
206
  ///  - CC9 allocated to CAPCOM1 timer 0
207
  ///  - single event mode is disabled
208
209
210
  CC1_CC9        =  0x0000;      // load CAPCOM1 channel 9 register
211
212
  ///  -----------------------------------------------------------------------
213
  ///  Configuration of the used CAPCOM1 Channel 10:
214
  ///  -----------------------------------------------------------------------
215
  ///  - channel 10 is disabled
216
217
  CC1_CC10       =  0x0000;      // load CAPCOM1 channel 10 register
218
219
  ///  -----------------------------------------------------------------------
220
  ///  Configuration of the used CAPCOM1 Channel 11:
221
  ///  -----------------------------------------------------------------------
222
  ///  - channel 11 is disabled
223
224
  CC1_CC11       =  0x0000;      // load CAPCOM1 channel 11 register
225
226
  ///  -----------------------------------------------------------------------
227
  ///  Configuration of the used CAPCOM1 Channel 12:
228
  ///  -----------------------------------------------------------------------
229
  ///  - channel 12 is disabled
230
231
  CC1_CC12       =  0x0000;      // load CAPCOM1 channel 12 register
232
233
  ///  -----------------------------------------------------------------------
234
  ///  Configuration of the used CAPCOM1 Channel 13:
235
  ///  -----------------------------------------------------------------------
236
  ///  - channel 13 is disabled
237
238
  CC1_CC13       =  0x0000;      // load CAPCOM1 channel 13 register
239
240
  ///  -----------------------------------------------------------------------
241
  ///  Configuration of the used CAPCOM1 Channel 14:
242
  ///  -----------------------------------------------------------------------
243
  ///  - channel 14 is disabled
244
245
  CC1_CC14       =  0x0000;      // load CAPCOM1 channel 14 register
246
247
  ///  -----------------------------------------------------------------------
248
  ///  Configuration of the used CAPCOM1 Channel 15:
249
  ///  -----------------------------------------------------------------------
250
  ///  - channel 15 is disabled
251
252
  CC1_CC15       =  0x0000;      // load CAPCOM1 channel 15 register
253
254
  CC1_M0         =  0x0000;      // load CAPCOM1 mode register 0
255
  CC1_M1         =  0x0000;      // load CAPCOM1 mode register 1
256
  CC1_M2         =  0x0010;      // load CAPCOM1 mode register 2
257
  CC1_M3         =  0x0000;      // load CAPCOM1 mode register 3
258
259
  CC1_DRM        =  0x0000;      // load CAPCOM1 double-register mode register
260
261
  CC1_SEM        =  0x0000;      // load CAPCOM1 single event mode register
262
263
  CC1_SEE        =  0x0000;      // load CAPCOM1 single event enable register
264
265
  CC1_OUT        =  0x0000;      // load CAPCOM1 compare output register
266
267
  ///  -----------------------------------------------------------------------
268
  ///  Configuration of the used CAPCOM1 Channel Port Pins:
269
  ///  -----------------------------------------------------------------------
270
  ///  - P2.9 is used for CAPCOM1 Input (CC9IO)
271
272
273
  ///  -----------------------------------------------------------------------
274
  ///  Configuration of the used CAPCOM1 Channels Interrupts:
275
  ///  -----------------------------------------------------------------------
276
  ///  CC9 service request node configuration:
277
  ///  - CC9 interrupt priority level (ILVL) = 9
278
  ///  - CC9 interrupt group level (GLVL) = 3
279
  ///  - CC9 group priority extension (GPX) = 0
280
281
  CC1_CC9IC      =  0x0067;     
282
283
284
285
  CC1_T01CON_T0R    = 1;    // set CAPCOM1 timer 0 run bit
286
287
  // USER CODE BEGIN (Init,3)
288
289
  // USER CODE END
290
291
} //  End of function CC1_vInit
292
293
294
//****************************************************************************
295
// @Function      void CC1_viTmr0(void) 
296
//
297
//----------------------------------------------------------------------------
298
// @Description   This is the interrupt service routine for the CAPCOM1 timer 
299
//                0. It is called when overflow of the timer 0 register 
300
//                occurs.
301
//                Please note that you have to add application specific code 
302
//                to this function.
303
//
304
//----------------------------------------------------------------------------
305
// @Returnvalue   None
306
//
307
//----------------------------------------------------------------------------
308
// @Parameters    None
309
//
310
//----------------------------------------------------------------------------
311
// @Date          21.11.2007
312
//
313
//****************************************************************************
314
315
// USER CODE BEGIN (Tmr0,1)
316
317
// USER CODE END
318
319
void CC1_viTmr0(void) interrupt CC1_T0INT using RB_LEVEL9
320
{
321
  // USER CODE BEGIN (Tmr0,2)
322
323
  // USER CODE END
324
325
} //  End of function CC1_viTmr0
326
327
328
//****************************************************************************
329
// @Function      void CC1_viCC9(void) 
330
//
331
//----------------------------------------------------------------------------
332
// @Description   This is the interrupt service routine for the CAPCOM1 
333
//                register CC9. If the content of the corresponding compare 
334
//                timer (configurable) equals the content of the 
335
//                capture/compare register CC9 or if a capture event occurs 
336
//                at the associated port pin, the interrupt request flag is 
337
//                set and an interrupt is triggered (only if enabled).
338
//                Please note that you have to add application specific code 
339
//                to this function.
340
//
341
//----------------------------------------------------------------------------
342
// @Returnvalue   None
343
//
344
//----------------------------------------------------------------------------
345
// @Parameters    None
346
//
347
//----------------------------------------------------------------------------
348
// @Date          21.11.2007
349
//
350
//****************************************************************************
351
352
// USER CODE BEGIN (CC9,1)
353
354
// USER CODE END
355
356
void CC1_viCC9(void) interrupt CC1_CC9INT using RB_LEVEL9
357
{
358
  // USER CODE BEGIN (CC9,2)
359
360
  Counter++; // zählen der Interrupts  und der Encoderimpulse
361
362
  Drehzahl_mot = Drehzahl();
363
364
365
366
  // USER CODE END
367
368
} //  End of function CC1_viCC9

Die Auswertung der Drehzahl ist schon mit ISR gecoded.
Also ich hab 2 ISR: eine für die Drehzahl und eine für PWM-Erzeugung. 
Die PWM hat nen höheren Level wie die Drehzahlmessung. Anders würd es ja 
nicht funktionieren..

von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

Kartoffel wrote:
> @JÜrgen: also der Regler ist eigentlich noch gar nicht im Spiel -> den
> Regelalgorithmus ruf ich noch gar nicht auf.

Gut, also es geht mal nur um die Auswertung...

> Die Auswertung der Drehzahl ist schon mit ISR gecoded.
> Also ich hab 2 ISR: eine für die Drehzahl und eine für PWM-Erzeugung.
> Die PWM hat nen höheren Level wie die Drehzahlmessung. Anders würd es ja
> nicht funktionieren...

Wieso würd es anders nicht funktionieren? Damit verhaust du dir 
allerdings die Drehzahlmessung...

Schalt mal den Interrupt für die PWM ab, und sieh dir dann das Ergebniss 
an... Ich glaub mal das es dann funktionieren wird... ^^

von Kartoffel (Gast)


Lesenswert?

@Jürgen:
hab das nicht so ganz verstanden mit "schalt mal den Int. für PWM ab". 
Ich erzeuge meine PWM mittels Interrupt!!! Wenn ich kein Interrupt hab, 
hab ich keine PWM und kann den Motor ja nicht mehr drehen lassen.
Aber ich könnte dem PWM ne niedrigere Priorität zuweisen als der 
Drehzahl..oder?????????????

von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

Kartoffel wrote:
> @Jürgen:
> hab das nicht so ganz verstanden mit "schalt mal den Int. für PWM ab".
> Ich erzeuge meine PWM mittels Interrupt!!! Wenn ich kein Interrupt hab,
> hab ich keine PWM und kann den Motor ja nicht mehr drehen lassen.
> Aber ich könnte dem PWM ne niedrigere Priorität zuweisen als der
> Drehzahl..oder?????????????

Jup, probiers mal mit niedrigerer Priorität und vllt sonst Motor direkt 
ans Netzgerät und Interrupts für PWM Erzeugung abschalten und nur mehr 
Impulse messen... wenn das funktioniert, weist du zumindest schon mal 
das es mit der PWM zu tun hat bzw. mit dem Interruptsystem... und dann 
kannst du dir was einfallen lassen...

von Kartoffel (Gast)


Lesenswert?

es ist tatsächlich so, dass wenn ich den Motor über Netzteil speise, 
dass ich dann ganz "normale" Drehzahlen messen kann, also bei 24V hab 
ich meine Leerlaufdrehzahl von ca.3600

Wenn ich die Messung höher priorisiere als die PWM Erzeugung, hilft das 
leider nicht und ich messe immer noch die niedrigere Drehzahl als 
Drehzahl_soll.
Das heißt also, dass es mit PWM zu tun hat.
Aber was?????????????????????? Was mache ich falsch???

von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

Kartoffel wrote:
> es ist tatsächlich so, dass wenn ich den Motor über Netzteil speise,
> dass ich dann ganz "normale" Drehzahlen messen kann, also bei 24V hab
> ich meine Leerlaufdrehzahl von ca.3600
>
> Wenn ich die Messung höher priorisiere als die PWM Erzeugung, hilft das
> leider nicht und ich messe immer noch die niedrigere Drehzahl als
> Drehzahl_soll.
> Das heißt also, dass es mit PWM zu tun hat.
> Aber was?????????????????????? Was mache ich falsch???

Hm... hab ich's mir gedacht... Wichtig ist, das die Messung vollkommen 
von der PWM Erzeugung abgekapselt ist...

Welchen Controller verwendest du denn? Es kann auch gut und leicht 
möglich sein, das wenn wir keine elegante Lösung finden, das du dann 2 
Controller brauchst...

Mal überlegn...

von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

Eine Idee, dir mir gerade gekommen ist - versuch mal die PWM von der 
Auflösung ein wenig runter zu schrauben (bzw. langsamer zu machen) somit 
überlappen sich die Interrupts nicht so oft, vllt wird dadurch deine 
Drehzahlmessung genauer...

Sonst wenn der Controller mitspielt... die Frequenzmessung ohne 
Interrupt, auf eine Flanke triggern und dann mitzählen...

von Kartoffel (Gast)


Lesenswert?

@Jürgen:
also ich verwende den XC167 von Infineon.
Ich hab es so eingestellt, dass die Prio von der Messung höher ist, als 
die von der PWM Erzeugung. Damit hab ich doch erreicht, dass sich die 
Interrupts nicht überlappen, bzw. dass der Interrupt für die Messung 
nicht von der PWM beeinflusst werden kann, oder nicht?
Mit dem zweiten Controller wird es problematisch, denn ich habe eine 
fertige Platine, wo leider nur einer drauf ist :-(

Zur Frequenzmessung ohne Interrupt: also meinst du, dass ich ich nur 
eine Flanke auswerten soll? Also auf eine Flanke triggern ist ok, aber 
dadurch hab ich doch schon wieder nen Interrupt...denn eine Flanke 
brauch ich auf jeden Fall.

Hab gestern noch die Abweichungen von der Solldrehzahl ausgewertet, die 
sind schön nicht linear, hab sogar ein mal eine negative drin.

von Ralph B. (ralph-b)


Lesenswert?

PWM Erzeugung und Eingangsimpulse zählen über Interrupt ist so ziemlich 
die ungünstigste Lösung, schlechte wäre dafür nur noch pollen.

Dein µC hat mehr als genug CapCom Kanäle, nutz diese dafür.

Die erledigen das meiste was du mit Interrupt mühsam versuchst in HW und 
damit zuverlässiger und schneller als es in SW jemals gehen wird.

von Kartoffel (Gast)


Lesenswert?

@Ralph:
also ich hab ja eine fest konzeptionierte Platine, deswegen kann ich 
nicht einfach sagen ok, ich leg mal das Signal von X nach Y und 
beobachte es..verstehst du?
Mein Encoderausgang liegt an einem bestimmten Pin an und ich muss es so 
nutzen wie es ist.
Ich hab außer Polling eingentlich keine andere Idee, wie ich das ohne 
Interrupt realisieren könnte. Hast du eine??

von Kartoffel (Gast)


Lesenswert?

also ich habe mir jetzt einen digitalen Tachometer geholt und geschaut, 
was mein Motor denn wirklich schafft.
Rausgekommen ist, dass meine gemessene Drehzahl der tatächlichen 
ENTSPRICHT!!
Er dreht tatsächlich langsamer, als ich ihm vorgebe.
Hab dann die Spannung am Motor in Abhängigkeit von der Geschwindigkeit 
gemessen, also da kommen wirklich komische Sachen raus.....
Also 3600U/min -> 24 V (Maximalwerte)
Die verhalten sich ja pi*Auge direkt proportional zueinander.
Das sind die Werte, dich ich gemessen hab:

500->2,5V
700->3,75
900->5,5
1200->12!!
1500->12!!
1700->12!!
1900->13
2200->15
2500->16


He????????
Also ich bin mit meinem Latein echt am Ende..

von Gonzo (Gast)


Lesenswert?

Hi,

hast Du dir mal die PWM mit dem Scope angesehen? Gibst Du bei max. 
Aussteuerung des Reglers wirklich auch 100% Dutycycle aus oder ist da 
evtl. schon eine Differenz?

Gruß,
Gonzo

von Kartoffel (Gast)


Lesenswert?

Also ich wollte noch mal nachhacken:
hab nämlich jetzt ein paar Geschwindigkeiten mit dem Oszi angekuckt.
Die Höhe des Pulses verändert sich nicht, denn die Spannung wird ja nur 
durch das Tastverhältnis ausgedrückt oder?
Bei 0U/min hab ich genau 50% PWM, wie es auch sein sollte.
3000 U/min-> hab ich noch nicht gescheit darstellen können.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.