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.