PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spannungssteuerung über Taster



Strahleman
09.01.2006, 21:03
Hiho,

bin neu hier im Forum und habe mit Robotik eher nichts am Hut - das gleich einmal vorweg ;)

Bin eher hier gelandet, da das Board mit Abstand die besten Elektronik-Kategorie hat, die ich im Netz gefunden habe.

Ich bin auf der Suche nach einem Schaltplan für die Steuerung einer Ausgangsspannung zwischen 0 und 12V. Das soll aber nicht wie normal über ein herkömmliches Poti geschehen, sondern über zwei Taster, wobei ein Taster für mehr Power (also +1V z.B.) und der andere für weniger Saft (-1V) sein soll. Ein dritter Taster für das sofortige Erreichen der maximalen bzw. minimalen Ausgangsspannung wäre natürlich das Non-Plus Ultra ;)
Ich habe bereits bei google gefunden, dass diese Teile wohl Digital-Potis heissen und es zwei verschiedene Varianten gibt: Microcontroller und IC - ich selber bevorzuge das IC, da es eine ziemlich "billige" Steuerung für PC-Lüfter werden soll.

Gut wäre es, dass die Steuerung beim "einschalten" automatisch die Ausgangsspannung für die Lüfter auf 7V setzt.

Da ich in Sachen Elektronik nicht so belesen bin wie ihr, bitte nicht nur schreiben "Schau dir das IC XYZ an, dass kann das". Am liebsten wäre mir ein Schaltplan zum Nachbauen einer solchen (oder einer ähnlichen) Steuerung.

Vielen Dank schoneinmal im Voraus
MFG
Simon

P.S Falls das hier die falsche Kategorie ist, bitte nicht hauen ;)

Strahleman
09.01.2006, 23:34
Habe nun einmal etwas weiter gesucht und (hoffentlich) ein passendes IC gefunden: das x9c503 (Datenblatt: http://www2.produktinfo.conrad.com/datenblaetter/175000-199999/179485-da-01-en-X9C103_104_503.pdf )
Wo mir noch Zweifel aufkommen: Das IC unterstützt so wie ich das sehe max. 10V und nur 3mA oder lese ich da das Datenblatt falsch?
Wenn das so ist, kennt ihr ein IC für 12V und ~0,3A? Bzw. kann man das oben genannte IC mittels Schaltung für solche Ströme preparieren?

Sry, bin aber wie man sieht auf dem Gebiet nicht eingearbeitet, hin und wieder ein paar LEDs und Widerstände löten ist OK, mit Schaltungen komm ich auch noch teilweise aus, aber ICs sind mir vollkommen neu ;)

Ratber
10.01.2006, 04:26
Also deine Anforderungen sind.

Up/Down in wählbaren Schritten.
Evtl. Dritte Taste für "Volles Roää" bzw. "Tote Hose"
Vorwählbare Spannung beim Einschalten
Mind 12V/0.3A


Ein Chip der das alles in einem Gehäuse bringt mag es irgendwo auf der Welt geben aber ist mir unbekannt.

Sowas kann man schnell mit nem kleinen Controller erschlagen..

Ein 8-Poliger Tiny (zb. Tiny15)+übliche Umbeschaltung+3 Tasten+Mosfet als Leistungsstufe für den Ausgang und einie Zeilen Code sind schon alles nötige.

Ein Projekt für die Zeit zwischen Abenbdbrot und Spielfilm.

Strahleman
10.01.2006, 11:31
Gut, wenn es mit einem Microcrontroller wirklich einfacher geht und der Aufwand kaum größer ist, greife ich natürlich auch gerne zu einem Microcontroller.

Ich habe einmal etwas gegoogelt und einen Schaltplan für den Tiny12/15 gefunden ( http://www.loetstelle.net/projekte/tiny12eval/tiny12eval.php ), aber wo genau kommen dann die Taster hin? Und was und v.a. wie muss ich in den Microcontroller programmieren? Habe so etwas noch nie gemacht ;)

stegr
10.01.2006, 11:51
Am einfachsten einen Controller deiner Wahl (AVR, PIC) nehmen, daran 3 Taster anschließen und nen Mosfet, wie ratber schon geschrieben hat.
Den Mosfet kannst du bei direkt an den Port-Pin des Controllers hängen und dann immer kurz an- und ausschalten - dadurch wird nicht wie bei nem Poti die ungenutzte Spannung in Wärme umgesetzt (um es mal einfach auszudrücken). Wenn du das an- und ausschlalten schnell genug machst, nennt sich das PWM (einfach mal hier in der Wiki nachlesen).
Nen Logic-Level-Mosfet ist bei dem Leistungsbedarf nicht nötig, da kommt es auf die paar mOhm wirklich nicht an...

Das ganze ist sehr viel einfacher als großartig Experimente mit nem Transistortreiber für dein Digital-Poti zu machen, und es ist auch deutlich energiesparender...

Natürlich ist das ein etwas heftigerer Einstieg, als du dir vielleicht zuerst vorgestellt hast, aber du lernst dabei sehr viel mehr und das auch in einem sehr interessanten Gebiet, denn in Zukunft wird immer mehr in Controller gepackt.

Wenn du das nicht willst, dann kannst du auch ne einfache Lüftersteuerung nachbaun und dort ein Poti durch das Digital-Poti ersetzen, auf http://www.sebbelmeyer.de/projekte/modding/luesteu_1.php ist zum Beispiel ne Anleitung, dort einfach R1 durch das Digital-Poti ersetzen.
Ich glaube aber, dass du mit dem Digitalpoti nicht glücklich wirst, weil die Schritte viel zu fein sind... das X9C103 wäre wenn das richtige und es sind dann nur noch rund 20 Schritte (mehr ist nicht im interessanten Bereich) - das geht sogar noch... Vh, Vw, Vl sind die Anschlüsse von deinem Poti (oben, Schleifer, unten). CS muss immer auf Masse gelegt sein, problematischer ist die Sache mit Inc und Up/Down - du musst dafür sorgen, dass Up/Down zuerst ein Signal bekommen und Inc das Signal erst kurz danach bekommt - sonst zählt er in die falsche Richtung. Typischerweise würde ich hier wieder sagen: nen kleinen Controller nehmen, aber vielleicht kann man es auch ohne machen...
möglich wäre, dass du nen Kondensator und nen Widerstand in das Stück zum Inc machst, und U/D direkt anschließt. Dadurch wird das Signal etwas "verzögert", aber du musst bissle länger draufdrücken (einige Millisekunden). Dabei fällt mir auch auf, dass wir die Tasten sowieso noch alle Entprellen müssten, also dafür sorgen, dass beim draufdrücken nur ein Pegel rauskommt und nicht ein kurzes Gewackel aus Low und High, was dazu führt, dass der mehrfach zählt... D.h. du brauchst noch mehr RC-Glieder (Widerstand in Serie, Kondensator nach Masse) um die Taster auch noch zu entprellen. Im wesentlichen fällt mir sonst grad nix ein, was noch fehlt.

Aber ich glaub wirklich, dass es einfacher wird, wenn du dich in die Controller einarbeitest... ;)

