Ein Arduino steuert ein Labornetzteil. Die Eingabe erfolgt bequem über eine Matrixtastatur oder von einem PC aus. Die Ausgabe der Soll- und Ist-Werte erfolgt auf einem Display.
Zutaten
- Arduino
- 4×20-LC-Display
- Matrixtastatur
- Netzteil
- Relais
Inspirationsquellen
Ein schlechtes billiges Netzteil und ein gutes, leider defektes, selbstgebautes.
Funktionsweise
Ich habe ein Netzteil mit einer Arduino-Steuerung wieder aufgebaut. Hab das vor gut 10 Jahren in meiner Ausbildung gebaut. Leider habe ich irgendwann den C-Control zerstört. Als ich mich über mein viel zu unpräzises Netzteil für zu Hause geärgert habe, dachte ich mir, ich bau das wieder auf. Dazu habe ich mit einigen fertigen Arduino-Libs schnell das fertige Programm für den Arduino (bei mir einen Leonardo) zusammen geschrieben.
Der Arduino steuert mit PWM-Ausgängen die Sollwerte des Analogteils des Netzteils. Hier greife ich auf eine Library zu, die eine simple Erhöhung der PWM-Frequenz und -Auflösung ermöglicht. Mit zwei ADC-Eingängen bekomme ich die Ist-Werte. Die ADCs übersample ich mit 12 Bit, die Referenzspannung schalte ich wenn möglich auf die interne um. Somit bekomme ich ganz brauchbare Werte. Die Ausgabe erfolgt auf ein 4×20-Display. Dort werden Soll- und Ist-Werte sowie Zusatzinfos dargestellt.
Bedienung und Ausgabe
Die Eingabe erfolgt mit einer Matrix-Tastatur. Werte gibt man direkt ein und kann sie mit einer entsprechenden Taste für Spannung, Strom und Leistung direkt übernehmen. Zusätzlich kann man auch noch eine Leistungsbegrenzung einstellen. Das habe ich gelegentlich vermisst, wenn ich verschiedene LEDs verglichen habe. Jetzt kann ich einfach die maximale Leistung einstellen und muss nicht mehr nachregeln. Ein Relais trennt das Netzteil von den Klemmen, um ständiges Ein- und Ausstecken zu vermeiden.
Die Genauigkeit liegt bei circa 50 mV und 5 mA. Über die USB-Serielle Schnittstelle gibt das Netzteil schon die Infos aus und empfängt Steuerbefehle. Ich plane noch eine Ansteuerung über ein PC-Host-Programm, um auch vordefinierte Kurven und Zyklen abfahren zu können. Hab mich da mal mit LabView versucht, aber bei mir ist das zu lange her und ich muss mich da wieder ganz neu einarbeiten.