Anfänger: Wie Digitales Potentiometer Anschliessen

Hi

Ich arbeite schon seit einiger zeit mit µControllern und möchte jetzt eine art Klimaanlage für meinen PC bastel, die die Umdrehungen der Lüfter der vorherschenden Temperatur anpasst. Ich habe dann vor ein paar tagen gesehen, dass es Potentiometer gibt, die man über eine Datenleitung einstellen kann.

Ich hab mir bei Conrad auch das AD5258 rausgesucht, was für meine Schaltung passen könnte. Ich hab mir auch das Datenblatt angesehen und weiss schonmal so halb wie ich es anschliessen muss. Jedoch habe ich keine Ahnung, wie ich die Leitungen AD0, AD1, SDA und SCL anschliessen muss, und wie ich dem Potentiometer sage, was es für einen Wiederstand haben soll. Ich Weiss, dass man die daten warscheinlich seriell einlesen muss, aber ich weiss nicht an welchen pin und bin auch schon seit zwei tagen total am verzweifeln :frowning:

Das Datenblatt gibt es hier

MFG Killerawft

Steht im Datenblatt: mit einem µC der I2C hat.

Nur frage ich mich: wofür?

Der Lüfter wird mit PWM oder geregelter Gleichspannung Drehzahl geregelt.

Beides braucht kein elektronisches Poti?

Ist auch kein 1Wire Projekt, kläre mich bitte auf.

Also ich möchte die 5 Volt über ein Potentiometer verringern um so dem Motor des lüfters langsamer drehen zu lassen. Und da ich das alles über ein LCD und einem ATMega32 steuern möchte habe ich nach einer möglichkeit gesucht, wie ich die Spannung mit dem µController dierekt ändern kann, ohne dass jemand an einem Poti selbst drehen muss.

Zuerst hatte ich mir überlegt 5 stufen pro Lüfter mit Widerständen und Transistoren aufzubauen, doch dafür benötige ich pro lüfter 5 Pins am Controller. Bei Sechs lüfter im PC wären das schon 30 von 32 I/O Verfügbaren Pins. Es würde auch mit Schieberegistern gehen, aber ich dachte mir mit so einem Digitalen Potentiometer ist das bestimmt eleganter. Ich habe aber wirklich keine Ahnung wie die dinger funktionieren, weil auch so wenig im Internet über die steht.

Aber wenn ich deinen Beitrag so lese muss ich sagen ist es wohl besser mit Schieberegistern und Transistoren zu arbeiten.

Hi Digitalelektriker,

wenn Du schon einen ATMEGA einsetzen möchtest, wie wäre es mit etwas Weiterbildung unter dem Schlagwort: PWM.

Bascom als „Mickey Mouse“ Programmiermöglichkeit beinhaltet solche Routinen und bietet auch die Möglichkeit den I2C Bus anzusprechen (um zur ersten Frage zurück zu kommen).

mfg

BerndJ

Also ich wehre mich dagegen meinen Beitrag als Anlass zu nehmen mit Schieberegistern, usw, zu arbeiten.:rolleyes::rolleyes:

Ich bin ein großer Bastler, aber so etwas nicht.

PC-Lüfter arbeiten meist mit 12 Volt und werden vom Motherboard-Peripherie (Bios-Chips) gut geregelt.
Deren Drehzahl überwacht und und, da sollte man ansetzen.

Es gibt gute Montorprogramme, die dieses Monitoring der Bios-Chips sichtbar machen.

Diese Programme machen es prima.
Speedfan Englisch Freeware almico dot com

MBM-Monitor -> hat fast alle Motherboards
usw.

Wenn du das trotzdem machen willst,
schau dir doch mal die Möglichkeit(en) mit 1Wire Temperaturfühlern zu messen und per PWM zu regeln im Bascom-Forum (oder in anderen Foren mit Compilersprachen) an.

Oder googel nach 1Wire DS18B20 Bascom und PWM.

Mit welchen Compilern arbeitest du?

Ich habe mal so etwas für einen 5V-Lüfter mit AVR gemacht.
Details gibt es hier.
Die gemessene Temperatur könnte man über die (im Foto nicht angeschlossene) serielle Schnittstelle auch an IPS weitergeben.