MfG
Stefan

Edit: hat sich irgendwie überschnitten... ;)

stegr
10.01.2006, 11:54
Gut, wenn es mit einem Microcrontroller wirklich einfacher geht und der Aufwand kaum größer ist, greife ich natürlich auch gerne zu einem Microcontroller.

Ich habe einmal etwas gegoogelt und einen Schaltplan für den Tiny12/15 gefunden ( http://www.loetstelle.net/projekte/tiny12eval/tiny12eval.php ), aber wo genau kommen dann die Taster hin? Und was und v.a. wie muss ich in den Microcontroller programmieren? Habe so etwas noch nie gemacht ;)

Schau mal hier in der Wiki vorbei: https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht :)

Ratber
10.01.2006, 12:14
Gut, wenn es mit einem Microcrontroller wirklich einfacher geht und der Aufwand kaum größer ist, greife ich natürlich auch gerne zu einem Microcontroller.

Ich habe einmal etwas gegoogelt und einen Schaltplan für den Tiny12/15 gefunden ( http://www.loetstelle.net/projekte/tiny12eval/tiny12eval.php ), aber wo genau kommen dann die Taster hin? Und was und v.a. wie muss ich in den Microcontroller programmieren? Habe so etwas noch nie gemacht ;)


Alles halb so wild.

Stegr hat ja schon reichlich rangekarrt.

Wenn ich was empfehlen würde dann nen Tiny15L ,nen simplen Mosfet und den üblichen kleckerkram.
Programieren in Basic (Bascom.Demo gibts gratis bei mcselec.com) ist recht leicht.
Den Programmer kannste schnell selber zusammenlöten.
Die Sparversion besteht nur aus einigen Widerständen und die Sinvollere zusätzlich aus nem einzelenen IC (Einfacher Treiber) für 50 Cent.

Ob dr Lüfter hinterher mit PWM angesteuert wird odder lieber Linear (Bei der wenigen Leistung kein Akt) hängt primär davon ab wie gut er es verträgt.

Strahleman
10.01.2006, 12:52
Habe mir einmal das Datenblatt vom Tiny15L angeschaut. Meine Vorstellung vom Schaltplan (ohne PC-Verbindung) sieht im Moment so aus:

Microcontroller an den eine 5V Leitung an VCC kommt. Dazu drei Taster, die jeweils an einen PNB und an Masse gelötet werden. Ein Pin, der als Spannungsausgang (mit der variablen Spannung) verwendet wird.
Wo der MOSFET hinsoll, weiss ich jedoch im Moment noch nicht, er sperrt ja ab einer bestimmten Spannung, wüsste ehrlichgesagt nicht, wo ich den in der Schaltung unterbringen soll ;)

Und was ist für die der übliche Kleckerkram? Für mich ist das ja alles hier noch etwas unüblich :P Ich kenne solche Teile aber auch als Spannungswandler, die die Spannung stabilisieren (oder erhöhen oder so), soll er dafür eingesetzt werden, dann wüsste ich auch, wo der hin soll ;)

Ratber
10.01.2006, 13:28
Der Controller ist nicht fähig einen Lüfter anzutreiben und seine ausganspannung beträgt ja nur max 5V also muß noch eine simple Endstufe her.
Die Aufgabe übernimmt der Mosfet.

Was den üblichen Kleckerkram betrifft so sind das einige diskrete Bauteile.

Am Reseteingang des Controllers kommt ein 100nF Kondensator undein Widerstand.
Damit wird kein versehentlicher Reset für den Controller ausgelöst.
Der Controller selber wird ebenfalls mit 100nF geblockt.

Der Mosfet erhält einen kleinen Elko zur entstörung der Schaltung bei PWM

Wenn der Ausgang Gleichspannung liefern soll dann muß am Mosfet noch eine kleine RC-Kombi hin.
Alles in allem nur kleinkrempel wie in jeder Schaltung.

Ich kann dir ja mal nen Plan machen wenn nötig.

Strahleman
10.01.2006, 13:43
D.h. an den PNB0 kommt der Kondensator und der Widerstand, wo kommt dann der andere 100nf Kondensator hin? An den VCC?

Einen Plan versuche ich ersteinmal selber zu zeichnen, ein bisschen muss ich ja auch selber machen ;) Ich mach eben eine und du kannst ja dann einmal drüberschauen ;)

Strahleman
10.01.2006, 14:45
Leider hab ich keine Ahnung, wie man den MOSFET anschliessen soll. Daher habe ich es einfach einmal irgendwie angeshclossen. Muss der dritte Pin auch mit Masse verbunden werden?

Die Kondensatoren müssen keine Elkos sein oder?

Ratber
10.01.2006, 17:55
Ich hab mal eben was zusammengekritzelt.

