• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


Mini Frequenzumrichter für Modellbaubrushlessmotor
#1
Guten Tag,

Ich wollte mir einen kleinen Frequenzumrichter für einen Brushlessmotor bauen, der am Ende recht klein und leicht sein soll (SMD).
Das gaze soll über ein ATmega16 gesteuert werden (Timer 1/2 für PWM Timer 0 für die Drehzahl). Die Drehzahl soll über I2C zum µC gesendet werden, die Programmierung durfte kein Problem sein, jedoch fehlt mir die Erfahrungen bezühlich der Bruckentreiber und MOSFETs. Die PWM frequenz sollte bei ca. 2kHZ und die Versorgungsspannung um die 10V liegen.

Ich würde mich sehr freuen, wenn ihr mir bei der Auswahl der Brückentreiber und MOSFETs weiterhelfen könnt.
 
#2
Was möchtest du denn für einen Strom haben?
Bei der billigen Chinaproduktion lohnt sich ein eigenbau eigendlich gar nicht mehr.

http://www.rc-brushless-shop.de/contents/de/d26.html
DragonSky 80A, 80A für 20,88 Euro

Als anregung könnte ich dir folgende Seiten geben. Hier wird unter anderen erklärt, wie sich ein handelsüblicher Brushlessregler so umbauen lässt, dass er über I2C angesteurt werden kann.

http://forum.mikrokopter.de/topic-10295.html
http://forum.mikrokopter.de/topic-11898.html
 
#3
Da fließen ja zum Teil Ströme in der Gegend von 100A.
Was für einen DC-Widerstand soll denn der Motor haben?
...mit der Lizenz zum Löten!
 
#4
Die Mosfets musst du danach auswählen, welchen Strom du benötigt.
Bei 2kHz dauert eine Periode 500µs. Schaltzeiten im Bereich von 5µs sollten dabei reichen. Dies schafft eigendlich fast jeder Mosfettreiber.
Bei den kleinen Spanungen gibt auch Exemplare, welche einen ohmschen Widerstand von wenigen mohm haben.


 
#5
Mir geht es bei diesen Projekt darum es selber zu bauen und möglichst viel zu lernen.
Der Motor, den ich verwenden will, hat einen maximalen Stom von 12 A. Als MOSFETs kötte ich mir den IRL3303S (http://www.irf.com/product-info/datashee...l3303s.pdf) und den irf5305s (http://www.irf.com/product-info/datashee...vorstellen.
 
#6
Zitat:Original geschrieben von wagner.tobse
Das gaze soll über ein ATmega16 gesteuert werden (Timer 1/2 für PWM Timer 0 für die Drehzahl).

Moin, moin,

bei den Atmels bin ich noch ziemliches Greenhorn. Bisher nur etwas mit tiny85 rumgedaddelt und massiv mit AP7000.

Wieso brauchst Du zwei mega16 Timer für PWM? Einer würde doch genügen. Dient der zweite Timer zur deadtime-Erzeugung?

Und wieso nimmst Du so einen großen Controller? Der frisst ja doch viel Platz. Wär nicht ein Tiny voll ausreichend?

LG

Gucki
 
#7
Ja, ein kleinerer würde für die Rechenleistung volkommen ausreichen, jedoch brauch ich 3 pwm kanäle und ein zustzlichen timer, der ATMEGA 16 hat 4 PWM kanäle, jedoch fällt der 1. für den zusätlichen Timer weg (Timer 0 genaue drehzal, pwm kanal 0 fällt weg, Timer 1 ist für den pwm kanal 1A und 1B, der Timer 2 ist für den PWM Kanal 2). Eine Deadtime kann über den µC so leider nicht erzeugen, da ich die intern verbauten PWM kamäle nutze.

In den Datenbaltt ist das genauer beschrieben:
http://www.atmel.com/dyn/resources/prod_...oc2466.pdf
 
#8
Ahja.. ich versteh. Ist ja ein Brushless-Motor mit drei Phasen.
 
#9
Ich hab mich jetzt mal an das Programm gesetzt, jedoch fehlt noch der I2C Eingang und die Spannungsanpassung (frequenzabhängig). Der Gleichspannungsanteil an den Ausgängen lag im nichtmessbaren Bereich Smile. Jedoch hab ich noch kein passenden Brückentreiber und als MOSFET würde ich den irf5305s und irl3303s nehmen.

Hier mal der Programmcode für den ATMEGA 644:

http://www.file-upload.net/download-2870...644.c.html
 
#10
So kannst Du auch gleich hier auf dem Server solche Dateien hochladen.

Ich hab eben Deine Source bewundert. Du gehst ja völlig hemmungslos mit high-level-Mathe auf so nen armen 8-Bit-Controller los. überrascht Sinus und double, dass es nur so knallt.

Das hätte ich mich nicht getraut. Bin mal gespannt, was der für nen Maschinencode draus macht. Ist aber ne geile Anregung für mich Mega-Newbie.
 
#11
Als Brückentreiber könnte ich mir den IR 2130S vorstellen, was haltet ihr davon?
 
#12
na, da du ja nur bei etwa 10..12v bist, brauchts eigentlich keinen speziellen treiber...
du kannst CMOS gatter CD4050 + transistor treiber oder zb nen ICL7667
nehmen...
http://www.intersil.com/data/fn/fn2853.pdf
    Don't worry about getting older.  You're still gonna do dump stuff...only slower
 
#13
Hab eben mal wagners.tobses Mathe-Code auf so nen armen tiny85 losgelassen:

Program: 4428 bytes (54.1% Full)
(.text + .data + .bootloader)

Data: 264 bytes (51.6% Full)
(.data + .bss + .noinit)

Naja. Hätte schlimmer werden können misstrau . Da passt ja noch locker ein "printf" dazu lachend
 
#14
Ich komme auf
Program: 4956 bytes (7.6% Full)
(.text + .data + .bootloader)

Data: 264 bytes (6.4% Full)
(.data + .bss + .noinit)

bei nen 644er
 
#15
Na klar. Der hat auch etwas mehr Platz als der lütte Tiny lachend

-------

Irgendwie ist das aber alles ein Jammer. Du lässt den Controller Deine Tabelle berechnen und befüllen. Normalerweise lässt man sowas von dem Preprozessor berechnen und würde das im Programmspeicher ablegen. Dann frisst die ganze Sache exakt 600 ints. Wahrscheinlich wär man aber auch mit 8-Bit-Werten ausgekommen und zur Darstellung des Sinus reichen auch 90°. Kurzum: 90 char-Werte vom Preprozessor berechnen lassen und im Code ablegen. Fertig ist die Kiste, kostet keine Rechenzeit und fast keinen Speicherplatz.

Trotzdem fand ich Deinen Code hochinteressant, weil - wie ich schon schrieb - ich nie auf die Idee gekommen wäre, einen Kleinstcontroller mit double und sinus zu beschäftigen. Und ich bin besonders fasziniert, was für einen effektiven Code der Compiler selbst daraus noch anfertigen kann.