Forum: Mikrocontroller und Digitale Elektronik PWM Motor an Atmega 8


von Dirk (Gast)


Lesenswert?

Hi, alle AVR Profis!

Für ein Projekt will ich den Timer1 für PWM nutzen.
PB1 (PWM) eines Atmega8 liegt am Gate eines Mosfet(BUZ11), das einen 
Gleichstrommotor(300 Watt) von 12 Volt auf Masse zieht.
Ich will den Motor nun mit PWM regeln. Er treibt ein POV Globus an. 
Leider habe ich bisher null Erfahrung mit PWM.
Takt=8Mhz

PB1 auf Ausgang:
ldi r16, 0x02
out DDRB, r16


PWM Frequenz auf ca. 8 khz. Ist das bei einem 300Watt DC Motor sinnvoll 
und richtig programmiert?

ldi r16, 1<<WGM12 | 1<<CS12 | 1<<CS10
out TCCR1B, r16

Ich will dass die PWM jetzt erstmal 50/50 high/Low an PB1 legt. Wie kann 
ich das Verhältnis ändern?

Wie kann ich die PWM starten und stoppen?

Ich hoffe, jemand kann mir da weiterhelfen.

Schon mal tausend Dank, ich brech mir hier echt einen ab.

Dirk

von Jannis C. (kabelwurm)


Lesenswert?

Hallo
Bei einer PWM unterscheidet man zwischen einer invertierten und einer 
nicht invertierten PWM. Der Unterschied liegt darin das bei der 
invertierten PWM der Wert des Registers OCR im Gegensatz zur Pulsbtreite 
steht.
Was nun ein richtiger Wert für ich, kann ich nicht sagen, ich habe 
selber fast keine Erfahrung mit PWMs. Auch zur Schaltung kann ich keine 
Komentar geben.
Das Verhältnis steht im OCR Register.
Im allgemeinen zu 
PWMs:http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM
Die PWM kannts du stoppen, indem du bei einer invertierten PWM das OCR 
auf den höchsten Wert legst. Bei der anderen Methode umgekehrt.
Gruß Jannis

von Dirk (Gast)


Lesenswert?

Danke schon mal für deine Tipps. Habe nun anhand des Tutorials folgenden 
Code geschrieben:
1
;TIMER1   PB.1 auf Ausgang
2
    sbi      DDRB, 1
3
;Hoch=1 runter=0    | 8bit Timer
4
    ldi      r16, 1<<COM1A1 | 1<<WGM10
5
    out      TCCR1A, r16
6
;  Frequenz= 8000000/512/ 8 = 2 Khz     
7
    ldi      r16, 1<<CS11
8
    out      TCCR1B, r16
9
;   Vergleichswert
10
    ldi      r16, 0xFF
11
    out      OCR1AH, r16
12
    ldi      r16, 0x00
13
    out      OCR1AL, r16

Leider bleibt der Motor absolut ruhig. Setze ich PB1 ohne Timer mit sbi 
auf 1 läuft er. Die Schaltung ist also korrekt. Kann mit jemand 
helfen???

Vielen Dank,
Dirk

von spess53 (Gast)


Lesenswert?

Hi

Du konfigurierst eine 8-Bit-PWM (Top=$FF) und setzt den Comparewert auf 
$FF00. Was soll da passieren?

MfG Spess

von Dirk (Gast)


Lesenswert?

Hey Spess
Du bist ein cooler Typ! Genau da war der Fehler.
Hab jetzt ne 00 0F in das Register geschrieben und der Motor läuft. Bin 
richtig froh. Vielen Dank für die schnelle Hilfe!

Viele Grüße,
Dirk

von Knut (Gast)


Lesenswert?

Dirk schrieb:
> Hey Spess
> Du bist ein cooler Typ!

Da is aber jemand euphorisch ;-)


Knut

von Der Elektroniker (Gast)


Lesenswert?

BUZ11 ist nicht die beste Wahl, kein Logiklevel MOSFET, dürfte bei
genutzten 300W(25A) zu heiß werden , besser einen Logiklevel MOSFET 
nehmen, IR hat viele, die bei Reichelt erhältlich sind.

von Dirk (Gast)


Lesenswert?

Hi.

Buz11 hatte ich grade da. Haben ihm einen dicken Kühlkörper verpasst mit 
aktivem Lüfter, hoffe das haut hin. Ich gehe auch nicht auf die 300 
Watt, da der Motor 27000 Umdrehungen kann, ich aber nur 3000 brauche.

Arbeite nun mit einer PWM Frequenz von 2 khz. Da haben wir zwar ein 
wenig Pfeifen, aber dafür wohl einen besseren Wirkungsgrad. (Weniger 
Verlust durch Schaltvorgänge im Mosfet)

Werde mich aber schonmal über Logiklevel Mosfets schlau machen. Danke 
für den Tipp.