Gegenüber deiner anforderung hab ich alle Pinne ausgenutzt also 4 Tasten Kannste ja vieleicht brauchen.zb. Voll,Up,Down,Aus
Den Ausgang hab ich mal als Analog konstruiert deswegen R1/C2 zum Glätten der PWM.
Willste PWM dann fallen beide weg
Kannst die Kombi ja als Option per Jumper belassen.
Dann hab ich auch gleich die Anschlüsse für die Programierung eingezeichnet die ja als Doppelbelegung an den Pinnen liegen.
Beim Programieren ist der Jumper zu ziehen.
Läst sich leider nicht vermeiden da MISO auf dem PWM Ausgang liegt.

Schaus dir mal an.

Strahleman
10.01.2006, 18:05
Wow, dankeschön ;)
Habe nur noch ein paar kleine Fragen ;) Ich nehme mal an das M steht für Motor oder so, also wird da der Lüfter angeschlossen? Wenn ja, wozu die Diode? Soll C4 ein Elko sein, bei ihm ist nur eine "Platte" geschwärzt.

Und welchen Widerstand benutzt ich am besten für R1? Ebenfalls einen 10kOhm oder muss er deutlich kleiner sein? Für C2 auch einen 100nF Kondensator? Und zu guter letzt: welcher MOSFET passt für die Schaltung? Die kleinsten die ich gefunden habe hatten 20V, 2A, das ist aber ja leicht übertrieben oder?

Ratber
10.01.2006, 18:23
Ich nehme mal an das M steht für Motor oder so, also wird da der Lüfter angeschlossen?

Ja,richtig.


wozu die Diode?

Die schließt eventuelle Induktionen des Lüfters kurz so das der Rest der Schaltung nicht davon beeinflusst wird.
Bei DC-Lüftern zwar weniger zu erwarten aber man sollte nicht drauf verzichten.


Soll C4 ein Elko sein, bei ihm ist nur eine "Platte" geschwärzt.

Richtig ,die Darstellung zeigt daß das Bauteil gepolt ist.
Ungepolt wären beide Gleichfarbig (Also Schwarz)



Und welchen Widerstand benutzt ich am besten für R1? Ebenfalls einen 10kOhm oder muss er deutlich kleiner sein? Für C2 auch einen 100nF Kondensator?

Hoppla,hab ich vergessen zu beschreiben.
Die Werte hängen davon ab welche Frequenz man bei der PWM nimmt damit die Spannungsrampe möglichst linear ist (Stark vereinfacht gesagt)



Und zu guter letzt: welcher MOSFET passt für die Schaltung? Die kleinsten die ich gefunden habe hatten 20V, 2A, das ist aber ja leicht übertrieben oder?

Das ist nicht ungewöhnlich.
Wichtig ist das die Gate-Sourcespannung niedrig genug ist so das er bei 5V duchgesteuert ist.

Wie gesagt ist das bei max 0.3A kein großes problem mit der Verlustleistung so das ein kleiner Kühlkörper auf dem Fet ausreicht.

Strahleman
10.01.2006, 19:06
Geht als Transistor der hier? http://www2.produktinfo.conrad.com/datenblaetter/150000-174999/162930-da-01-en-IRG_4_BC_20_K.pdf
Der hat 600V/9A und V(ce ON) ist beträgt 2,8V.

Und für die PWM: Wie ist das mit der Frequenz? Wenn ich z.B. einen 100nF Kondensator und einen 10kOhm Widerstand benutze, wie schaut das Signal dann aus? Habe ehrlichgesagt keine Ahnung, wie die Frequenz sein muss ;)

Ratber
10.01.2006, 19:53
Geht als Transistor der hier?

Nö,der ist weniger geeignet.
Das ist ein Bipolarer Typ mit isoliertem Gate also am einfachsten als Mischung aus Bipolarem und Feldeffekttransistor zu beschreiben
Die 2.8V ist der Spannungsabfall EC bei Sättigung.
Vge liegt bei 3-6V und damit nicht brauchbar.


Irgendein N-Channel Leistungsmosfet ist für diese Anwenndung völlig ausreichend.
Zb. der allseits bekannte Buz11 denn man für unter 50 Cent nachgeworfen bekommt.




Und für die PWM: Wie ist das mit der Frequenz? Wenn ich z.B. einen 100nF Kondensator und einen 10kOhm Widerstand benutze, wie schaut das Signal dann aus? Habe ehrlichgesagt keine Ahnung, wie die Frequenz sein muss

Wie erklär ich PWM ?

Nimm mal an du hast einen großen Lüfter der nicht so schnell auf drehzahl kommt.

Jetzt schaltest du ihn für eine Sekunde ein und für eine Sekunde aus usw.
Das Ergebnis ist das er so schnell läuft als ob er nur Halbe spannung hat.
Der Grund liegt darin das er über die Zeit nur die halbe Leistung aufwenden kann.
Wenn du das Verhältnis zwischen Ein und Aus veränderst (zb. 0.2s ein und 1.8s Aus oder umgekehrt) dann kannst du damit auch die Drehzahl ändern.
Die Geammte Frequenz änderst sich dabei nicht.
Eione Ein/Aus-Periode dauert 2 Sekunden.
Das ist dann die PWM-Frequenz (In diesem Falle schlappe 0.2 Hz).

DC-Lüfter quitieren PWM aber oft mit Geräuschentwicklung (PWM-Frequenz ist höhrbar) oder Arbeitsverweigerung.
Manchmal ist das Tachosignal garnicht mehr oder nur Teilweise lesbar bzw. liefert falsche Werte.(Tachopulse wereden miz PWM überlagert).

Was dagegen tun ?
Ganz einfach,über eine R/C-Kombi wird eine Kondensator geladen und so eine der PWM Proportionale Spannung erzeugt die dann den Mosfet steuert.

Warum nicht gleich Analog vom Controller ?
Auch einfach:Er hat keinen Analogausgang,nur PWM.

Die RC-Kombi ist hier nicht kritisch also kannste in weitem Bereich arbeiten.
Ich sag mal ca. 50-100nF und 500-1000 Ohm sollten als Richtwert reichen.

Strahleman
10.01.2006, 20:00
Super danke! Nun bin ich fertig mit meinem gefrage ;)
Das mit der PWM hat mir mein Vater genauso erklärt, habe ich mir auch schon so gedacht, als ich die Zeichnung mit den "Peaks" gesehen habe im Wiki :P

