Hallo zusammen, ich wollte mich nun mal mit einem Anliegen an euch wenden, was für mich gerade einfach undurchschaubar ist. Für ein Schulprojekt soll ich über einen ATMega32 mit einem Temperatursensor einen Lüfter ansteuern, und die Temperatur auf dem Display ausgeben. Alles klappt soweit, aber eine Sache bereitet mir gerade ziemliches Kopfzerbrechen: Wie kann ich mit dem ATMega32 den Lüfter ansteuern, und was für einen Lüfter sollte ich benutzen? Der darf ruhig sehr klein sein. Habe mal einen rausgesucht, der folgende technische Daten hat: Maße: 92 x 92 x 25 mm Drehzahl: 0 - 2.500 U/Min. (±10%) Geräuschpegel: 0,00 - 31,07 dB(A) Luftdurchfluss: 0,00 - 55,55 CFM = 0 m³/h - 95 m³/h Spannung: 12 V Stromstärke: 0,07 A Gewicht: 90g Anschluss: 4pin Molexstecker (PWM) Lagertyp: Gleitlager MTBF: 30.000 Stunden Die Idee war, dass vielleicht ab 17°C der Lüfter anspringt und bei 22°C auf Hochtouren fährt. In dem 5°C-Zwischenbereich sollte sich die Drehzahl des Lüfters langsam erhöhen. Da ich aber vom Programmieren nicht viel verstehe und auch nicht genau weiß, was ich beim Ansteuern des Lüfters beachten muss, wollte ich fragen ob mir einer in diesem Forum vielleicht helfen könnte, das wäre echt super! Weil mir fehlt hier leicht der Ansatz... Viele Grüße und vielen Dank im Voraus, Jürgen
Hallo Jürgen,
ein Lüfter ist im prinzip nichts anderes als ein
Gleichstrom-Elektromotor. Nur dass eben noch ein Rotor dran befestigt
ist. Du kannst ihn einfach mit Spannung versorgen und er fängt an zu
drehen. Je höher die Spannung, desto höher die Drehzahl. Das kannst du
z.B. mit einem verstellbaren Netzgerät mal testen und so ungefähr die
Spannungswerte herausfinden, die du für die zwei Betriebsmodi (> 17° bzw
> 22°) fahren möchtest.
Um mit deinem Atmel unterschiedliche Spannungen zu erzeugen, kannst du,
wie du schon richtig erkannt hast, PWM verwenden. Das funktioniert im
Grunde genommen so:
Der PWM Pin wird während einer konstanten Taktperiode immer eine gewisse
Zeit eingeschaltet und den Rest der Zeit ausgeschaltet. Das Verhältnis
von An/Taktperiode nennt man den Tastgrad. Ist dieser z.B. 50% ist der
Pin die gleiche Zeit aus wie an.
Da die Taktperiode sehr klein ist und der Motor aus Spulen gebaut ist,
die auf solche schnellen an/aus Änderungen nur langsam reagieren, sieht
es für den Motor aus, als würde man ihn nur mit einem Teil der Spannung
betreiben, die während der An-Phase am PWM-Pin anliegt (5V beim Atmel).
Genaugenommen ist es U_pwm = 5V * Tastgrad.
Indem du den Tastgrad veränderst kannst du so Spannungen von 0V bis 5V
erzeugen. Achtung: Du kannst nicht den Lüfter direkt an den Atmel
hängen, sonst geht der Controller kaputt (zu hohe Ströme)! Außerdem hast
du ja einen 12V-Lüfter, d.h. du brauchst einen Verstärker am
PWM-Ausgang. Am einfachsten ist es, wenn du den Lüfter direkt an 12V
anschließt und einen Transistor als Schalter verwendest. Bei der
Dimensionierung der Bauteile kann dir sicher dein Lehrer behilflich
sein.
So, nun aber zu dem Teil, der dich eigentlich interessiert, nämlich wie
die PWM im Atmel funktioniert:
Der Atmel hat einen Zähler, der ständig hochzählt. Die Geschwindigkeit
kannst du über sog. Prescaler einstellen, aber das ist erstmal nicht so
wichtig.
Der aktuelle Wert des Zählers wird ständig mit einem Vergleichswert
verglichen. Je nachdem, ob der Zählerwert größer/kleiner als dieser
Vergleichswert ist, wird der PWM-Pin an- oder ausgeschaltet. Der
Vergleichswert bestimmt also den Tastgrad.
Ich glaube beim Atmel sind das 8bit-Zähler, d.h. sie zählen immer von
0-255. Du kannst also die Geschwindigkeit deines Motors in 256 Stufen
einstellen.
Es gibt verschiedene PWM-Modi, die sind im Datenblatt zum Atmega32
erklärt. Wie du die Register setzen musst, suche dir einfach mal aus dem
Netz, ich möchte hier jetzt nichts reinstellen, das ich nicht getestet
habe.
Viele Grüße, Oliver.
Hallo Oliver, vielen Dank für die schnelle Hilfe! Das hat mir schon gut weitergeholfen. Dann werde ich nun von diesem Ansatz ausgehend schauen, wie ich die Register setze und die Ansteuerung realisieren kann. Schönen Abend und viele Grüße, Jürgen
schau dir den "fast PWM mode" an, ich glaube das ist das was du suchst.
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.