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
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
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
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
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.
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.
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
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
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
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
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
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.
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?
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.