Wenn das Teil fertig ist, gibt es auf jeden Fall hier Bilder ;)

Ratber
10.01.2006, 20:09
Yo,freuht mich.

wie gesagt sollte das Programm locker in das eine K Speicher passen.

joerea
10.01.2006, 20:59
Hallo liebe Elektronik-Kollegen,
(na gut - ich entwickle mich grad erst zu einem :-b )

ich möchte eine ziemlich ähnliche Anwendung erstellen, weshalb ich diesen Thread gelesen und auch aufmerksam durchdacht habe.

Meine Frage ist nun:
Wie finde ich raus (ausser per Messen), welche PWM-Einstellung bei gegebenem RC-Glied welche Spannung "nach" dem MOSFET BUZ11 erzeugt? Ich habe mir das Datenblatt schon angesehen, werde aber nicht schlau daraus, weil ich den Zusammenhang zwischen "PWM-Spannung" am MOSFET-Eingang (dumme Bezeichnung ich weiss) und Spannung "nach" MOSFET nicht finde.

Vielleicht denke ich auch zu kompliziert - ich würde mich sehr über den notwendigen Schlag auf den Hinterkopf freuen :-) !! ](*,)

Mit der Hoffnung auf erlösende Antwort(en),

Jörg

joerea
10.01.2006, 21:02
Achja - als Zusatzinfo gleichmal das runtergeladene Datenblatt des MOSFET

Danke für eure Hilfe,

Jörg

Ringo
10.01.2006, 21:44
Ich hab mal was im Internet gesehn und nachgebaut..

Hab leider kein Schaltplan aber ich versuchs mal so zu erklären..

Im Grunde schaltet ein MOSFET den Lüfter..

Am Gate hängt ein Elko + an Gate Minus an Masse
Der Kondensator wird über einen Widerstand geladen, wenn du diesen sehr groß machst und einen Taster noch dazwischen kannst du ja regeln wie weit der Kondensator aufgeladen wird! Und somit auch wie stark der MOSFET durchgesteuert wird. Ein Zweiter taster mit einem Widerstand gegen Masse lässt den Kondensator entladen und ein Dritter Taster mit einem kleinen Widerstand gegen plus lässt den Kondensator schnell laden (Sofort Full Power)

Ich hoffe Ihr versteht was ich meine.. ist vom aufwand her sehr viel geringer.. kein µC...

MfG
Ringo

Ps: wenn ich den schaltplan find poste ichs!

Ratber
10.01.2006, 21:55
@Joera



Wie finde ich raus (ausser per Messen), welche PWM-Einstellung bei gegebenem RC-Glied welche Spannung "nach" dem MOSFET BUZ11 erzeugt? Ich habe mir das Datenblatt schon angesehen, werde aber nicht schlau daraus, weil ich den Zusammenhang zwischen "PWM-Spannung" am MOSFET-Eingang (dumme Bezeichnung ich weiss) und Spannung "nach" MOSFET nicht finde.

Nee,haste falsch verstanden oder ich schlecht erklärt.

Die Anpassung des RC-Gliedes sorgt nur dafür das eine Spannungsänderung in minimaler Zeit erfolgen kann.
Hier ist das vernachlässigbar da Handbedienung.

Mit 100nF/1Kohm biste gut bedient.

Die Frequenz ist hier relativ egal denn das Tastverhältnis bestimmt am Ende die Steuerspannung für den FET.

Das kannste später auch Experientel anpassen (Is ja das Schöne an Controllern.Man kann fast belibig neu bespeielen)

@Ringo

Ja,Sample&Hold auf der Eingangsseite.
supersimpel
Is aber leider nicht Driftfrei.
Mit der Zeit wandert er irgendwohin.

Ringo
10.01.2006, 22:03
was meinst du mit Driftfrei?

Ein MOSFET wird doch fast Leistunglos angesteuert.. müsste der Kondensator nicht die Ladung halten?

MfG
Ringo

Ratber
10.01.2006, 22:18
Tja, du sagtest es ja schon selber.


.....fast Leistunglos.....


Das alleine würde den Kondensator schon Laden/entladen.

Dazu die Leckströme bei den Kondensatoren die dann ebenfalls abwandern.
Bei Elkos ist es ja am schlimmsten.

Bau mal so eine Schaltung.
Lad den Kondensator und mess die Spannung am Verbraucher
nach 24 Stunden misst du nochmal.
Dann haste deine Drift.
Ein Feld in der nähe kann ebenfalls merkwürdige Effekte hervorrufen.

Bei Lampen ist das ziemlich egal aber bei Lüftern im PC sollte man doch mehr auf Sicherheit gehen denn ohne Kühlung wirds dann doch manchmal eng auch wenn Moderne CPU's keine Probleme mehr damit haben :lol:

Ringo
10.01.2006, 22:23
o.k hast mich überzeugt.. :-)

Als ich das mal auf dem Steckbrett hatte sahs echt toll aus...

Naja 10min später hab ich was anderes gebaut....

MfG
Ringo

Ratber
10.01.2006, 22:28
Ja 10 minuten sind auch kein akt.
Da merkt man nix davon.

Man kann diese Schaltungen zwar Stabilisieren aber bei dem dann nötigen Aufwand schielt man schnell wieder zum Controller rüber :lol:

joerea
11.01.2006, 06:17
Guten Morgen allerseits!

Danke für eure Antworten und die Mühe, die ihr euch macht, mir meine Anfängerfragen zu beantworten!

Die Sache mit dem RC-Glieder glaube ich verstanden zu haben.

Doch noch immer hat sich der Zusammenhang PWM-Frequenz und MOSFET-Durchsteuerung noch nicht in meinem Hirn festgesetzt. Wenn Strahlemann seine Anwendung mal aufgebaut hat, dann kann er durch einen Tastendruck die PWM ändern - wodurch sich auch das Verhalten des MOSFETS ändert. Fragt sich nur wieviel...

