mikrocontroller.net

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


Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: huhu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: JÜrgen Grieshofer (Firma: 4CKnowLedge) (psicom) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltplan, Bilder?

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Kartoffel (Gast)
Datum:

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

Autor: JÜrgen Grieshofer (Firma: 4CKnowLedge) (psicom) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias Lipinsky (lippy)
Datum:

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

>Schaltplan, Bilder?

???

Autor: Gonzo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: JÜrgen Grieshofer (Firma: 4CKnowLedge) (psicom) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
//****************************************************************************
// @Defines
//****************************************************************************

// USER CODE BEGIN (CC1_General,4)
/*
#define MAX 65535    // untere Grenze
#define MIN 65135     // obere Grenze
#define MAXDREH 3000  // maximale Drehzahl

*/
// USER CODE END


//****************************************************************************
// @Global Variables
//****************************************************************************

// USER CODE BEGIN (CC1_General,7)
volatile unsigned int CC9alt;    // Dummy für Inhalt bei der vorheringen pos. Flanke (global)
volatile unsigned long int Counter_dif;  // Inhaltdifferenz des Timers bei 2 pos. Flanken
volatile unsigned long int Drehzahl_mot; // Istdrehzahl 


//****************************************************************************
// @Prototypes Of Local Functions
//****************************************************************************

// USER CODE BEGIN (CC1_General,9)

unsigned long int Drehzahl (void);  // Funktion zur Berechnung der Drehzahl
//unsigned long int Drehz_setzen(int);          // Solldrehzahl setzen mit Überwinden des Anlaufmomentes

// USER CODE END




//****************************************************************************
//              Variablen
//****************************************************************************
unsigned int Counter = 0;  // zum Zählen der Interrupts
//int Pulsbreite = 400;
//unsigned long int Hexwert;  // der entspr. Wert für CC2_CC30


//****************************************************************************
//               Unterfunktionen
//****************************************************************************
unsigned long int Drehzahl(void)
{
unsigned long int Drehz =0;

  /*if (Counter ==1)
  {
    CC9alt = 0x0000;
  } */
  if (CC1_CC9 < CC9alt) // Heißt: der Timer ist abgelaufen
    {
    Counter_dif = 0-(CC1_CC9-CC9alt);
    //Counter=0;
    }
  else
    {
  Counter_dif = CC1_CC9-CC9alt;
    }

  CC9alt = CC1_CC9;


  Drehz = 1200000L/(int)Counter_dif; // Drehzahl in Umdrehungen pro Minute


   return Drehz; 
}


// USER CODE END