von Dirk (Gast)


Lesenswert?

Hi Elektroniker.

Wir haben Doch einige Probleme mit der Leistung und der 
Wärmeentwicklung.
Suche nun ein Logiklevel Mosfet und Treiber Mosfet.

Woran erkenne ich denn ein Logiklevel Mosfet?
Ich suche hier:
http://www.mikrocontroller.net/articles/MOSFET-%C3%9Cbersicht#MOSFET-Treiber

- Am Gate habe ich 5 Volt in PWM
- DC Motor soll mit 12 V laufen
- Das Mosfet muss min. 30 Ampere abkönnen


Vielen vielen Dank,
Dirk

von soundso (Gast)


Lesenswert?

Einen Logik-Level-FET erkennst du an der benötigten Gate-Source Spannung 
um ihn voll auszusteuern. Du hast vom uC 5 Volt zur Verfügung, also 
musst du einen LL-FET finden der bei 5Volt GS Spannung voll ausstuert. 
Bei 30Amper Typen dürfte das aber schwierig werden.

nimm besser einenen Treiberchip und einen richtig dicken FET.

Beispiele:

Treiberchip: TC4421
FET: sowas wie IRL3103

die Beschaltung des Treibers und Fet findest du im Datenblatt des 
Treibers.
Achja, den Treiber kannst du mit 4.5 bis 18 Volt speisen. Diese Spannung 
liegt dann am Ausgang des Treibers an, wenn du also einen FET mit 12Volt 
GS-Spannung hast, Speise den Treiber mit 12 Volt.

Gruss SoundSo

von Dirk (Gast)


Lesenswert?

Hi Soundso und danke für die schnell Hilfe.

Das FET ist schonmal super.
Als Treiber bräuchte ich einen, der auch bei Conrad zu haben ist. Ist 
die einzige Möglichkeit, da heute noch dran zu kommen.

MCP1407-E/P klingt auch passend, ist aber auch nicht bei conrad zu 
haben.

http://www.conrad.de

Kannst du da mal schauen?
Riesen Danke,
Dirk

von Dirk (Gast)


Lesenswert?

Zur Not könnte ich auch bei Reichelt Express bestellen.
Würde dieser Mosfet Treiber zum IRL3103 passen?

MCP 1407-E/P :: Single MOSFET Treiber  6 A  DIP-8
http://www.reichelt.de/ICs-M-MN-/MCP-1407-E-P/index.html?;ACTION=3;LA=444;GROUP=A217;GROUPID=2914;ARTICLE=90039;START=0;SORT=artnr;OFFSET=16;SID=11TYMST38AAAIAAAYBH1Mabd5d6c7e92ccb9f9def46460ccf33fe

von Der Elektroniker (Gast)


Lesenswert?

Hallo Dirk,

Die Typen von IR haben meist ein L in der Bezeichnung,
ein universeller, billiger ist z. B. IRLZ34N, leider bei deiner 
Anwendung
schon an der Grenze und daher nicht unbedingt zu empfehlen, aber immer 
noch besser als ein BUZ11.

Grüße

der Elektroniker

von Dirk (Gast)


Angehängte Dateien:

Lesenswert?

Hi Leute.

Hab nun den BUZ11 gegen ein IRLZ34N getauscht. Leider bleibt der Motor 
ruhig...
Selbst wenn ich 5 Volt ohne OWM ans Gate lege, zuckt er nicht einmal.

Schaltplan ist im Anhang. Sieht jemand einen Fehler?
Habe keinen Mosfet Treiber verbaut. Ist das das Problem?

Vielen Dank und schöne Grüße,
Dirk

von Lehrmann M. (ubimbo)


Lesenswert?

Dirk schrieb:
> Habe keinen Mosfet Treiber verbaut. Ist das das Problem?

Das stünde im Datenblatt.

von Dirk (Gast)


Lesenswert?

Am fehlenden Mosfet Treiber liegts nicht.
Habe ein zweites Netzteil mit 5 Volt an das Gategelegt und langsam bis 
auf 12 Volt aufgedreht. Das Mosfet schaltet einfach nicht durch...

Hab es auch schonmal ausgetauscht. Gleiches Problem...
Pin Belegung hundert mal geprüft.... Ich werd noch verrückt.

von Dirk (Gast)


Lesenswert?

Problem gelöst, das Bauteil war defekt. Jetzt läufts ^^ Kein treiber IC 
notwendig.

Das Mosfet kann nur 30 Ampere führen. Kann ich zwei davon parallel 
schalten, um den Maximalstorm zu verdoppeln?

von Floh (Gast)


Lesenswert?

Dirk schrieb:
> Das Mosfet kann nur 30 Ampere führen. Kann ich zwei davon parallel
> schalten, um den Maximalstorm zu verdoppeln?

Ja kannst du, da Schaltbetrieb.

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
Noch kein Account? Hier anmelden.