Ich frage deswegen, weil ich einen Lüfter aufgrund eines Temperaturwerts steuern möchte (kleines Anfängerprojekt). Ich werte also das Signal eines Temperatursensors aus und aufgrunddessen (ich habe mir schon eine lineare Übertragungsfunktion ("Temperaturwert über Spannung für Lüfter" bzw. "Temperaturwert über Drehzahl für Lüfter" gezimmert) soll eine bestimmte Drehzahl des Lüfters eingestellt werden, wobei der MOSFET als Potentiometer fungiert (wenn ich den Thread bisher richtig verstanden habe).

Ich würde nun als letzten Schritt gerne wissen bei welchem Temperaturwert ich welches PWM-Signal für den MOSFET erzeugen muss, damit ich die gewünschten Spannungen zw. 0-12V für den Lüfter erhalte.

Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt und nicht um den Brei herumgeredet! 8-[

Mfg

Jörg

Strahleman
11.01.2006, 11:36
Noch eine kleine Frage bzgl. meiner Schaltung: ist es möglich an dem Microcontroller anstatt einen auch zwei Pins als (Analog?-)Ausgang zu programmieren? So dass man dann zwischen den beiden AUsgängen mittels Taster hin und her wechseln kann.

Konkret: ich möchte gerne zwei Lüfter regeln. Da der erste Lüfter ja weiterhin so geregelt weiterlaufen soll, wie man ihn mit der Steuerung einstellt, empfiehlt es sich ja, mittels Taster einfach auf einen zweiten Ausgang zu wechseln und dort eine zweite 12V-Leitung zu "steuern". Mir ist klar, dass dann auch eine zweite PWM her muss, das ist aber weniger AUfwand, als eine komplette zweite Schaltung zu basteln ;)

Ratber
11.01.2006, 13:19
@Joerea


Das ist auch kein Akt.

Mehrere Möglichkeiten:

Fast jeder Controller hat mindestens einen AD-Wandler onboard.
Da läast sich nen Temperaturabhängiges Bauteil anhängen.

Ein einfacher KTY-81 Sensor für einige Cent bildet einen Spannungsteiler miteinem Widerstand was dann in den AD-Wandler geschickt wird.
Der Rest ist nur eine Umrechnung per Soft (Der Sensor ist nicht ganz Linear also mu´ß nach Tabelle vorgegangen werden.)

Vorteilig ist das der Sensor an einer 2 Adrigen Strippe direkt vorort verlegt werden kann.
Erreichbare Geauigkeit: ca. 1-2°
Für ne Lüftersteuerung völlig ausreichend.


Nächste Methode:

Lm35
Das Bauteil liefert genau 10mV pro Grad Celsius und das von 0 Grad an.

Super einfach denn man bekommt die Temperatur gleich in Lesbaren Zahlen.
Nachteilig ist daß das Bauteil Teurer ist und dreipolig.
Eine Entfernte verlegung wird schwieriger oder man bastelt eine Spezielle umbeschaltung am Sensor was diesen wieder Kloobig macht.



Weitere Methoden:

Es gibt auch Digitale Sensoren wie zb. der Alte LM75 und seine moderneren Brüder.

Die werden per I2C abgefragt
Is aber als mobiler Sensor zu unhandlich weil zuviele Strippen und ungünstige Gehäuseformen.

Am simplesten sind da noch die 1W (One Wire) Sensoren von Dallas wie zb. DS18S20 die mit 2 Drähten auskommen aber dennoch Digitale Temnperaturinformationen liefern.
(Bascom hat dafür fertige Befehle)

Ein Nachteil ist allerdings der Preis mit ca. 4 Euro und mehr je nach Quelle und Modell.




Ein KTY sollte also für deine anwendung völlig reichen.




@Strahlemann

Sicher ist es möglich aber mit dem 15L wirds dann abgesehen von der Austattung auch mit der Software eng.
Da kann man dann auf den Tiny45 ausweichen.
Der ist Moderner,hat mehr Spielereien,vorallendingen einen zweiten PWM-Ausgang.
aber du müßtest dich von einem Taster trennen und den brquchste sicher für die Umschaltung.

Also ziehen wir weiter zu nem größeren Controller.
Der Tiny26 (20 Polig) dürfte da ausreichend sein.
Hat genug Pinne für Taster und Timer für die PWM.

Kannst also damit den 2 Kanaler aufbauen den du im Sinn hast.

joerea
11.01.2006, 17:37
Hallo Ratber,

nochmals vielen Dank für die ausführliche Antwort. Dennoch muss ich nochmal nerven (siehe oben):

Doch noch immer hat sich der Zusammenhang PWM-Frequenz und MOSFET-Durchsteuerung noch nicht in meinem Hirn festgesetzt. Wenn Strahlemann seine Anwendung mal aufgebaut hat, dann kann er durch einen Tastendruck die PWM ändern - wodurch sich auch das Verhalten des MOSFETS ändert. Fragt sich nur um wieviel...


Den Temperaturwert kann ich per SW schon auswerten, die Frage ist nur, wie ich die PWM ändern sollte, dass der Lüfter die gewünschte Spannung abkriegt.

Wäre toll, wenn du mir dazu nochmal (vielleicht mithilfe des Datenblatts) einen Hinweis geben könntest.

Vielen Dank,
gruß

Jörg

Ratber
11.01.2006, 17:58
du meinst die Software ?

Hier mal ein einfaches Testprogramm
Damit kannste etwas Experimentieren.
Mit den Zeilen

"Ocr1a = A" und "Ocr1b = A" wird der jeweilige Wert (0-255 für 0-100%) gesetzt.











'PWM Test für Attiny26
'Je eine LED von Pin B0-3 nach masse.

$regfile = "At26def.dat"
$crystal = 1000000

Dim A As Byte

Tccr1a = &B01010011 'Manuelle Konfiguration von OC1a
Tccr1b = &B10000101 'Manuelle Konfiguration von OC1b
Ocr1c = 255

'Ddrb.0 = 1 'Port b.0 als Ausgang
'Ddrb.1 = 1 'Port b.1 als Ausgang
'Ddrb.2 = 1 'Port b.2 als Ausgang
'Ddrb.3 = 1 'Port b.3 als Ausgang.

Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output

Do
Gosub Pwm
Loop

Pwm:
For A = 0 To 255
Ocr1a = A
Ocr1b = A
Waitms 2
Next
Return

End

joerea
11.01.2006, 18:05
Danke Ratber, ich werds mal ausprobieren!

Strahleman
25.01.2006, 19:14
*Ausgrab*
Habe nun die Schaltung fertig und auch den Controller schon beschrieben. Nur leider läuft mein Lüfter durchgehend auf 12V (genauer gesagt 11,97V ^^). In der Schaltung habe ich keinen Fehler gefunden und wenn ich das Programm simuliere, funktioniert es auch. Außerdem müsste ja zumindest der Taster "An/Aus" funktionieren.

Hier einmal der Code, vllt ist ja einfach nur ein kleiner Fehler drin... wenn ihr wollt, kann ich auch Fotos von der Schaltung machen ;)

