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
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
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....
> 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?
@ Rolf: da ist schon PWM im Spiel!!! Wieso sollte das U-Messgerät damit nicht klar kommen????
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?
Der Transitor T42 erhält zuwenig Basisstrom, und in Programmzeile 24
hast du dich im Vorzeichen vertan.
>Schaltplan, Bilder?
???
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
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...
@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..
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... ^^
@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?????????????
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...
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???
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...
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...
@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.
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.
@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??
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..
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.