Arduino Netzteil

Projekt: Arduino ATX Netzteil

Eine leistungsfähige Stromversorgung für den Bastelkeller ist so ziemlich das wichtigste neben einem Lötkolben.

Solche Netzteile bekommt man am Markt für 20-2000 Euro. Mit und ohne Strombegrenzer, einstellbarer Spannung, ein oder zwei Ausgängen usw usw. Man sollte sich allerdings einmal Gedanken machen was man wirklich davon benötigt. In meinem Fall sind es zumeist 3.3 Volt oder 5 Volt für die Mikrokontrollerschaltungen. In Ausnahmefällen mal mehr um einen Motor anzusteuern oder ähnliches. Aktuell behelfe ich mir da zumeist mit regelbaren Spannungswandlern und einem 12 Volt Steckernetzteil.

Beim stöbern im Netz fand ich einige Projekte welche ATX-Netzteile von Computern nutzten. Ganz besonders interessant war das von hackmeister.dk.

Da musste ein Nachbau her :-)

Die Komponenten

Das fertige Netzteil bietet drei feste Spannungswerte von 3.3V, 5V und 12V welche über Schraubklemmen (oder wie die heissen) ausgeführt sind.

An jedem Ausgang befindet sich ein ACS711EX Stromsensor (Messbereich -15,5 bis +15,5 Ampere) welche die Belastungen der Ausgänge messen. Diese Messwerte werden von einem Arduino Pro Mini ausgelesene und auf dem LCD-Display ausgegeben.

Zusätzlich besitzt das ganze eine Status LED mit zwei Farben (Rot / Grün) und einen Kippschalter zum ein und ausschalten.

 

Das Gehäuse

Das Gehäuse wurde nach den Plänen von der o.G. Seite mit einem 40 Watt Lasercutter aus 4mm Sperrholz geschnitten. Es ist so ausgelegt, das es nur auf ein ATX Netzteil aufgesteckt wird.

Die Einzelteile

Die Einzelteile und das Display

Funktion

Das Netzteil nutzt 3 Spannungen der ATX-PSU (3,3 V, 5 V und 12 V). Zusätzlich haben ATX Netzteile noch einen separaten 5 Volt Spannungsausgang der, im Gegensatz zu den anderen Ausgängen nicht geschaltet wird. Das bedeutet diese 5 Volt stehen auch bei ausgeschalteten Netzteil zur Verfügung. Dieser Ausgang befeuert sowohl den Arduino als auch das Display.

Damit ist es möglich, das der Arduino auch bei ausgeschalteten ATX-Netzteil weiterarbeitet. Der AN/AUS-Kippschalter z.B. schaltet nicht etwa den Arduino stromlos, sondern wird aktiv vom laufenden Programm abgefragt. Wird dieser in die richtige Posotion gebracht startet der Bootvorgang.

Arduino Netzteil

In dieser Bootvorgang wird aktuell nichts anderes gemacht als die Stromsensoren zu kalibrieren. Danach befindet sich das Netzteil im Normalmodus.

Arduino Netzteil

Die Stromsensoren messen alle paar Millisekunden den Strom aller drei Ausgänge. Diese Messungen werden auf dem LCD-Display angezeigt.

Da der Arduino und das Display also dauerhaft mit Strom versorgt sind, ist es nun möglich die primären Ausgänge zu schalten ohne das die ganze Regelung abgeschaltet wird. ATX Netzteile besitzen nämlich eine separate Schaltleitung um das ganze Netzteil an- und abzuschalten. Wird diese Leitung auf GND gelegt startet das Netzteil (Lüfter läuft an) und die Spannungen auf den “Nutzleitungen” liegen an. Der Arduino ist also in der Lage das Netzteil zu schalten ohne sich selber den Saft abzudrehen.

Dieses Verhalten ist extrem nützlich um zusammen mit den Stromsensoren eine Sicherheitsprogrammierung vorzunehmen. Man kann nun für jeden der 3 Ausgänge eine maximale Stromlast vorgeben welche bei überschreiten das Netzteil abschaltet und auf dem Display (und mit der LED) einen Fehlerzustand anzeigt.

 

Der Code

Der aktuelle Arduino Code ist derzeit recht übersichtlich, alpha und ohne Gewähr für eventuelle Schäden die bei seiner Verwendung entstehen könnten :)

PSU.ino

Dieser Code beinhaltet die Hauptlogik des Ganzen.

 

current.ino

Hier findet man Hilfsfunktionen zum auslesen der Stromsensoren.

 

leds.ino

Hier sind Hilfsfunktionen zum ansteuern der LEDs untergebracht.

 

 

Links & Datenblätter

2 Gedanken zu „Projekt: Arduino ATX Netzteil“

    1. Hi,

      hm, wuesste ich nicht. Habe es in Hannover bei einem Makerspace per Lasercutter machen lassen. Ich glaube es gibt Firmen im Netz die sowas als Auftragsarbeit machen – dann auch aus Alu oder Kuststoff.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">