You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

179 lines
4.9 KiB

//I have two version of this display, one from an original Arduino kit and one from Aliexpress, and the display case (the black part) differ in size so I placed an option to select wich one to visualize. The original one size 26.5x71.5x8.5mm while non original one size 24x71x7mm.The board and pin positions are identical.
$fn=36;
Pitch=2.54;
Pins_enabled=0;
Pins_up=0;
Version=0; //0=Original display from Arduino kit, LCM1602C 1=Generic eBay or Aliexpress
Text1="ABCDEFGHIJKLMNOP";
Text2="QRSTUVWXYZ123456";
module Pins(Pins_number,Pitch)
{
translate([0,-Pitch*Pins_number/2,0])
for(a=[0:1:Pins_number-1])
{
color("Goldenrod")
translate([0,Pitch*a,-3])
cube([0.6,0.6,10],center=true);
color("Silver")
translate([0,Pitch*a,-1.5])
cylinder(r1=0,r2=1,h=1);
color("Silver")
translate([0,Pitch*a,0.5])
cylinder(r1=1,r2=0,h=1);
color("Black")
translate([0,Pitch*a,-2])
Component(2,2,1.25);
}
}
module Pins_holes(Pins_number,Pitch,Diameter)
{
translate([0,-Pitch*Pins_number/2,0])
for(a=[0:1:Pins_number-1])
{
color("Goldenrod")
translate([0,Pitch*a,-3])
cylinder(r=Diameter,h=10,center=true);
}
}
module Pins_copper_rings(Pins_number,Pitch,Diameter)
{
translate([0,-Pitch*Pins_number/2,0])
for(a=[0:1:Pins_number-1])
{
color("Goldenrod")
translate([0,Pitch*a,-3])
cylinder(r=Diameter,h=1.6,center=true);
}
}
module Component(X,Y,Z)
{
hull()
{
translate([X/2,Y/2,0])
sphere(r=0.25,$fn=18);
translate([-X/2,Y/2,0])
sphere(r=0.25,$fn=18);
translate([X/2,-Y/2,0])
sphere(r=0.25,$fn=18);
translate([-X/2,-Y/2,0])
sphere(r=0.25,$fn=18);
translate([X/2,Y/2,Z-0.25])
sphere(r=0.25,$fn=18);
translate([-X/2,Y/2,Z-0.25])
sphere(r=0.25,$fn=18);
translate([X/2,-Y/2,Z-0.25])
sphere(r=0.25,$fn=18);
translate([-X/2,-Y/2,Z-0.25])
sphere(r=0.25,$fn=18);
}
}
//---------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------
module LCD_1602_Serial(Pins_enabled,Pins_up,Version,Text1,Text2)
translate([-Pitch*15-Pitch/2,-Pitch*7-Pitch/2,2.5])
{
translate([0,-1.252,0])
difference()
{
union()
{
color("Royalblue")
translate([0,1.5,0])
cube([80,36,1.5]);
translate([Pitch*10.5,Pitch*14,-2.25])
rotate([0,180,90])
Pins_copper_rings(16,Pitch,0.75);
color("silver")
translate([2.5,4,-0.05])
rotate([0,0,0])
cylinder(d=3.5,h=1.6);
color("silver")
translate([2.5,35,-0.05])
rotate([0,0,0])
cylinder(d=3.5,h=1.6);
color("silver")
translate([77.5,4,-0.05])
rotate([0,0,0])
cylinder(d=3.5,h=1.6);
color("silver")
translate([77.5,35,-0.05])
rotate([0,0,0])
cylinder(d=3.5,h=1.6);
if(Version==0)
color("Black")
translate([40,19,9.5])
rotate([0,180,0])
Component(71.5,27,8);
if(Version==1)
color("Black")
translate([40,19,8.5])
rotate([0,180,0])
Component(71,24,7);
}
translate([Pitch*10.5,Pitch*14,0.5])
rotate([0,180,90])
Pins_holes(16,Pitch,0.55);
color("OliveDrab")
translate([40,19,11.5])
rotate([0,180,0])
Component(64,16,3);
color("Black")
translate([10,20,8.45])
rotate([0,0,0])
linear_extrude(1)
text(Text1,size=4.25);
color("Black")
translate([10,14,8.45])
rotate([0,0,0])
linear_extrude(1)
text(Text2,size=4.25);
color("silver")
translate([2.5,4,-1])
rotate([0,0,0])
cylinder(d=2.75,h=10);
color("silver")
translate([2.5,35,-1])
rotate([0,0,0])
cylinder(d=2.75,h=10);
color("silver")
translate([77.5,4,-1])
rotate([0,0,0])
cylinder(d=2.75,h=10);
color("silver")
translate([77.5,35,-1])
rotate([0,0,0])
cylinder(d=2.75,h=10);
}
if(Pins_enabled==1 && Pins_up==0)
translate([Pitch*10.5,Pitch*14-1.257,1])
rotate([0,0,90])
Pins(16,Pitch);
if(Pins_enabled==1 && Pins_up==1)
translate([Pitch*11,Pitch*14-1.257,0.8])
rotate([0,180,90])
Pins(16,Pitch);
}
LCD_1602_Serial(Pins_enabled,Pins_up,Version,Text1,Text2);