středa 19. dubna 2017

Nový, digitální laboratorní zdroj

Starý zdroj a jeho neduhy


Před třemi lety jsem si postavil "laboratorní zdroj" prakticky zadarmo z ATX zdroje z vyřazeného PC. Tady o tom nadšeně bloguji. A takto vypadal:


Na první pohled vše fungovalo dobře, ale časem se ukázala jedna výrobní vada, jedna konstrukční chyba a dva fatální nedostatky celého zdroje. Výrobní vadou bylo, že při velkém proudovém nárazu se zdroj jednoduše vypnul. Zafungovaly tam zbytky nějaké nadproudové ochrany, a protože úprava ATX zdroje na proměnlivé napětí byla velmi nedokonalá a krutá, nadproudová ochrana spínala v podstatě náhodně i u malých proudů, přestože zdroj měl být schopen dodávat až 12 ampér.

Konstrukční chybou bylo použít jeden displej pro výstupní napětí i odebíraný proud. Měl jsem tam sice přepínač mezi napětím a proudem, takže jsem si mohl pořád přepínat sem a tam, ale jak člověk nevidí obě klíčové hodnoty naráz, je to nešikovné.

No a ty dva fatální nedostatky? Prvním je chybějící omezení výstupního proudu. Pokud jsem totiž zapojil jakýkoliv pokusný obvod špatně, tak po připojení k tomuto "laboratornímu" zdroji obvykle následovaly kouřové efekty a jak známo, kouř je uzavřený uvnitř součástek, a jakmile jednou unikne, součástku už nic nepohání a proto přestane fungovat. Kdybych měl možnost omezit proud ze zdroje třeba na 50 mA, tak by mi přežilo mnoho součástek při mých pokusech.

Druhý fatální nedostatek je vlastně taky konstrukční chybou, ale samotného ATX zdroje. Projevilo se to, když jsem se snažil změřit odběr proudu obvodu s ESP8266 pomocí mého nového a velmi drahého digitálního osciloskopu. Stalo se to 20. června 2016 a tehdy jsem to popsal na mém Google+ profilu: https://plus.google.com/+PetrStehlík/posts/6pjpoezBvHe

Ve zkratce jde o to, že "záporný" pól ATX zdroje (tedy společná zem na sekundární straně) je vodivě propojen s ochranným kolíkem v elektrické zásuvce! To jsem vůbec netušil. No a jelikož je i zemnicí vývod osciloskopové sondy připojen také na ochranný kolík v elektrické zásuvce (což jsem taky netušil), tak kdykoliv něco měřím osciloskopem v obvodu napájeném z mého starého "laboratorního" zdroje a zemnění osciloskopické sondy nemám připojeno na zem obvodu, tak část obvodu krutě zkratuju přes přívodní kabely ATX zdroje a osciloskopu a elektrické vedení v domě!

Po této nepříjemné zkušenosti jsem se rozhodl, že můj nový laboratorní zdroj musí být galvanicky zcela oddělený od elektrické sítě, včetně ochranného kolíku. Nejjednodušší bude použít zdroj třeba k notebooku, kde jsem si proměřením ověřil, že k ochrannému kolíku sekundární strana vodivě připojena není.

No a tady už prozrazuji, o čem vlastně tento blog post je - ostatně jsem to hned v srpnu 2016 nakousl na Google+:
https://plus.google.com/+PetrStehlík/posts/L4PeEYdzkk3

Nový zdroj


Koupil jsem si totiž v Číně docela levný modul, který má zjevně sloužit ke stavbě zdroje. Jmenuje se
DP30V5A a je to prý upgraded version DPS3005 (nebo naopak?). Vlastnosti jsou popsány takto: Constant Voltage current Step-down Programmable converter Power Supply Ammeter voltmeter Module.

