Hallo
Mit Atmega8 steuere ein BLDC Motor mit 16 kHz PWM. Dafür benutze ich
16-Bit Timer1, Modus 14(Fast PWM).Durch AD-Wandler stelle ich mit Poti
die Vergleichswerte(OCR1A) für 2 Interrupts(Timer-Overflow und Compare
Match).
Je nach afutretendem Interrupt lade ich in register A PWM-Zustand.
Im Register B bfeinden sich Kommutierungsbits für PORTausgang.
Vor der PORTasugabe verbinde ich PWM durch Schlüssellogic für 6 Kanäle:
AND RB, RA
OUT PORTB, RB //hier öffnet/schliesst(PWM) sich gleichzeitig ein
//P- und ein N-Transistor von jeder Seite der
//Leistungsbrücke
Das Problem liegt daran, dass beim Potiaufdrehen von 0%-70% steigt die
Geschwindigkeit, und dann wieder sinkt von 70%-100%, in diesem Fall habe
ich maximale Speed 70% der möglichen Geschwindigkeit.
Was mache ich falsch, und wie sollte ich es machen ohne externen
Bauelementen(LOGIC) zu benutzen?
Hi, schau doch mal hier: http://www.mikrokopter.de/ucwiki/BrushlessCtrl Das ist ein brushless Regler mit dem mega8 der 6 PWMs zur Ansteuerung eines BLDC verwendet, ohne externe Logik. Schaltpläne und Softwäre findest du dort. Da kannst du dir villeicht was davon abschaun ;-) Gruß
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.