Good evening everyone,
I come back here asking your help.
I tried to design a code in order to help my son to create custom characters on a lcd screen with a arduino.
The idea is to have a 5*8 frame and check the rectangles you want black to create your own special character.Then a arduino type code is automatically generated in the console and you just have to copy and paste it in your arduino IDE.
My question : my code works but is very very long, and I wonder I should use a array or something like that to make it shorter and more “beautiful” ans learn more " coding-proof skills to improve myself and learn more.
But I have a lot of variables, conditions,things to do and I can’t figure out how to use these tiny tricks in this huge mess…
Do you have any ideas to start with ??
Thanks a lot
Best regards
Fred
// all rect switches variables
boolean clic11 = false;
boolean clic12 = false;
boolean clic13 = false;
boolean clic14 = false;
boolean clic15 = false;
boolean clic21 = false;
boolean clic22 = false;
boolean clic23 = false;
boolean clic24 = false;
boolean clic25 = false;
boolean clic31 = false;
boolean clic32 = false;
boolean clic33 = false;
boolean clic34 = false;
boolean clic35 = false;
boolean clic41 = false;
boolean clic42 = false;
boolean clic43 = false;
boolean clic44 = false;
boolean clic45 = false;
boolean clic51 = false;
boolean clic52 = false;
boolean clic53 = false;
boolean clic54 = false;
boolean clic55 = false;
boolean clic61 = false;
boolean clic62 = false;
boolean clic63 = false;
boolean clic64 = false;
boolean clic65 = false;
boolean clic71 = false;
boolean clic72 = false;
boolean clic73 = false;
boolean clic74 = false;
boolean clic75 = false;
boolean clic81 = false;
boolean clic82 = false;
boolean clic83 = false;
boolean clic84 = false;
boolean clic85 = false;
int offset = 25;
int side = 50;
void setup() {
size(500,500);
}
void draw () {
background(204);
fill(255);
//frame
for (int i = 1; i<=5;i++) {for (int j = 1 ; j<=8;j++) {rect(i*side,j*side,side,side);}}
//rect become black
if (clic11==true) {fill(0);rect(1*side,1*side,50,50);}
if (clic12==true) {fill(0);rect(2*side,1*side,50,50);}
if (clic13==true) {fill(0);rect(3*side,1*side,50,50);}
if (clic14==true) {fill(0);rect(4*side,1*side,50,50);}
if (clic15==true) {fill(0);rect(5*side,1*side,50,50);}
if (clic21==true) {fill(0);rect(1*side,2*side,50,50);}
if (clic22==true) {fill(0);rect(2*side,2*side,50,50);}
if (clic23==true) {fill(0);rect(3*side,2*side,50,50);}
if (clic24==true) {fill(0);rect(4*side,2*side,50,50);}
if (clic25==true) {fill(0);rect(5*side,2*side,50,50);}
if (clic31==true) {fill(0);rect(1*side,3*side,50,50);}
if (clic32==true) {fill(0);rect(2*side,3*side,50,50);}
if (clic33==true) {fill(0);rect(3*side,3*side,50,50);}
if (clic34==true) {fill(0);rect(4*side,3*side,50,50);}
if (clic35==true) {fill(0);rect(5*side,3*side,50,50);}
if (clic41==true) {fill(0);rect(1*side,4*side,50,50);}
if (clic42==true) {fill(0);rect(2*side,4*side,50,50);}
if (clic43==true) {fill(0);rect(3*side,4*side,50,50);}
if (clic44==true) {fill(0);rect(4*side,4*side,50,50);}
if (clic45==true) {fill(0);rect(5*side,4*side,50,50);}
if (clic51==true) {fill(0);rect(1*side,5*side,50,50);}
if (clic52==true) {fill(0);rect(2*side,5*side,50,50);}
if (clic53==true) {fill(0);rect(3*side,5*side,50,50);}
if (clic54==true) {fill(0);rect(4*side,5*side,50,50);}
if (clic55==true) {fill(0);rect(5*side,5*side,50,50);}
if (clic61==true) {fill(0);rect(1*side,6*side,50,50);}
if (clic62==true) {fill(0);rect(2*side,6*side,50,50);}
if (clic63==true) {fill(0);rect(3*side,6*side,50,50);}
if (clic64==true) {fill(0);rect(4*side,6*side,50,50);}
if (clic65==true) {fill(0);rect(5*side,6*side,50,50);}
if (clic71==true) {fill(0);rect(1*side,7*side,50,50);}
if (clic72==true) {fill(0);rect(2*side,7*side,50,50);}
if (clic73==true) {fill(0);rect(3*side,7*side,50,50);}
if (clic74==true) {fill(0);rect(4*side,7*side,50,50);}
if (clic75==true) {fill(0);rect(5*side,7*side,50,50);}
if (clic81==true) {fill(0);rect(1*side,8*side,50,50);}
if (clic82==true) {fill(0);rect(2*side,8*side,50,50);}
if (clic83==true) {fill(0);rect(3*side,8*side,50,50);}
if (clic84==true) {fill(0);rect(4*side,8*side,50,50);}
if (clic85==true) {fill(0);rect(5*side,8*side,50,50);}
// convert boolean to 1 or 0 variables
int pos11 = clic11?1:0;int pos12 = clic12?1:0;int pos13 = clic13?1:0;int pos14 = clic14?1:0;int pos15 = clic15?1:0;
int pos21 = clic21?1:0;int pos22 = clic22?1:0;int pos23 = clic23?1:0;int pos24 = clic24?1:0;int pos25 = clic25?1:0;
int pos31 = clic31?1:0;int pos32 = clic32?1:0;int pos33 = clic33?1:0;int pos34 = clic34?1:0;int pos35 = clic35?1:0;
int pos41 = clic41?1:0;int pos42 = clic42?1:0;int pos43 = clic43?1:0;int pos44 = clic44?1:0;int pos45 = clic45?1:0;
int pos51 = clic51?1:0;int pos52 = clic52?1:0;int pos53 = clic53?1:0;int pos54 = clic54?1:0;int pos55 = clic55?1:0;
int pos61 = clic61?1:0;int pos62 = clic62?1:0;int pos63 = clic63?1:0;int pos64 = clic64?1:0;int pos65 = clic65?1:0;
int pos71 = clic71?1:0;int pos72 = clic72?1:0;int pos73 = clic73?1:0;int pos74 = clic74?1:0;int pos75 = clic75?1:0;
int pos81 = clic81?1:0;int pos82 = clic82?1:0;int pos83 = clic83?1:0;int pos84 = clic84?1:0;int pos85 = clic85?1:0;
// text binary code on the right side of the frame
textSize(20);fill(0);
text(pos11,325,80);text(pos12,325+1*offset,80);text(pos13,325+2*offset,80);text(pos14,325+3*offset,80);text(pos15,325+4*offset,80);
text(pos21,325,80+1*offset);text(pos22,325+1*offset,80+1*offset);text(pos23,325+2*offset,80+1*offset);text(pos24,325+3*offset,80+1*offset);text(pos25,325+4*offset,80+1*offset);
text(pos31,325,80+2*offset);text(pos32,325+1*offset,80+2*offset);text(pos33,325+2*offset,80+2*offset);text(pos34,325+3*offset,80+2*offset);text(pos35,325+4*offset,80+2*offset);
text(pos41,325,80+3*offset);text(pos42,325+1*offset,80+3*offset);text(pos43,325+2*offset,80+3*offset);text(pos44,325+3*offset,80+3*offset);text(pos45,325+4*offset,80+3*offset);
text(pos51,325,80+4*offset);text(pos52,325+1*offset,80+4*offset);text(pos53,325+2*offset,80+4*offset);text(pos54,325+3*offset,80+4*offset);text(pos55,325+4*offset,80+4*offset);
text(pos61,325,80+5*offset);text(pos62,325+1*offset,80+5*offset);text(pos63,325+2*offset,80+5*offset);text(pos64,325+3*offset,80+5*offset);text(pos65,325+4*offset,80+5*offset);
text(pos71,325,80+6*offset);text(pos72,325+1*offset,80+6*offset);text(pos73,325+2*offset,80+6*offset);text(pos74,325+3*offset,80+6*offset);text(pos75,325+4*offset,80+6*offset);
text(pos81,325,80+7*offset);text(pos82,325+1*offset,80+7*offset);text(pos83,325+2*offset,80+7*offset);text(pos84,325+3*offset,80+7*offset);text(pos85,325+4*offset,80+7*offset);
// create arduino code from the picture in the console
println(" ");
println("byte nom[8] = {");
println("0b"+pos11+pos12+pos13+pos14+pos15+",");
println("0b"+pos21+pos22+pos23+pos24+pos25+",");
println("0b"+pos31+pos32+pos33+pos34+pos35+",");
println("0b"+pos41+pos42+pos43+pos44+pos45+",");
println("0b"+pos51+pos52+pos53+pos54+pos55+",");
println("0b"+pos61+pos62+pos63+pos64+pos65+",");
println("0b"+pos71+pos72+pos73+pos74+pos75+",");
println("0b"+pos81+pos82+pos83+pos84+pos85);
println("};");
println(" ");
}
void mouseReleased() {
// locate rect and interact with + boolean switches
if (dist(mouseX,mouseY,1*side+offset,1*side+offset)<=offset) {clic11 =! clic11;}
if (dist(mouseX,mouseY,2*side+offset,1*side+offset)<=offset) {clic12 =! clic12;}
if (dist(mouseX,mouseY,3*side+offset,1*side+offset)<=offset) {clic13 =! clic13;}
if (dist(mouseX,mouseY,4*side+offset,1*side+offset)<=offset) {clic14 =! clic14;}
if (dist(mouseX,mouseY,5*side+offset,1*side+offset)<=offset) {clic15 =! clic15;}
if (dist(mouseX,mouseY,1*side+offset,2*side+offset)<=offset) {clic21 =! clic21;}
if (dist(mouseX,mouseY,2*side+offset,2*side+offset)<=offset) {clic22 =! clic22;}
if (dist(mouseX,mouseY,3*side+offset,2*side+offset)<=offset) {clic23 =! clic23;}
if (dist(mouseX,mouseY,4*side+offset,2*side+offset)<=offset) {clic24 =! clic24;}
if (dist(mouseX,mouseY,5*side+offset,2*side+offset)<=offset) {clic25 =! clic25;}
if (dist(mouseX,mouseY,1*side+offset,3*side+offset)<=offset) {clic31 =! clic31;}
if (dist(mouseX,mouseY,2*side+offset,3*side+offset)<=offset) {clic32 =! clic32;}
if (dist(mouseX,mouseY,3*side+offset,3*side+offset)<=offset) {clic33 =! clic33;}
if (dist(mouseX,mouseY,4*side+offset,3*side+offset)<=offset) {clic34 =! clic34;}
if (dist(mouseX,mouseY,5*side+offset,3*side+offset)<=offset) {clic35 =! clic35;}
if (dist(mouseX,mouseY,1*side+offset,4*side+offset)<=offset) {clic41 =! clic41;}
if (dist(mouseX,mouseY,2*side+offset,4*side+offset)<=offset) {clic42 =! clic42;}
if (dist(mouseX,mouseY,3*side+offset,4*side+offset)<=offset) {clic43 =! clic43;}
if (dist(mouseX,mouseY,4*side+offset,4*side+offset)<=offset) {clic44 =! clic44;}
if (dist(mouseX,mouseY,5*side+offset,4*side+offset)<=offset) {clic45 =! clic45;}
if (dist(mouseX,mouseY,1*side+offset,5*side+offset)<=offset) {clic51 =! clic51;}
if (dist(mouseX,mouseY,2*side+offset,5*side+offset)<=offset) {clic52 =! clic52;}
if (dist(mouseX,mouseY,3*side+offset,5*side+offset)<=offset) {clic53 =! clic53;}
if (dist(mouseX,mouseY,4*side+offset,5*side+offset)<=offset) {clic54 =! clic54;}
if (dist(mouseX,mouseY,5*side+offset,5*side+offset)<=offset) {clic55 =! clic55;}
if (dist(mouseX,mouseY,1*side+offset,6*side+offset)<=offset) {clic61 =! clic61;}
if (dist(mouseX,mouseY,2*side+offset,6*side+offset)<=offset) {clic62 =! clic62;}
if (dist(mouseX,mouseY,3*side+offset,6*side+offset)<=offset) {clic63 =! clic63;}
if (dist(mouseX,mouseY,4*side+offset,6*side+offset)<=offset) {clic64 =! clic64;}
if (dist(mouseX,mouseY,5*side+offset,6*side+offset)<=offset) {clic65 =! clic65;}
if (dist(mouseX,mouseY,1*side+offset,7*side+offset)<=offset) {clic71 =! clic71;}
if (dist(mouseX,mouseY,2*side+offset,7*side+offset)<=offset) {clic72 =! clic72;}
if (dist(mouseX,mouseY,3*side+offset,7*side+offset)<=offset) {clic73 =! clic73;}
if (dist(mouseX,mouseY,4*side+offset,7*side+offset)<=offset) {clic74 =! clic74;}
if (dist(mouseX,mouseY,5*side+offset,7*side+offset)<=offset) {clic75 =! clic75;}
if (dist(mouseX,mouseY,1*side+offset,8*side+offset)<=offset) {clic81 =! clic81;}
if (dist(mouseX,mouseY,2*side+offset,8*side+offset)<=offset) {clic82 =! clic82;}
if (dist(mouseX,mouseY,3*side+offset,8*side+offset)<=offset) {clic83 =! clic83;}
if (dist(mouseX,mouseY,4*side+offset,8*side+offset)<=offset) {clic84 =! clic84;}
if (dist(mouseX,mouseY,5*side+offset,8*side+offset)<=offset) {clic85 =! clic85;}
}