Z popisu můžeme vytušit, že je to digitálně řízený (programovatelný) zdroj konstantního napětí či konstantního proudu, který mění vstupní stejnosměrné napětí na výstupní jako step-down konvertory, takže téměř beze ztrát. Výstupní napětí může být až 30 V (ale vždy o cca 2 V nižší než napětí vstupní), výstupní proud až 5 A (to podle výkonu zdroje na vstupu, díky step-down konverzi může být výstupní proud i vyšší než proud ze zdroje).

Kromě této verze na 30 V a 5 A jsou k dostání další varianty lišící se maximálním výstupním napětím (až 50 V) a proudem (až 15 A). Můžete si vybrat, podle toho, jak silný zdroj vstupního stejnosměrného napětí máte a jak moc velký proud budete na výstupu potřebovat.


Všechny verze mají společné velmi jemné nastavování výstupního napětí a proudu: napětí v setinách voltu a proud dokonce v jednotkách miliampér! Velmi úžasné a praktické.


Krabička je křehká, návod čínsky:


Balení pofiderní, ale cestu přežilo celkem bez úhony:


Modul je připraven k montáži do nějakého panelu:


Zezadu  je vidět pořádná cívka, pěkné kondenzátory a poctivý chladič. Celkem to vzbuzuje důvěru, nebo aspoň naději:


Jak mi koncem července 2016 přišel, ihned jsem mu zapojil na vstup 90W zdroj od notebooku (18 V a 4,5 A), a na výstup jsem připojil kablík s napájecím jackem 5,5 mm / 2,1 mm.

Od té doby jsem ho takto používal prakticky denně a nemohl si vynachválit, jak úžasné je mít možnost omezit výstupní proud zdroje. Skutečně to používám neustále a už mi to mockrát zachránilo [vy víte co]. Teď se mi smějí všichni čtenáři, kteří už skutečný laboratorní zdroj doma mají roky, ale pokud je tu ještě někdo, kdo doma zdroj s omezením proudu nemá, tak ihned pořídit! Je to prostě nepostradatelná věc.

Už mě ale unavilo to pořád nosit takto rozdělané a proto jsem se rozhodl mu pořídit pěknou krabičku. Hlavně jsem chtěl na vstup přidat konektor, abych mohl připojovat jakýkoliv zdroj od kteréhokoliv notebooku, a ssebou přenášel jen tento maličký modulek a nikoliv neskladný zdroj k ntb spolu se všemi jeho kabely.

Díky 3D tiskárně i3 MK2 už nemusím krabičky vytesávat ze dřeva či železa. Stačí si je navrhnout a vytisknout. Tady jsem udělal začátečnickou chybu, a nepodíval se nejdřív na internet, kde bych jinak našel už hotovou krabičku (protože všechno, co děláte, už někdo udělal před vámi a navíc nahrál na internet - Jára Cimrman by mohl vyprávět).

Místo toho jsem se (oslněn mými aktuálními úspěchy v modelování 3D objektů) vrhl ihned na tvorbu krabičky na míru. Měl jsem docela jasnou představu zkoseného čelního panelu (aby byl displej dobře čitelný a ovládací prvky dobře přístupné), ale nevěděl jsem přesně, jak bych to jednoduše udělal v mém oblíbeném OpenSCADu. Proto jsem zkusil cloudový CAD Onshape.com, ve kterém jsem zatím naprostým nováčkem. Tady je výsledek mého krátkého snažení (šlo v něm tvořit nečekaně pohodlně a rychle!): krabička laboratorního zdroje (na OnShape.com si ji můžete zkopírovat, upravit a vytisknout).


A takto vypadá výsledek:


Krabičku jsem vytiskl z PETG, aby vydržela vyšší teploty, pokud by se modul zahříval (ve skutečnosti se mi ještě nikdy neohřál, protože vysoké proudy při své běžné práci nepoužívám, ale co kdyby jednou...). Nahoře jsem přidal i řadu větracích otvorů, aby to vypadalo úplně profi :-) Vzadu je pak konektor, který jsem vypreparoval z jednoho notebooku. Byla to taková šikovná kostička, dokonce měla na boku otvor pro šroubek, tak jsem ji tam přišrouboval - přesně tam sedí.



