PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] PWM für Lüfersteueren



HTLer
15.12.2005, 15:31
HI!!

Ich habe mir neulich einen PIC16F873 gekauft, da dieser einen integrierten PWM-Mode hat. Ich habe noch nie etwas mit diesem Mode gemacht geschweigedenn programmiert. Ich werde in Assambler programmieren und hier fängt mein Problem an:
- Wie initialisiere ich die Ein-Ausgänge
- Wie berechne ich die richitgen Werte und wie programmiere ich sie in Assambler

Ich habe folgende Angaben zu meiner Lüfersteuerung und den PIC:
- 4MHz Quarz am Eingang
- ca. 25KHz PWM-Frequenz möchte ich erzeugen
- 5V variable Eingangsspannung für die PWM

Ich benötige bitte ein paar nützliche Tipps von euch!!

stegr
15.12.2005, 16:47
Wenn du mit Assembler beim PIC anfangen willst, empfehle ich dir, dass du mal bei www.sprut.de vorbeischaust und dort mal die Anfangstutorials machst.

Für die Lüftersteuerung brauchst du noch zusätzlich zu deinem PIC:
1x N-Kanal-MosFET (oder Bipolartransistor) zum Schalten (z.B. BUZ11 oder ähnliches - evtl. reicht ja sogar ein 2N7002)
1x Lüfter (denke den hast du da)
1x Stromversorgung für den Lüfter (denke mal 12V)
1x Stromversorgung für den PIC (5V - kannst du aus den 12V machen - oder hast du evtl. im PC schon direkt, wenn es für sowas ist)
1x Poti irgendwas zwischen 10k und 100kOhm, linear - um die Spannung einzustellen, so dass dann die PWM entsprechend angepasst wird.

Dein Programm sieht in etwa so aus:
Initialisieren Ports
Initialisieren AD-Wandler
Initialisieren Timer2 für PWM
Initialisieren PWM
Hauptschleife:
{
..... AD-Wert holen
..... AD-Wert in Duty-Cycle-Register schreiben
}

Das ist im Prinzip schon alles.
Bei Sprut auf der Homepage findest du, wie du die Ports schaltest, die der AD-Wandler funktioniert und wie man ne PWM einrichtet.
Wenn du irgendwo nicht weiterkommst, kannste einfach hier Fragen...

MfG
Stefan

kalledom
15.12.2005, 21:47
Um das PWM-Signal steuern zu können, möchtest Du vielleicht zwischen PIC und z.B. einem PC eine Kommunikation aufbauen; da könnten Dir die PIC Assembler-Beispiele (http://www.domnick-elektronik.de/picasm.htm) helfen.

Posti
18.12.2005, 01:12
Hi

Zum PWM hab ich auch noch ne Frage.
Beim 12F683 habe ich einen Hardware-PWM, der wie folgt aufzurufen ist:
pwmout pin,periode,duty-cycles

Wie habe ich periode und duty-cycle einzustellen?
Momentan nutze ich den Befehl mit 255 bei periode, und einer Variable (0-255) für duty-cycle.
Die LED dimmt auch schön rauf und runter.

Laut Manual (englisch ...) ist period von 0-255 einstellbar, und duty-cycle von 0-1023.
Allerdings ist das Bild (zumindest für mich) verwirrend, da period länger (eben die Periodenlänge) als die duty-cycle Zeit (die Einschaltzeit).

Habe ich das so zu verstehen, daß period die ANZAHL der PWM-Impulse ist??
Obwohl der PWM (zumindest nen paar Sekunden) auf seinem Level bleibt, auch wenn der pwmout-Befehl nicht erneut gegeben wird.

MfG
Posti

Posti
29.12.2005, 19:30
Hi, nochmal ich

Mit dem PWM-Befehl hat sich erledigt, die 0-1023 sind scheinbar der Prozentsatz des High-Anteil (1023->100%).
Nun hatte ich mir nen Lüfter geschreddert, der 2 Tage im PWM von Minimum-Drehzahl (per Poti einstellbar) auf Maximum hin und her zog.
Heute quietschte der Lüfter bei mehr als 60%.

Sind die PWM-Impulse vll nicht so gesund für nen Lüfter?
Sollte ich vll beim weiteren Lüfter einen Kondensator zwischen klemmen?
Um die Stromstöße etwas zu mildern.

MfG
Posti

stowoda
29.12.2005, 19:55
Hey Poti, wie sieht denn Deine Schaltung aus?
Treibst Du deinen Lüfter mit nem Transistor?
Deine Idee mit dem Kondensator kann ich nicht ganz nachvollziehen, es wäre gut wenn Du mal einen Schaltplan posten könntest.
Ansonsten begrenzt man Gleichstrom mit einem Widerstand.

Gruß

Posti
29.12.2005, 20:49
Hi

Ich wollte vll. nen Kondensator (nen Kleinteil) parallel zum Lüfter klemmen.
Damit wird die Spannung des PWM etwas geglättet.
Wenn der Pin auf High ist, wird der Kondensator geladen (nen Teil geht direkt zum Motor), bei Low bedient sich der Motor aus dem Kondensator.

Den Lüfter steuer(t)e ich über einen Transistor an, dessen Basis über einen Widerstand am PWM-Pin liegt.
Bei High schaltet der Transi durch, und gibt dem Lüfter GND, mit +12V ist der Lüfter durchgehend verbunden (die Stufe hatte ich von einem Schrittmotor-Versuch noch liegen).

Der Gedanke mit dem Glätt-Kondensator kam mir schlagartig, als der Motor mit quietschen begann ... könnte aber auch ne Alterserscheinung sein.

MfG
Posti