'Definitionen & Konfigurationen
$regfile = "at15def.dat"
$tiny
Config Pinb.6 = Output
Config Pinb.2 = Input
Config Pinb.3 = Input
Config Pinb.4 = Input

'Timer
Tccr1 = &B01010011
Tcnt1 = &B10000111
Ddrb.1 = 1

'Aliases
Ausgang Alias Pinb.6
Tasterhoch Alias Pinb.2
Tasterrunter Alias Pinb.3
Tastervoll Alias Pinb.4

'Variablen
Dim Aout As Iram Byte
Dim Bvar As Iram Byte
Dim Cfull As Iram Byte
Dim Bouncer1 As Iram Bit
Dim Bouncer2 As Iram Bit
Dim Bouncer3 As Iram Bit

'Var-Werte
Bvar = 10
Cfull = 255

Aout = 150

'Programm
Do
'Spannungserhöhung
If Tasterhoch = 0 And Bouncer1 = 0 Then
If Aout > 245 Then
Aout = Cfull
Else
Aout = Aout + Bvar
End If
Else
nop
Bouncer1 = 1
End If

If Tasterhoch = 1 Then
Bouncer1 = 0
End If

'Spannungsverminderung
If Tasterrunter = 0 And Bouncer2 = 0 Then
If Aout < Bvar Then
Aout = 0
Else
Aout = Aout - Bvar
End If
Else
nop
Bouncer2 = 1
End If

If Tasterrunter = 1 Then
Bouncer2 = 0
End If

'Volle 12V
If Tastervoll = 0 And Bouncer3 = 0 Then
If Aout = Cfull Then
Aout = 0
Else
Aout = Cfull
End If
Else
nop
Bouncer3 = 1
End If

If Tastervoll = 1 Then
Bouncer3 = 0
End If

Loop
End

Ratber
25.01.2006, 19:51
Ja ,wundert auch nicht.


Ich dachte das hatte ich schon erwähnt.

Nicht den Pin ansteuern sondern den Timer über seine Register.

Mit

Compare1a = 100
oder
Pwm1a = 100
oder
OCR1A =100

Gehts dann auch.

Strahleman
25.01.2006, 20:37
D.h. mit der Konfiguration sollte der Lüfter sich nicht drehen:


'Definitionen & Konfigurationen
$regfile = "at15def.dat"
$tiny
Config Pinb.1 = Output

'Timer
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 64

Do
Ocr1a = 0
End
Loop


ersetzte, sollte sich der Lüfter nicht drehen oder? Oder wie setzt man Ocr1a ein?!

Ratber
25.01.2006, 23:23
Ja genau.
0 = 0% also ständig Low.
255 =100% ständig High.
Die Werte dazwischen ergeben ein entsprechendes Tastverhältnis.


aber oben in dem Tiny26 Beispiel kannste dir das nochmal anschauen.

Strahleman
26.01.2006, 15:49
Hm komischerweise dreht sich auch der Lüfter, auch wenn der Code wie oben gepostet auf den Chip geschrieben ist. Einen Fehler in der Schaltung kann ich nicht entdecken, kann es sein, dass vllt. einer im Schaltbild ist? ;)

Ratber
26.01.2006, 17:02
Kann ich dir sagen wenn du mir sagst was du denn nun aufgebaut hast.

Strahleman
26.01.2006, 17:22
Habe exakt deine Schaltung nachgebaut. Für die PWM habe ich einen 100nF Kondensator und einen 820Ohm Widerstand benutzt.

Ratber
26.01.2006, 18:23
Dann lass die RC-Kombi erstmal weg und schau ob das PWM läuft.

Strahleman
26.01.2006, 19:14
Habe nun etwas rumprobiert: Wenn der Controller nicht im Sockel sitzt dreht sich der Lüfter dennoch mit 12V. Kann es sein, dass ich den Mosfet falsch herum eingelötet habe? Im Moment sitzt er so drin, wie in dem Schaltplan.

Außerdem habe ich einmal nachgemessen und selbst mit Ocr1a = 0 ist an Pin6 vom Controller eine Ausgangsspannung von 4,11V, das stimmt ja wohl auch nicht oder?

Wie gesagt, ich selber finde keinen Lötfehler, ich lasse meinen Vater morgen abend drüber schauen, ihr kennt es ja sicher auch, wenn man ein Teil 20mal überprüft, übersieht man oft immer den selben kleinen Fehler ;)

Ratber
26.01.2006, 19:35
Ach herrje,na kann auch nicht gehen.

Schaltbildr entsprechen selten den Reallitäten.

Schau ins Datenblatt deines Mosfets da ist die Pinbelegung drinne.

Meist ist es Gate,Drain,Source (Kühlfahne Drain) wenn man ihn sich so von vorne anschaut (Pinne unten ,Kühlfahne hinten)

Aber schau nach da gibt es abweichende Modelle.


Den PWM-Ausgang kannste auch mit ner LED nebst Vorwiderstand prüfen.

Strahleman
26.01.2006, 22:26
Wie gesagt, ich selber finde keinen Lötfehler, ich lasse meinen Vater morgen abend drüber schauen, ihr kennt es ja sicher auch, wenn man ein Teil 20mal überprüft, übersieht man oft immer den selben kleinen Fehler ;)