Na výstupu by každý z vás čekal typické banánky, ale já jsem je tam schválně nedal a místo toho jsem zezadu opět vyvedl jen kablík s napájecím jackem 5,5 / 2,1 mm. Doma do něj zapojuju vše počínaje WiFi Teploměry, přes různá Arduina a mám i propojku s krokosvorkami, takže si skutečně plně vystačím i bez klasických banánků.


A to je vlastně vše. Modul je krásně digitální, nastavím si poměrně pohodlně výstupní napětí a proud (oboje pak přesně drží i pod proměnlivou zátěží), vidím neustále napětí, proud i celkový příkon a je tam i deset pamětí pro vlastní přednastavené hodnoty (které zapomínám používat). Levná (cca 600 Kč) a přitom opravdu funkční věc, kterou vřele doporučuji! :-)

Ještě jsem neodolal a natočil krátké video, kde ukazuju, jak jednoduše se modul obsluhuje:


Tak a to je vše! Pokud jste nevěděli, jaký zdroj si pořídit, tak teď už snad víte :-)

pondělí 17. dubna 2017

Arduino, OpenSCAD a krokové motory

Měl jsem doma už dlouho hromádku krokových motorů odněkud ze šrotu, a když jsem teď měl chviličku volna a nápad na věc, kde by byl krokový motor nezbytný, pokusil jsem se je oživit. V následujícím videu vše ukazuju a vysvětluju:



S pomocí příkladů od knihovny Stepper, která je standardní součástní Arduino IDE, jsem napsal následující jednoduchý prográmek pro otočení krokového motoru o osminu otáčky (o 45 °) po stisknutí tlačítka připojeného na pin A0 a zem:

#include <stepper.h>

const int stepsPerRevolution = 50;
Stepper myStepper(stepsPerRevolution, 2, 3, 4, 5);

void setup()
{
    pinMode(A0, INPUT_PULLUP);
    myStepper.setSpeed(60);
}

void loop()
{
    static byte krok = 0;
    if (!digitalRead(A0)) {
        myStepper.step(6 + (((krok++ % 4) == 0) ? 1 : 0));
        delay(100);
    }
}


SCAD zdrojový kód pro unašeč CD, nasazený na hřídeli krokového motoru. Používá knihovnu Gears pro vytvoření ozubené díry. Vytištěno z PETG na i3 MK2 za 16 minut:

include <gears.scad>;
zuby_h = 7.4;
cd_d = 14.9;
cd_h = 1.2;
vyska = 8;
union() {
    difference() {
        cylinder(vyska, d1=18, d2=30);
        linear_extrude(height = zuby_h) gear(number_of_teeth=15, circular_pitch=100, clearance = 0);
    }
    translate([0, 0, vyska]) cylinder(cd_h, d1=cd_d, d2=cd_d);
}


SCAD zdrojový kód pro podstavec motoru, aby tento necestoval po stole. Vytištěný také z PETG, protože motor se zahřívá (i když stojí!), takže podstavec z PLA (ze kterého jinak tisknu vše) by se pod ním nejspíš roztekl:

prumer = 60;
vyska = 2.4;
dira_d = 12;
dira_h = 2.2;
roztec = 49.5;
sloup_d = 6;
sloup_h = 13.4;
sroub_d = 2.8;
sroub_h = 6;
union() {
    difference() {
        cylinder(vyska, d1=prumer, d2=prumer);
        translate([0, 0, vyska - dira_h]) cylinder(dira_h, d1=dira_d, d2=dira_d);
    }
    translate([roztec/2, 0, vyska]) sloupek();
    translate([-roztec/2, 0, vyska]) sloupek();
}

module sloupek() {
    difference() {
        cylinder(sloup_h, d1=sloup_d, d2=sloup_d);
        translate([0, 0, sloup_h-sroub_h]) cylinder(sroub_h, d1=sroub_d, d2=sroub_d);
    }
}

A to je vše :-)