void CC1_vInit(void)
{
  // USER CODE BEGIN (Init,2)

  CC9alt = 0x0000; // Vorbelegen für die erste Berechnung der Periode
   
  // USER CODE END

  ///  -----------------------------------------------------------------------
  ///  Configuration of CAPCOM1 Control:
  ///  -----------------------------------------------------------------------
  ///  - the contents of the port register is changed by the CAPCOM1 unit
  ///  - staggered mode is disabled

  CC1_IOC        =  0x0004;      // load CAPCOM1 I/O control register

  ///  -----------------------------------------------------------------------
  ///  Configuration of CAPCOM1 Timer 0:
  ///  -----------------------------------------------------------------------
  ///  - timer 0 works in timer mode
  ///  - prescaler factor is 4
  ///  - timer 0 run bit is set

  ///  -----------------------------------------------------------------------
  ///  Configuration of CAPCOM1 Timer 1:
  ///  -----------------------------------------------------------------------
  ///  - timer 1 works in timer mode
  ///  - prescaler factor is 1
  ///  - timer 1 run bit is reset


  CC1_T01CON     =  0x0002;      // load CAPCOM1 timer 0 and timer 1 control 
                                 // register

  CC1_T0         =  0x0000;      // load CAPCOM1 timer 0 register

  CC1_T0REL      =  0x0000;      // load CAPCOM1 timer 0 reload register

  CC1_T1         =  0x0000;      // load CAPCOM1 timer 1 register

  CC1_T1REL      =  0x0000;      // load CAPCOM1 timer 1 reload register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Timer Port Pins:
  ///  -----------------------------------------------------------------------


  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Timer Interrupts:
  ///  -----------------------------------------------------------------------
  ///  Tmr0 service request node configuration:
  ///  - Tmr0 interrupt priority level (ILVL) = 9
  ///  - Tmr0 interrupt group level (GLVL) = 1
  ///  - Tmr0 group priority extension (GPX) = 0

  CC1_T0IC       =  0x0065;     



  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 0:
  ///  -----------------------------------------------------------------------
  ///  - channel 0 is disabled

  CC1_CC0        =  0x0000;      // load CAPCOM1 channel 0 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 1:
  ///  -----------------------------------------------------------------------
  ///  - channel 1 is disabled

  CC1_CC1        =  0x0000;      // load CAPCOM1 channel 1 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 2:
  ///  -----------------------------------------------------------------------
  ///  - channel 2 is disabled

  CC1_CC2        =  0x0000;      // load CAPCOM1 channel 2 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 3:
  ///  -----------------------------------------------------------------------
  ///  - channel 3 is disabled

  CC1_CC3        =  0x0000;      // load CAPCOM1 channel 3 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 4:
  ///  -----------------------------------------------------------------------
  ///  - channel 4 is disabled

  CC1_CC4        =  0x0000;      // load CAPCOM1 channel 4 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 5:
  ///  -----------------------------------------------------------------------
  ///  - channel 5 is disabled

  CC1_CC5        =  0x0000;      // load CAPCOM1 channel 5 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 6:
  ///  -----------------------------------------------------------------------
  ///  - channel 6 is disabled

  CC1_CC6        =  0x0000;      // load CAPCOM1 channel 6 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 7:
  ///  -----------------------------------------------------------------------
  ///  - channel 7 is disabled

  CC1_CC7        =  0x0000;      // load CAPCOM1 channel 7 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 8:
  ///  -----------------------------------------------------------------------
  ///  - channel 8 is disabled

  CC1_CC8        =  0x0000;      // load CAPCOM1 channel 8 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 9:
  ///  -----------------------------------------------------------------------
  ///  - capture on positive transition (rising edge) at pin CC9IO (P2.9)
  ///  - CC9 allocated to CAPCOM1 timer 0
  ///  - single event mode is disabled


  CC1_CC9        =  0x0000;      // load CAPCOM1 channel 9 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 10:
  ///  -----------------------------------------------------------------------
  ///  - channel 10 is disabled

  CC1_CC10       =  0x0000;      // load CAPCOM1 channel 10 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 11:
  ///  -----------------------------------------------------------------------
  ///  - channel 11 is disabled

  CC1_CC11       =  0x0000;      // load CAPCOM1 channel 11 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 12:
  ///  -----------------------------------------------------------------------
  ///  - channel 12 is disabled

  CC1_CC12       =  0x0000;      // load CAPCOM1 channel 12 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 13:
  ///  -----------------------------------------------------------------------
  ///  - channel 13 is disabled

  CC1_CC13       =  0x0000;      // load CAPCOM1 channel 13 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 14:
  ///  -----------------------------------------------------------------------
  ///  - channel 14 is disabled

  CC1_CC14       =  0x0000;      // load CAPCOM1 channel 14 register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel 15:
  ///  -----------------------------------------------------------------------
  ///  - channel 15 is disabled

  CC1_CC15       =  0x0000;      // load CAPCOM1 channel 15 register

  CC1_M0         =  0x0000;      // load CAPCOM1 mode register 0
  CC1_M1         =  0x0000;      // load CAPCOM1 mode register 1
  CC1_M2         =  0x0010;      // load CAPCOM1 mode register 2
  CC1_M3         =  0x0000;      // load CAPCOM1 mode register 3

  CC1_DRM        =  0x0000;      // load CAPCOM1 double-register mode register

  CC1_SEM        =  0x0000;      // load CAPCOM1 single event mode register

  CC1_SEE        =  0x0000;      // load CAPCOM1 single event enable register

  CC1_OUT        =  0x0000;      // load CAPCOM1 compare output register

  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channel Port Pins:
  ///  -----------------------------------------------------------------------
  ///  - P2.9 is used for CAPCOM1 Input (CC9IO)


  ///  -----------------------------------------------------------------------
  ///  Configuration of the used CAPCOM1 Channels Interrupts:
  ///  -----------------------------------------------------------------------
  ///  CC9 service request node configuration:
  ///  - CC9 interrupt priority level (ILVL) = 9
  ///  - CC9 interrupt group level (GLVL) = 3
  ///  - CC9 group priority extension (GPX) = 0

  CC1_CC9IC      =  0x0067;     



  CC1_T01CON_T0R    = 1;    // set CAPCOM1 timer 0 run bit

  // USER CODE BEGIN (Init,3)

  // USER CODE END

} //  End of function CC1_vInit


//****************************************************************************
// @Function      void CC1_viTmr0(void) 
//
//----------------------------------------------------------------------------
// @Description   This is the interrupt service routine for the CAPCOM1 timer 
//                0. It is called when overflow of the timer 0 register 
//                occurs.
//                Please note that you have to add application specific code 
//                to this function.
//
//----------------------------------------------------------------------------
// @Returnvalue   None
//
//----------------------------------------------------------------------------
// @Parameters    None
//
//----------------------------------------------------------------------------
// @Date          21.11.2007
//
//****************************************************************************

// USER CODE BEGIN (Tmr0,1)

// USER CODE END

void CC1_viTmr0(void) interrupt CC1_T0INT using RB_LEVEL9
{
  // USER CODE BEGIN (Tmr0,2)

  // USER CODE END

} //  End of function CC1_viTmr0


//****************************************************************************
// @Function      void CC1_viCC9(void) 
//
//----------------------------------------------------------------------------
// @Description   This is the interrupt service routine for the CAPCOM1 
//                register CC9. If the content of the corresponding compare 
//                timer (configurable) equals the content of the 
//                capture/compare register CC9 or if a capture event occurs 
//                at the associated port pin, the interrupt request flag is 
//                set and an interrupt is triggered (only if enabled).
//                Please note that you have to add application specific code 
//                to this function.
//
//----------------------------------------------------------------------------
// @Returnvalue   None
//
//----------------------------------------------------------------------------
// @Parameters    None
//
//----------------------------------------------------------------------------
// @Date          21.11.2007
//
//****************************************************************************

// USER CODE BEGIN (CC9,1)

// USER CODE END

void CC1_viCC9(void) interrupt CC1_CC9INT using RB_LEVEL9
{
  // USER CODE BEGIN (CC9,2)

  Counter++; // zählen der Interrupts  und der Encoderimpulse

  Drehzahl_mot = Drehzahl();



  // USER CODE END

} //  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..

Autor: JÜrgen Grieshofer (Firma: 4CKnowLedge) (psicom) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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... ^^

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?????????????

Autor: JÜrgen Grieshofer (Firma: 4CKnowLedge) (psicom) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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???

Autor: JÜrgen Grieshofer (Firma: 4CKnowLedge) (psicom) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: JÜrgen Grieshofer (Firma: 4CKnowLedge) (psicom) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralph Broeder (ralph-b)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: Gonzo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kartoffel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.