Dubbele experimenteervoeding

Soms kom je bij het opruimen wat dingen tegen, waarvan je denkt: “daar moet ik nog eens wat mee doen”. Soms loopt dat een beetje uit de hand, zo ook dit project.

Voeding met startscherm

Ik had nog een leuk kastje liggen, dat uitnodigde om eens wat mee te gaan doen. Toen ik weer eens wat aan het opruimen was kwam ik een mooie ringkerntrafo tegen, en een koelblok. Toeval wilde dat ik op een Chinese site een leuk experimenteer voedingsprintje was tegen gekomen (kitje, zelf in elkaar solderen). Dat was een leuke combinatie, en leek prima in het kastje te passen.

Overzicht van alle modules

Het was een dubbele trafo, dus ligt het voor de hand om dan twee printjes te bestellen, en er een dubbele voeding van te maken. Ik had ook nog een arduino en een LCD display liggen, dus die kon ik mooi als interface in gaan zetten.

Al ontwerpende blijkt dat toch wat lastiger dan je in eerste instantie denkt. Allereerst moeten de twee voedingen natuurlijk geheel onafhankelijk, dus galvanisch van elkaar zijn gescheiden. Dat kan, want ze worden gevoed door twee onafhankelijke, secondaire wikkelingen op de trafo. Maar je wilt wel de stroom en spanning op het zelfde display laten zien. En dan moet de Arduino dat wel gaan meten, allebei. En als je dat zomaar wilt doen, dan hang je de voedingen dus aan elkaar via de nul (-) van de Arduino. Na wat gepieker en gepeins (en wat mislukte experimenten) heb ik dat als volgt opgelost.

De Arduino krijgt zijn spanning van een kleine, onafhankelijke hulpvoeding. Vervolgens koppel ik aan elke voedingsprint een meetmodule (PCF8591) die via een I2C bus met de Arduino wordt verbonden. Die meetmodule krijgt zijn voeding van de betreffende voedingsprint. Om te voorkomen dat je dan via die bus de voedingen alsnog aan elkaar knoopt heb ik gebruik gemaakt van een tweetal I2C isolator IC’s – ADuM1250 – die de bus galvanisch scheidt van de Arduino.

Het blokschema

De PCF8591 kun je los kopen, maar ook op een printje. Dat laatste vond ik wat handiger. Nadeel is dat het I2C adres vast staat ingesteld op 0x90. Maar door een printspoortje te veranderen kun je hem eenvoudig op een ander adres zetten, in dit geval 0x92. Dat is nodig, omdat er geen twee ‘slaves’ op de bus mogen zitten met hetzelfde adres.

Het bleek uiteindelijk prima te werken, en na wat programmeerwerk heb ik nu een prima bruikbare voeding, met instelbare stroombegrenzing. De uitgangsspanning loopt van 0 tot 28V en de maximale stroom per voeding is ongeveer 3A.

De Arduino, met de twee I2C isolators op adapter printjes (midden, naast de potmeter) en de meetmodules

Overigens: de oorspronkelijke trafo die ik ervoor had bedacht heb ik uiteindelijk toch niet gebruikt. Hij gaf te veel spanning, en te weinig stroom. Dus heb ik daar een andere voor gekocht.

Er zijn veel componenten vervangen tijdens het experimenteren. Op verschillende momenten heb ik wat rook moeten laten wegwaaien. Gelukkig is het allemaal niet erg ingewikkeld, dus meestal wel weer snel opgelost, maar vervelend is dat natuurlijk wel.

De frontplaat van het kastje kon ik niet gebruiken. Het was een tweedehands kastje waar een of andere decoder in zat, met heel veel schakelaars en LEDjes. Dus dat was een gatenkaas…
Ik heb daarom maar een nieuw frontje gemaakt van printplaat. Flink opgeschuurd en gepolijst met staalwol, en daarna met blanke lak bespoten tegen het oxyderen.

De potmeters voor de spanningsinstelling zijn 20 slagen types. Die voor de stroom gewone enkelslags types.

Er zit ook een ventilator sturing in: hoe hoger de stroom (van een van de voedingen), hoe sneller de ventilator gaat draaien. Ik was te lui om een temperatuurmeting te maken 😉

De voeding met loadbankje om stroom te kunnen trekken
De achterkant met IEC socket, USB socket en ventilator
De hulpvoeding
De twee power transistoren, een voor iedere voeding.
De voeding in gebruik