Files
whipsaw/zvs-driver.scad
Stephen Carpenter 4c77428715 Moved Transformer Mount; Added Design info
Added Design info and notes. Calculate voltages from parameters.
Still need frequency calcs.

Moved transformer mount away from board and up 2mm. This should add clearance
but still could use stability. Should move to full joiners.
2023-12-05 16:04:05 -05:00

95 lines
2.3 KiB
OpenSCAD

include <BOSL/constants.scad>
use <BOSL/transforms.scad>
use <BOSL/shapes.scad>
use <BOSL/joiners.scad>
use <inserts/inserts.scad>
use <./bobbin.scad>
/* [Options] */
PCB_Y = 100.80;
PCB_X = 100.30;
PCB_Z = 1.69;
PCB_CLR = 5;
/* [Design] */
V_IN = 12;
Turns_Ratio = 85;
/* [Mount Stands] */
Mount_Hole_D = 4.36;
Mount_X = 74.38;
Mount_Y = 89.24;
BOX_WALL = 1.5;
/* [Render Options] */
render_fs=.1;
render_fn=0;
render_fa=.1;
// Set Render Options
$fs= ($preview) ? $fs : render_fs;
$fn= ($preview) ? $fn : render_fn;
$fa= ($preview) ? $fa : render_fa;
zclear=2;
module print_specs() {
echo("ZVS Module: QS2015004");
echo("Input Voltage: 12-48V");
echo("Max Current: 20A");
echo("24V no load current: 3A");
echo("48V no load current: 6A");
echo("Caps .33uFx6 = 1.90 uF");
vpk = PI * V_IN;
opk = vpk*Turns_Ratio;
oac = opk/sqrt(2);
echo("Vpk = ", vpk, " volts");
echo( "OutPk = ", opk," volts");
echo("RMS = ", oac, " volts");
}
//
print_specs();
// PCB Board
up(5) %difference() {
cuboid([PCB_X,PCB_X,PCB_Z], fillet=3, edges=EDGES_Z_ALL, align=V_TOP);
left((Mount_Y-Mount_X)/2) yspread(l=Mount_Y) xspread(l=Mount_X)
cyl(d=Mount_Hole_D, chamfer=0, h=2*PCB_CLR, align=V_CENTER);
}
// Box
difference() {
left(25/2) cuboid([PCB_X+30+2*BOX_WALL+.4,PCB_Y+2*BOX_WALL+.4,PCB_Z+PCB_CLR+BOX_WALL], fillet=3, edges=EDGES_Z_ALL, align=V_BOTTOM);
pcb_mount_clearance();
mount_positions() thread_insertM25(bl=6, bz=-6, $die=true);
up(2)rotate([00,0,0]) left(15+6+PCB_X/2) rotate([0,90,90]) bobbin_joiners(clear=true);
}
up(2) rotate([00,0,0]) left(15+6+PCB_X/2) rotate([0,90,90]) bobbin_joiners(plug=false);
module mount_positions() {
left((Mount_Y-Mount_X)/2) yspread(l=Mount_Y) xspread(l=Mount_X) children();
}
module pcb_mount_clearance() {
// clearance
// pcb itself
color("yellow") up(.01) cuboid([PCB_X+.4,PCB_Y+.4,PCB_Z+.01], fillet=3, edges=EDGES_Z_ALL, align=V_BOTTOM);
down(PCB_Z-.01) difference() {
union() {
cuboid([PCB_X,PCB_Y,PCB_CLR+.02], fillet=3, edges=EDGES_Z_ALL, align=V_BOTTOM);
}
color("green") up(.02) {
right(PCB_X/2) cuboid([4,PCB_Y,PCB_CLR+.02], align=V_BOTTOM); // Edge Support
left(PCB_X/2) cuboid([8,PCB_Y,PCB_CLR+.02], align=V_BOTTOM); // Edge Support
}
cyl(d=Mount_Hole_D+3, chamfer=0, h=PCB_CLR, align=V_BOTTOM);
mount_positions() cyl(d=Mount_Hole_D+3, chamfer=0, h=PCB_CLR, align=V_BOTTOM);
}
}