Und so war es auch ;) Ich habe vergessen ein Raster zu zertrennen. Nun dreht der Lüfter garnicht mehr ;) Das liegt aber daran, dass die PWM andauernd 5,87V ausgibt, nach dem Mosfet habe ich daher über 11V und das sind ja dann abgezogen von den 12V Lüfterspannung nur 1V für den Lüfter ;)

Ratber
26.01.2006, 22:30
Hä ??

Hab jetzt nix verstanden. :-k

Strahleman
26.01.2006, 22:43
Also ;) Der Fehler war ein Flüchtigkeitsfehler. Da eine Leiterbahn nicht getrennt war, war der Lüfter dauerhaft an Masse angeschlossen und daher ist ja immer eine Spannung von 12V geflossen.

Der Ausgang gibt durchgehend knapp 6V aus, d.h. nach dem Mosfet sind das fast 12V.

Leider weiss ich nicht, warum das so ist, habe bereits mehrere Codes ausprobiert, immer das selbe Ergebnis :(

Ratber
26.01.2006, 23:08
Ja welchen Ausgang meinst du die ganze Zeit mit den 6V ?

Doch nicht den Controller oder ?

Strahleman
26.01.2006, 23:12
Doch, der Pin 6 vom Controller hat durchgehend 5,87V auch obwohl nur 5V reingehen.

Ratber
26.01.2006, 23:28
Also da spielt dir dein Multimeter wohl nen Streich.

Strahleman
27.01.2006, 17:24
Also da spielt dir dein Multimeter wohl nen Streich.

Glaub mir, da steht wirklich 5.87V. An einer 5V-Leitung misst das Multimeter auch die 5V (OK, es waren 5.04V)

Wie kann man denn am einfachsten testen, ob die PWM funktioniert ohne die Schaltung auseinander zu nehmen? Mit dem Code, den du oben mal gepostet hast (sowie dem manuell getippten PWM-Code) funktioniert die PWM nicht, es kommen immer die 5.87V raus :(

Habe ein bisschen rumgespielt: Mit dem PWM-Code
Tccr1 = &B01010011
Tcnt1 = &B10000111
Ddrb.1 = 1

Habe ich bei dem Pin-Ausgang 5.87V

Mit
TCCR1A=&B10000001
TCCR1B=&B00000010
Ddrb.1 = 1

Habe ich beim Pin-Ausgang 4.20V, dafür spuckt mir Bascom Error 46 aus.

Mit
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 64

Habe ich ebenfalls 5.87V und Error 202 (da das ja net von Bascom unterstützt wird beim Tiny15)

Bitte bitte bitte Ratber helf mir mit dem PWM Code, ich weiss nicht wo der Fehler ist.

Ratber
27.01.2006, 19:06
Versteh ich nicht.

Mit dem obigen Testprogramm für den Tiny26 hab ich keinerlei Probleme.

Habs aus sicherheit mal eben auf nen neuen Tiny26 gespielt und hat prima geklappt.

Die 4 LED's belenden so wie gedacht immer von 0 auf 100% auf (Bzw. Ab bei den beiden Invertierten Ausgängen) und dann wieder von Vorne.


Hast du mal ne LED mit Vorwiderstand angehangen ?

Strahleman
28.01.2006, 02:55
Ich habe ja auch keinen Tiny26 sondern einen Tiny15L. Wenn ich deinen Code für den Tiny26 draufspiel, meckert Bascom bei den PWM-Einstellungen, ich denke mal, dass die sich auch unterscheiden, da der Tiny26 ja wesentlich größer ist, als mein Tiny15.

Ratber
28.01.2006, 06:05
Im Grunde garnicht aber Bascom hat bei den Tinys die Eigenart bei den Timern kaum eine durchgängie unterstützung vorhanden ist und man die Register mit Namen ansprechen muß.

Beim Tiny26 weißte ja wie und beim Tiny15L ist das ebenso nur das die Register andere Namen haben.

Dazu kommt das der 15L kein Ram hat.
Da sind noch einige Einstellungen fällig.


Probier mal folgendes:



'PWM Test für Attiny15L
$regfile = "at15def.dat"
$tiny
$noramclear
$crystal = 1600000
$noinit

Dim A As Iram Byte

Tccr1 = &B01010011
Tcnt1 = &B10000111
Ddrb.1 = 1 'Port b.1 als Ausgang.

Do
For A = 0 To 255
Ocr1a = 127
Ocr1b = 127
Ocr1a = A
Waitms 5
Next
Loop

End


Das hab ich jetzt frei ausem Gedächtnis getippert also keine Garantie auf Schreibfehler (Bascom wird sich schon melden)

Als Tip:

Wenn du einen Controller hast dessen Timer Bascom nicht richtig unterstützt dann schau ins Datenblatt wie das passende Register heist,an welcher Adresse es sitzt,welche Bitkombinationen fällig sind und such in der zum Controller passenden Def-Datei danach.
Dort findest du anhand der Adresse auch raus wie das Teil genannt wird (Meist wie im Datenblatt).
Dann kannste damit selber was veranstallten.

Strahleman
28.01.2006, 10:41
Oh man ich verzweifel hier langsam echt. Mit dem Code gibt mir Port 1 wieder 5.87V aus :( Ohne irgendeinen Code bekomm ich konstant 4,20V geliefert.

Ratber
28.01.2006, 15:44
So,hab das mal eben probiert.
Der Alte 15L hier nimmt das wunderbar an.


Was deine 5.8V angeht so möchte ich jetzt mal wissen was du am PWM-Pin angeschlosen hast .
Häng doch einfach mal ne LED mit Widerstand drann dann kannste auch gleich sehen ob es geht oder nicht.

Die endstufen ist jetzt erstmal egal.

Strahleman
28.01.2006, 15:55
So,hab das mal eben probiert.
Der Alte 15L hier nimmt das wunderbar an.


Was deine 5.8V angeht so möchte ich jetzt mal wissen was du am PWM-Pin angeschlosen hast .
Häng doch einfach mal ne LED mit Widerstand drann dann kannste auch gleich sehen ob es geht oder nicht.

Die endstufen ist jetzt erstmal egal.
An meinem PWM-Pin (also Pin6) habe ich: MISO, Jumper, die RC-Kombination und den MOSFET (das Gate).

Habe zum test die Endstufe mittels Jumper getrennt und eine LED angeschlossen.

Und der Ausgang funzt auch normal.
$regfile = "at15def.dat"
$tiny
$crystal = 1000000 ' used crystal frequency
$noramclear 'Port b.3 als Ausgang.

Config Portb.1 = Output

Do
Portb.1 = 1 'Pin wird auf High, also 5V geschaltet
Waitms 100
Portb.1 = 0 'Pin wird auf Low, also 0V geschaltet
Waitms 100
Loop

End
Mit dem Code blinkt die LED wunderbar, liegt also an den PWM-Einstellungen.

Ratber
28.01.2006, 16:03
Lass den Kondensator erstmal weg und häng entweder ne LED an den Pin oder nen Lüfter an den Mosfet.
So sieht man ohne passende Messgeräte am ehesten ob sich was tut.

Strahleman
28.01.2006, 16:30
Siehe mein Edit ;) Habe ich bereits gemacht und mit nem "LED-Testcode" funzt es auch ;)

Strahleman
28.01.2006, 19:08
Kleine Frage zwischendurch: Gibt es irgendwo eine Erklärung, was dieses &B10000111 bedeuten soll? ;)
Wie gesagt mit meinem Blink-Code funktioniert der Tiny. Sobald ich den PWM-Code von dir eingebe streikt die LED.