Tommi

also um eins klarzustellen, ich will nicht die CPU und Grafikkarten Lüfter regeln, sondern meine Gehäuselüfter.Diese laufen, wie ich nachgemessen have mit 12Volt und haben keinen PWM eingang o.ä. NUR +12V und GND. Und ich hab mich entschieden die mit Transitoren in drei schritten (12V, 8V und 5V) anzusteuern. Da ich zu wenig pins habe MUSS ich schieberegister benutzen um das so realisieren zu können, auch wenn es zugegebener massen eine nicht so schöne varriante ist.

Und @Helmut: aus deinem Beitrag habe ich nicht rausgezogen, dass ich Schieberegister nehmen sollte. Ich hab da rausgezogen, dass das mit dem Digitalem Potentiometer nicht so gut überlegt war und dass das als möglichkeit ausscheidet also keine Panik :smiley:

@tommi: die Art, die Temperatur zu Messen finde ich interessant. Da werde ich mich auch nochmal weiter einlesen. Könntest du mir den Schaltplan und den Bascomquellcode per mail oder einen link per pm schikcen? das wäre nett

und schonmal danke an alle, dass man hier selbst mit recht dummen fragen beachtet wird.

Hallo Killerawft,
es wird schon klarer um die Lüfter.

In Tommis Link ist der Assemblercode und Schaltplan dabei.
Hast du die Möglichkeit es in ein Hex-File und in einen Prozessor zu bringen?
Sonst sag`: Bescheid, Bescheid.

Eine andere Möglichkeit wäre es den schon (sicher?) mit PWM geregelten CPU-Lüfter als Referenz zu nehmen.

Also elektrisch gesehen.
Einfach einen BUZ Feldeffekt: Gate an die +Leitung des CPU-Lüfters, Drain an die Gehäuselüfter und Source an 12V-

Oder einen normalen Transistor: Basis über einen Vorwiderstand an + vom CPU-Lüfter, Emitter an die Gehäuselüfter und Collektor an 12V.

Alles ungetestet…
Gruß Helmut

Also ich erkläre jetzt mal meine gedachte schaltung ganz genau und meinen bis jetzt gezeichneten schalplan häng ich auch noch dran zum besseren verständniss.

Also ich habe eine Dithmarscher Bierkiste als Gehäuse für meinen PC.(Ein Bild: http://gallery.moddingtech.de/jgallery/resources/pics/cases/cg_Killerawft_01_20090808-1358.jpg) Diese Kiste hat ein sehr grosses Volumen, D.H. die Luft steht teilweise in meinem Gehäuse. Jetzt möchte ich an 4 verschiedenen stellen im Gehäuse die Temperatur Messen (entweder mit einem PT100 und dem ADC an meinem µC oder dem LM 75CIM 5 NSC über I2C) und mit 6 Lüftern die Temperatur in den bereichen auf einem bestimmten Wert oder darunter halten. Damit ich nicht wärmere Luft in das Gehäuse blase, als die die im Gehäuse ist, messe ich noch einmal die Temperatur auserhalb des Gehäuses. Die lüfter steuer ich mit Transitoren in drei schritten:12Volt, 8Volt und 5Volt.
Also kann ich im Endeffekt durch das Grosse Volumen des Gehäuses und die Daraus resultierenden verschiedenen Temperaturen nicht das Signal vom CPU lüfter nehmen, wobei auch die Gehäuselüfter normalerweise kein PWM Signal bekommen. Und wenn man das PWM signal des CPU lüfter einfach auf den Plus pol des Lüftermotors legt kann ich mir vorstellen, dass das nicht alzu gut für den Lüftermotor ist.

Und zu dem Assemblercode: ich könnte den COde in Hex Umwandeln, jedoch möchte ich nicht die Schaltung nachbauen die dort ist, sondern sehen wie die I2C übertragung mit dem Temperaturfühler genau Funktioniert. deswegen wollte ich auch den schaltplan haben.

Zu meinem Schaltplan muss ich noch sagen, dass ich keine Ahnung habe wie der ADC port zu verwenden ist und die PT100 Wiederstände nur irgendwie angeschlossen sind un dich denke nicht Richtig.

Grobe Übersicht.zip (22.2 KB)

Den Schaltplan kann man sich auf der angegebenen Webseite als JPG ansehen. Ds Original unterscheidet sich davon nur, das man es bearbeiten kann. Ich habe es trotzdem alles eingepackt und abgeschickt.

Bei meiner Lösung verwende ich einen LM75, welcher selbstständig die Temperatur ermittelt und via I2C an den AVR schickt. Man könnte davon auch mehrere LM75 mit unterschiedlichen Adressen (max.8)an unterschiedlichen Stellen einbinden. Die Drehzahl des Motors wird dann in Abhängigkeit zur Abweichung von der eingebenen Solltemperatur mittels PWM geregelt. Das PWM-Signal wird über einen Kondensator integriert, so das am Ende wieder eine nach PWM-Verhältnis reduzierte Gleichspannung am Motor anliegt.
Der von Dir vorgesehene Widerstand zur Reduzierung der Spannung würde nur stufenweise wirken und dann auch nur die Energie statt in Drehzahl in Wärme am Widerstand umsetzen.

Tommi

also ich muss sagen ich verstehe nicht von welchem Wiederstand du redest :smiley:
Ich benutze keine Wiederstände zur spannungsreduzierung sondern nehme einmal 12Volt vom Netzteil einmal nehme ich einen Spannungsregler für 12 Volt und einmal 5 Volt wieder vom Netzteil.

@Helmut: Ich benutze einen Bascom Compiler

Digitales Poti != Widerstand???

achso. nein ich benutze kein digitales Poti weil ich dafür zu wenig eingänge am µController habe. ich stell die drehzahl in schritten mit transitoren ein, die verschiedene SPannungen auf den pluspol des Lüfters schalten.

Hi,

3 Stufen = 3 Port´s.

Man könnte jetzt noch Gatter verwenden und würde dann mit Hilfe von 2 Port´s 4 Zustände schalten !!!

Ohne jetzt unhöflich zu werden (es fällt mir schwer),

das Verständnis zu PWM hätte als Ergebnis gebracht:

es geht auch mit einem Transistor, einem Widerstand an der Basis und einem Port, keine getrennte Spannungserzeugung für die einzelnen Stufen, keine Schieberegister… usw. … und vor allem: stufenlos.

Hier ein zweiter Versuch PWM näher zu bringen: Bascom und PWM - RN-Wissen.

mfg

Bernd J

PS: raus aus der Steinzeit, diesen Müll hab ich auch mal 1973 gelernt, seitdem ist die elektronische Evolution vorangeschritten.

Guugl´n hilft:

http://www.mikrocontroller.net/topic/8569
http://www.mikrocontroller.net/topic/148007
http://www.mikrocontroller.net/topic/134044
http://www.mikrocontroller.net/topic/5599
http://forum.electronicwerkstatt.de/phpBB/topic74577_f28_bxtopic_timexDESC_by1_bz0_bs0.html
http://www.ledstyles.de/ftopic6197.html

Ich geb mal nen weiteren Link:

http://www.google.de

Suchbegriff eingeben: Bascom PWM nutzen

als erster Versuch, eigene Suchbegriffe sind erwünscht und stehlen den anderen Supportern nicht die Zeit.

Noch´n PS:

ist hier erwähnt:

also ich hab mal mit einem gesellen heute bei der arbeit darüber geredet (Elektroniker) und der hat mir viele verschiedene möglichkeiten gezeigt, wie man das bewerkstelligen kann. Und am besten hat mir gefallen, dass über einen Spannungsteiler mit einem NTC und einem Transitor zu machen.
Mit dem transitor schalte ich dann analog meinen Lüfter und kann vor dem Transitor mit einem ADC die Temperatur abgereifen um sie auf einem LCD anzeigen zu lassen.

Also würde ich fast sagen Problem gelöst :slight_smile:

Danke für eure tatkräftige Unterstützung