Ratber
28.01.2006, 19:30
Sicher gibt es da ne Erklärung.

Schau mal in die Def da steht die Registeradresse von Tccr1,Tcnt1 usw. drinne.

Für die Beiden also ...:

Tccr1 = $30
Tcnt1 = $2F


Dann schauen wir ins Datenblatt in die "ATTiny15L Register Sumary" was sich damit finden läast und ob es da übereinstimmungen gibt.(MCSelec hat da schon einigemale ins Klo gegriffen.zb. Tiny45 mit angeblichem HW-multi.)

Ja,da steht in der Kurzübersicht das wir auf den Seiten 29 und 30 weitere Informationen bekommen.

Dann gehen wir doch mal auf Seite 29.

dort erfahren wir daß das Kürzel TCCR1 = Timer Counter/Control Register 1 bedeutet und etwas weiter runter das Tcnt1 für Timer Counter 1 steht.

Desweiteren erläuter der Tex zu beiden welches Bit wofür steht.
Ansonsten kann ich jedem nur wärmstens empfehlen sich mit den Timern auseinanderzusetzen denn erstens braucht man se recht oft und zweitens ist die Funktion zwar kindereinfach wenn man se mal begriffen hat aber das Begreifen ansich ist nicht so einfach da man dafür die Zusammenhänge kennen muß.

Strahleman
29.01.2006, 16:38
Mit deinem Code für den Tiny15L leuchtet die LED ein bisschen. Wenn ich nun OCR1a = 255 und OCR1b = 255 setzte, müsste die LED doch leuchten oder? Das tut sie nämlich nicht, sie leuchtet wieder nur ein bisschen und ich messe mit dem Multimeter eine Spannugn von 2,4V.

Wie kann ich denn die Ausgangsspannung auf max. bzw. min setzten?!

Ratber
30.01.2006, 01:28
Ja,das kann auch nicht funktionieren denn ich hab dir da den falschen Code gegeben.


Sorry dafür.

Erstmal was was auch läuft.



'PWM Test für Attiny15L
$regfile = "at15def.dat"
$tiny
$noramclear
$crystal = 1600000

Dim A As Iram Byte
Dim B As Iram Byte

Ddrb.1 = 1 'Port b.1 als Ausgang.

Ocr1b = 255
Tccr1 = &B01101011

A = 0
B = 1

Do
Waitms 3
A = A + B
Ocr1a = A
Loop

End


Den hab ich eben auch mal getestet.

Nu hab ich aber nen kleines Problem.
Leider hat sich bei Bascom wohl was geändert denn Incr a oder a=a+1 usw. funktioniert einfach nicht mehr beim Tiny15.
Man kann nur noch mit Variablen rechnen.
Also den Schritt zur erhöhung einer Variablen zuordnen und dann damit arbeiten.
Ist zwar etwas umständlicher aber es geht.

Ich schau mal ob denn wenigstens die Tastenabfragen laufen.

Ja,solangsam kann ich wohl den T15 von der Liste der brauchbaren Controller für Bascom streichen.(In Assembler kein Akt aber das möchte ich dir jetzt nicht antun)

Schau mal ob du jetzt weiterkommst.

Nochmal Sorry für das Theater.
Was so nicht gedacht.

Strahleman
30.01.2006, 16:22
Ja,solangsam kann ich wohl den T15 von der Liste der brauchbaren Controller für Bascom streichen.(In Assembler kein Akt aber das möchte ich dir jetzt nicht antun)

Schau mal ob du jetzt weiterkommst.

Nochmal Sorry für das Theater.
Was so nicht gedacht.

Ich denke auch fast, dass ich den Mega8 einsetzten werden. Ich probier nun einmal ob der Code läuft, doch mir ist die Idee gekommen, dass ich auch meine LEDs und Kaltlichtkathoden über den Controller steuern könnte.

Und da mein Vater nun auch vom uC-Fieber gepackt wurde, haben wir uns zusammen kurzerhand das myAVR + LCD Kit und das Buch von Rowalt bestellt ;)

Ratber
30.01.2006, 17:38
Ja ich hab eben nochmal rumprobiert.
Dei ursprüngliche Aufgabe läst sich noch lösen.

Wenn du allerdings mehr machen willst dann is eh nen größeres modell fällig da du ja sicher mehr Pinne brauchst und auch etwas mehr Speicher.

Ja ,wenn Platz (Der M8 hat 28 Pinne) und 1-2€ mehr keine Rolle spielen dann ist der M8 natürlich besser geeignet zumal er von Bascom voll unterstützt wird.