void loop(){
//tft.fillScreen();
tft.setCursor(35, 20);
tft.setTextColor(ORANGE);
tft.setTextSize(2);
tft.println("CUBIC");
tft.setTextSize(1);
tft.setCursor(93, 13);
tft.println("3");
startup();
delay(4000);
menu();
}
void menu(){
tft.fillScreen();
if(seleccion == 1){
tft.setTextColor(GREEN,BLACK);
tft.setCursor(5,7);
tft.println("Mts PISO");
tft.setTextColor(YELLOW,BLACK);
tft.setCursor(26,4);
tft.println("2");
}
if(seleccion == 2){
tft.setTextColor(GREEN,BLACK);
tft.setCursor(5,7);
tft.println("Mts MURO");
tft.setTextColor(YELLOW,BLACK);
tft.setCursor(26,4);
tft.println("2");
}
if(seleccion == 3){
tft.setTextColor(GREEN,BLACK);
tft.setCursor(5,7);
tft.println("Mts");
tft.setTextColor(YELLOW,BLACK);
tft.setCursor(26,4);
tft.println("3");
}
if(seleccion == 4){
tft.setTextColor(GREEN,BLACK);
tft.setCursor(5,7);
tft.println("Lectura lineal");
}
tft.drawLine(0, 15, 125, 15, ORANGE);
tft.setCursor(40,20);
tft.setTextColor(ORANGE);
tft.setTextSize(2);
tft.println("MENU");
tft.setTextSize(1);
tft.setTextColor(WHITE);
tft.setCursor(5,45);
tft.println("<> Mts PISO");
tft.setCursor(44,40);
tft.println("2");
tft.setCursor(5,60);
tft.println("<> Mts MURO");
tft.setCursor(44,55);
tft.println("2");
tft.setCursor(5,75);
tft.println("<> Mts");
tft.setCursor(44,70);
tft.println("3");
tft.setCursor(5,90);
tft.println("<> Lectura lineal");
tft.setTextColor(ORANGE);
tft.setCursor(15,110);
tft.println("Apagar");
tft.setCursor(90,110);
tft.println("Info");
menu_select = 1;
select();
}
void select(){
while(menu_select == 1){
static int pos = 0;
encoder.tick();
int newPos = encoder.getPosition();
if (pos > newPos){ // Sentencia para generar desplazamiento en pantalla
SELECT = SELECT-1 ;
if (SELECT < 1){
SELECT = 1;
}
MENU1();
Serial.print(SELECT);
Serial.print(" Menu arriba ");
}
if (pos < newPos){ // Sentencia para generar desplazamiento en pantalla
SELECT = SELECT+1 ;
if (SELECT > 6){
SELECT = 6;
}
MENU1();
Serial.print(SELECT);
Serial.print(" Menu abajo ");
}
if (pos != newPos) {
pos = newPos;
}
if(SELECT == 1){
digitalWrite(Led_Al, LOW);
LED_PISO();
}
if(digitalRead(Push) == LOW && SELECT == 1){ // seleciona Mts2 Piso
seleccion = SELECT;
menu_select = 0;
menu_square = 1;
SELECT = 0;
M2();
}
if(SELECT == 2){
digitalWrite(Led_L, LOW);
LED_MURO();
}
if(digitalRead(Push) == LOW && SELECT == 2){ // selecciona Mts2 Muro
seleccion = SELECT;
menu_select = 0;
menu_square = 1;
SELECT = 0;
M2();
}
if(SELECT == 3){
LED_CUBICO();
}
if(digitalRead(Push) == LOW && SELECT == 3){ // selecciona Mts3
seleccion = SELECT;
menu_select = 0;
menu_cubic = 1;
SELECT = 0;
M3();
}
if(SELECT == 4){
digitalWrite(Led_L, LOW);
digitalWrite(Led_An,LOW);
LINEAL();
}
if(digitalRead(Push) == LOW && SELECT == 4){ // selecciona Mts lineal
seleccion = SELECT;
menu_select = 0;
menu_cubic = 0;
menu_lineal = 1;
SELECT = 0;
Lineal();
}
if(SELECT ==5 || SELECT ==6){
digitalWrite(Led_L, LOW);
digitalWrite(Led_Al,LOW);
digitalWrite(Led_An,LOW);
}
if(digitalRead(Push) == LOW && SELECT == 5){
seleccion = SELECT;
menu_select = 0;
menu_cubic = 0;
menu_lineal = 0;
menu_apaga = 1;
SELECT = 0;
OFF();
}
if(digitalRead(Push) == LOW && SELECT == 6){
aboutA = 1;
about();
}
}
}
void MENU1(){
switch (SELECT){
case 1 :
tft.setTextColor(GREEN);
tft.setCursor(5,45);
tft.println("<> Mts PISO");
tft.setCursor(44,40);
tft.println("2");
tft.setTextColor(WHITE);
tft.setCursor(5,60);
tft.println("<> Mts MURO");
tft.setCursor(44,55);
tft.println("2");
break;
case 2 :
tft.setTextColor(WHITE);
tft.setCursor(5,45);
tft.println("<> Mts PISO");
tft.setCursor(44,40);
tft.println("2");
tft.setTextColor(GREEN);
tft.setCursor(5,60);
tft.println("<> Mts MURO");
tft.setCursor(44,55);
tft.println("2");
tft.setTextColor(WHITE);
tft.setCursor(5,75);
tft.println("<> Mts");
tft.setCursor(44,70);
tft.println("3");
break;
case 3 :
tft.setTextColor(WHITE);
tft.setCursor(5,60);
tft.println("<> Mts MURO");
tft.setCursor(44,55);
tft.println("2");
tft.setTextColor(GREEN);
tft.setCursor(5,75);
tft.println("<> Mts");
tft.setCursor(44,70);
tft.println("3");
tft.setTextColor(WHITE);
tft.setCursor(5,90);
tft.println("<> Lectura lineal");
break;
case 4 :
tft.setTextColor(WHITE);
tft.setCursor(5,75);
tft.println("<> Mts");
tft.setCursor(44,70);
tft.println("3");
tft.setTextColor(GREEN);
tft.setCursor(5,90);
tft.println("<> Lectura lineal");
tft.setTextColor(ORANGE);
tft.setCursor(15,110);
tft.println("Apagar");
break;
case 5 :
tft.setTextColor(WHITE);
tft.setCursor(5,90);
tft.println("<> Lectura lineal");
tft.setTextColor(RED);
tft.setCursor(15,110);
tft.println("Apagar");
tft.setTextColor(ORANGE);
tft.setCursor(90,110);
tft.println("Info");
break;
case 6 :
tft.setTextColor(ORANGE);
tft.setCursor(15,110);
tft.println("Apagar");
tft.setTextColor(RED);
tft.setCursor(90,110);
tft.println("Info");
break;
}
}
void M2(){
tft.fillScreen();
if(seleccion == 1){ // Crea título en zona superior izquierda de pantalla con MTS 2 PISO
tft.setTextColor(YELLOW,BLACK);
tft.setCursor(5,7);
tft.println("Mts PISO");
tft.setCursor(26,4);
tft.println("2");
tft.setTextColor(WHITE);
tft.setCursor(15,110);
tft.println("medir");
Draw_piso();
}
if(seleccion == 2){ // Crea título en zona superior izquierda de pantalla con MTS 2 MURO
tft.setTextColor(YELLOW,BLACK);
tft.setCursor(5,7);
tft.println("Mts MURO");
tft.setCursor(26,4);
tft.println("2");
tft.setTextColor(WHITE);
tft.setCursor(15,110);
tft.println("medir");
Draw_muro();
}
tft.setTextSize(1);
tft.setTextColor(ORANGE);
tft.setCursor(90,110);
tft.println("salir");
while (menu_square == 1){
static int pos = 0;
encoder.tick();
int newPos = encoder.getPosition();
if(seleccion == 1 && SELECT == 1){
LED_PISO();
}
if(seleccion == 2 && SELECT == 1){
LED_MURO();
}
if(SELECT == 2){
digitalWrite(Led_L, LOW);
digitalWrite(Led_An,LOW);
digitalWrite(Led_Al,LOW);
}
if (pos > newPos){ // Sentencia para generar desplazamiento en pantalla dentro Medir M2
SELECT = SELECT-1 ;
if (SELECT <= 1){
SELECT = 1;
}
M_area_select();
}
if (pos < newPos){ // Sentencia para generar desplazamiento en pantalla
SELECT = SELECT+1 ;
if (SELECT >= 2){
SELECT = 2;
}
M_area_select();
}
if (pos != newPos) {
pos = newPos;
}
if(digitalRead(Push) == LOW && SELECT == 1 && seleccion ==1){ // Si Mt2 PISO seleccionado + opcion medir + prsiona boton ---> Medir Mt2 PISO
digitalWrite(Led_L, LOW);
digitalWrite(Led_An,LOW);
digitalWrite(Led_Al,LOW);
tft.fillRect(5,80,33,15,BLACK); // Borra en pantalla datos X
tft.fillRect(90,80,30,15,BLACK); // Borra en pantalla datos Y
SELECT = 0;
delay(700);
digitalWrite(Trigger_Ancho, LOW);
delayMicroseconds(2);
digitalWrite(Trigger_Ancho, HIGH); // Sets the trigPin on HIGH state for 10 micro seconds
delayMicroseconds(10);
digitalWrite(Trigger_Ancho, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds
duration_An = pulseIn(Echo_Ancho, HIGH);
distance_An= (duration_An*0.034/2)+10; // Calculating the distance
tft.setCursor(20,80);
tft.println(distance_An,0); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
digitalWrite(Led_An, HIGH); // Deja encendido el LED An cuando ya se ha tomado la lectura de dicho sensor
delay(700);
digitalWrite(Trigger_Largo, LOW);
delayMicroseconds(2);
digitalWrite(Trigger_Largo, HIGH);// Sets the trigPin on HIGH state for 10 micro seconds
delayMicroseconds(10);
digitalWrite(Trigger_Largo, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds
duration_L = pulseIn(Echo_Largo, HIGH);
distance_L= (duration_L*0.034/2)+10; // Calculating the distance
tft.setCursor(90,80);
tft.println(distance_L,0); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
digitalWrite(Led_L , HIGH); // Deja encendido el LED L cuando ya se ha tomado la lectura de dicho sensor
SELECT = 0; // Una vez tomada la medida cuadrada, se da la instrucción para que los led queden encendidos
tft.setTextColor(WHITE);
tft.setCursor(15,110);
tft.println("medir");
mtscuadrado = (((distance_L/100)*(distance_An/100)));
tft.setTextColor(WHITE,BLACK);
tft.setCursor(70,7);
tft.println(mtscuadrado,2); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
Serial.println(mtscuadrado,2); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
duration_L = 0;
duration_An = 0;
distance_L = 0;
distance_An = 0;
}
if(digitalRead(Push) == LOW && SELECT == 1 && seleccion ==2){ // Si Mt2 MURO seleccionado + opcion medir + prsiona boton ---> Medir Mt2 MURO
digitalWrite(Led_L, LOW);
digitalWrite(Led_An,LOW);
digitalWrite(Led_Al,LOW);
tft.fillRect(5,80,33,15,BLACK); // Borra en pantalla datos X
tft.fillRect(50,18,30,15,BLACK); // Borra en pantalla datos Z
SELECT = 0;
delay(700);
digitalWrite(Trigger_Ancho, LOW);
delayMicroseconds(2);
digitalWrite(Trigger_Ancho, HIGH);// Sets the trigPin on HIGH state for 10 micro seconds
delayMicroseconds(10);
digitalWrite(Trigger_Ancho, LOW);// Reads the echoPin, returns the sound wave travel time in microseconds
duration_An = pulseIn(Echo_Ancho, HIGH);
distance_An= (duration_An*0.034/2)+10;// Calculating the distance
tft.setCursor(20,80);
tft.println(distance_An,0); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
digitalWrite(Led_An , HIGH); // Deja encendido el LED L cuando ya se ha tomado la lectura de dicho sensor
delay(700);
digitalWrite(Trigger_Alto, LOW);
delayMicroseconds(2);
digitalWrite(Trigger_Alto, HIGH);// Sets the trigPin on HIGH state for 10 micro seconds
delayMicroseconds(10);
digitalWrite(Trigger_Alto, LOW);// Reads the echoPin, returns the sound wave travel time in microseconds
duration_Al = pulseIn(Echo_Alto, HIGH);
distance_Al= (duration_Al*0.034/2)+10;// Calculating the distance
tft.setCursor(52,22);
tft.println(distance_Al,0); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
digitalWrite(Led_Al , HIGH); // Deja encendido el LED L cuando ya se ha tomado la lectura de dicho sensor
SELECT = 0; // Una vez tomada la medida cuadrada, se da la instrucción para que los led queden encendidos
tft.setTextColor(WHITE);
tft.setCursor(15,110);
tft.println("medir");
mtscuadrado = (((distance_Al/100)*(distance_An/100)));
tft.setTextColor(WHITE,BLACK);
tft.setCursor(70,7);
tft.println(mtscuadrado,2); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
Serial.println(mtscuadrado,2); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
duration_Al = 0;
duration_An = 0;
distance_Al = 0;
distance_An = 0;
}
if(digitalRead(Push) == LOW && SELECT == 2){
menu_square = 0;
menu_select = 1;
SELECT =0;
menu();
}
}
}
void M_area_select(){
switch (SELECT){
case 1 :
tft.setTextColor(GREEN);
tft.setCursor(15,110);
tft.println("medir");
tft.setTextColor(ORANGE);
tft.setCursor(90,110);
tft.println("salir");
break;
case 2 :
tft.setTextColor(WHITE);
tft.setCursor(15,110);
tft.println("medir");
tft.setTextColor(RED);
tft.setCursor(90,110);
tft.println("salir");
break;
}
}
void apaga(){
switch (SELECT){
case 1 :
tft.setTextColor(GREEN);
tft.setCursor(40,55);
tft.println("<> Si");
tft.setTextColor(WHITE);
tft.setCursor(40,80);
tft.println("<> No");
break;
case 2 :
tft.setTextColor(WHITE);
tft.setCursor(40,55);
tft.println("<> Si");
tft.setTextColor(GREEN);
tft.setCursor(40,80);
tft.println("<> No");
break;
}
}
void cuadrado(){
tft.drawLine(45, 70, 70, 45, WHITE);
tft.drawLine(85, 70, 110, 45, WHITE);
tft.drawLine(45, 70, 85, 70, WHITE);
tft.drawLine(70, 45, 110, 45, WHITE);
}
void cubo(){
tft.setTextColor(WHITE);
tft.setCursor(58,35);
tft.println("Z");
tft.setCursor(20,100);
tft.println("X");
tft.setCursor(96,100);
tft.println("Y");
tft.drawLine(60,45,60,80,GREEN);
tft.drawLine(55,50,60,45,GREEN);
tft.drawLine(65,50,60,45,GREEN);
tft.drawLine(60,80,90,100,RED);
tft.drawLine(86,90,90,100,RED);
tft.drawLine(81,100,90,100,RED);
tft.drawLine(60,80,30,100,WHITE);
tft.drawLine(35,90,30,100,WHITE);
tft.drawLine(39,100,30,100,WHITE);
}
void M3(){
tft.fillScreen();
cubo();
if(seleccion == 3){ // Crea título en zona superior izquierda de pantalla con MTS 2 PISO
tft.setTextColor(YELLOW,BLACK);
tft.setCursor(5,7);
tft.println("Mts ");
tft.setCursor(26,4);
tft.println("3");
tft.setTextColor(WHITE);
tft.setCursor(15,110);
tft.println("medir");
}
while (menu_cubic == 1){
static int pos = 0;
encoder.tick();
int newPos = encoder.getPosition();
if(seleccion == 3 && SELECT == 1){
LED_CUBICO();
}
if(SELECT == 2){
digitalWrite(Led_L, LOW);
digitalWrite(Led_An,LOW);
digitalWrite(Led_Al,LOW);
}
if (pos > newPos){ // Sentencia para generar desplazamiento en pantalla dentro Medir M2
SELECT = SELECT-1 ;
if (SELECT <= 1){
SELECT = 1;
}
M_area_select();
}
if (pos < newPos){ // Sentencia para generar desplazamiento en pantalla
SELECT = SELECT+1 ;
if (SELECT >= 2){
SELECT = 2;
}
M_area_select();
}
if (pos != newPos) {
pos = newPos;
}
if(digitalRead(Push) == LOW && SELECT == 1 && seleccion ==3){ // Si Mt2 PISO seleccionado + opcion medir + prsiona boton ---> Medir Mt2 PISO
digitalWrite(Led_L, LOW);
digitalWrite(Led_An,LOW);
digitalWrite(Led_Al,LOW);
tft.fillRect(50,18,30,15,BLACK); // Borra en pantalla datos Z
tft.fillRect(5,80,33,15,BLACK); // Borra en pantalla datos X
tft.fillRect(90,80,30,15,BLACK); // Borra en pantalla datos Y
SELECT = 0;
delay(700);
digitalWrite(Trigger_Ancho, LOW);
delayMicroseconds(2);
digitalWrite(Trigger_Ancho, HIGH);// Sets the trigPin on HIGH state for 10 micro seconds
delayMicroseconds(10);
digitalWrite(Trigger_Ancho, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds
duration_An = pulseIn(Echo_Ancho, HIGH);
distance_An= (duration_An*0.034/2)+10; // Calculating the distance
tft.setCursor(15,80);
tft.println(distance_An,0); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
digitalWrite(Led_An , HIGH); // Deja encendido el LED L cuando ya se ha tomado la lectura de dicho sensor
delay(700);
digitalWrite(Trigger_Largo, LOW);
delayMicroseconds(2);
digitalWrite(Trigger_Largo, HIGH); // Sets the trigPin on HIGH state for 10 micro seconds
delayMicroseconds(10);
digitalWrite(Trigger_Largo, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds
duration_L = pulseIn(Echo_Largo, HIGH);
distance_L= (duration_L*0.034/2)+10; // Calculating the distance
tft.setCursor(90,80);
tft.println(distance_L,0); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
digitalWrite(Led_L, HIGH); // Deja encendido el LED An cuando ya se ha tomado la lectura de dicho sensor
delay(700);
digitalWrite(Trigger_Alto, LOW);
delayMicroseconds(2);
digitalWrite(Trigger_Alto, HIGH); // Sets the trigPin on HIGH state for 10 micro seconds
delayMicroseconds(10);
digitalWrite(Trigger_Alto, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds
duration_Al = pulseIn(Echo_Alto, HIGH);
distance_Al= (duration_Al*0.034/2)+10; // Calculating the distance
tft.setCursor(53,25);
tft.println(distance_Al,0); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
digitalWrite(Led_Al, HIGH); // Deja encendido el LED An cuando ya se ha tomado la lectura de dicho sensor
SELECT = 0; // Una vez tomada la medida cuadrada, se da la instrucción para que los led queden encendidos
tft.setTextColor(WHITE);
tft.setCursor(15,110);
tft.println("medir");
mtscubico = ((distance_L/100)*(distance_An/100)*(distance_Al/100));
tft.setTextColor(WHITE,BLACK);
tft.setCursor(70,7);
tft.println(mtscubico,2); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
Serial.println(mtscubico,2); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
duration_L = 0;
duration_An = 0;
duration_Al = 0;
distance_L = 0;
distance_An = 0;
distance_Al = 0;
}
if(digitalRead(Push) == LOW && SELECT == 2){
menu_cubic = 0;
menu_select = 1;
SELECT =0;
menu();
}
}
}
void Lineal(){
tft.fillScreen();
Draw_lineal();
if(seleccion == 4){ // Crea título en zona superior izquierda de pantalla con MTS 2 PISO
tft.setTextColor(YELLOW,BLACK);
tft.setCursor(5,7);
tft.println("Mts Lineal");
tft.setTextColor(WHITE);
tft.setCursor(15,110);
tft.println("medir");
}
while (menu_lineal == 1){
static int pos = 0;
encoder.tick();
int newPos = encoder.getPosition();
if(seleccion == 4 && SELECT == 1){
LINEAL();
}
if(SELECT == 2){
digitalWrite(Led_L, LOW);
digitalWrite(Led_An,LOW);
digitalWrite(Led_Al,LOW);
}
if (pos > newPos){ // Sentencia para generar desplazamiento en pantalla dentro Medir M2
SELECT = SELECT-1 ;
if (SELECT <= 1){
SELECT = 1;
}
M_area_select();
}
if (pos < newPos){ // Sentencia para generar desplazamiento en pantalla
SELECT = SELECT+1 ;
if (SELECT >= 2){
SELECT = 2;
}
M_area_select();
}
if (pos != newPos) {
pos = newPos;
}
if(digitalRead(Push) == LOW && SELECT == 1 && seleccion ==4){ // Si Mt2 PISO seleccionado + opcion medir + prsiona boton ---> Medir Mt2 PISO
digitalWrite(Led_L, LOW);
digitalWrite(Led_An,LOW);
digitalWrite(Led_Al,LOW);
tft.fillRect(50,18,25,15,BLACK);
SELECT = 0;
delay(700);
digitalWrite(Trigger_Alto, LOW);
delayMicroseconds(2);
digitalWrite(Trigger_Alto, HIGH); // Sets the trigPin on HIGH state for 10 micro seconds
delayMicroseconds(10);
digitalWrite(Trigger_Alto, LOW); // Reads the echoPin, returns the sound wave travel time in microseconds
duration_Al = pulseIn(Echo_Alto, HIGH);
distance_Al= ((duration_Al*0.034/2)+10); // Calculating the distance
tft.setCursor(53,25);
tft.println(distance_Al,0); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
digitalWrite(Led_Al, HIGH); // Deja encendido el LED An cuando ya se ha tomado la lectura de dicho sensor
SELECT = 0; // Una vez tomada la medida cuadrada, se da la instrucción para que los led queden encendidos
tft.setTextColor(WHITE);
tft.setCursor(15,110);
tft.println("medir");
lineal = (distance_Al/100);
tft.setTextColor(WHITE,BLACK);
tft.setCursor(70,7);
tft.println(lineal,2); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
Serial.println(lineal,2); // la coma " , " indica numero de decimales que nos muestra la medida tomada en el LCD
duration_L = 0;
duration_An = 0;
duration_Al = 0;
distance_L = 0;
distance_An = 0;
distance_Al = 0;
}
if(digitalRead(Push) == LOW && SELECT == 2){
menu_cubic = 0;
menu_select = 0;
menu_lineal = 0;
SELECT =0;
menu();
}
}
}
void about(){
tft.fillScreen();
tft.setCursor(35, 20);
tft.setTextColor(GREEN);
tft.setTextSize(2);
tft.println("CUBIC");
tft.setTextSize(1);
tft.setCursor(93, 13);
tft.println("3");
tft.setTextSize(1);
tft.setCursor(15, 60);
tft.println("Desarrollado por");
tft.setTextSize(1);
tft.setCursor(20, 80);
tft.println("RODRIGO MEJIAS");
while(aboutA == 1){
if(digitalRead(Push) == LOW){
aboutA = 0;
SELECT = 0;
menu();
menu_select = 1;
}
}
}
void LED_PISO(){
unsigned long currentMillis = millis(); // Se toma el tiempo actual
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(Led_An, ledState);
digitalWrite(Led_L, ledState);
}
}
void LED_MURO(){
unsigned long currentMillis = millis(); // Se toma el tiempo actual
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(Led_An, ledState);
digitalWrite(Led_Al, ledState);
}
}
void LED_CUBICO(){
unsigned long currentMillis = millis(); // Se toma el tiempo actual
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(Led_An, ledState);
digitalWrite(Led_Al, ledState);
digitalWrite(Led_L , ledState);
}
}
void LINEAL(){
unsigned long currentMillis = millis(); // Se toma el tiempo actual
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(Led_Al, ledState);
}
}
void startup(){
tft.drawLine(60,45,60,80,GREEN);
tft.drawLine(55,50,60,45,GREEN);
tft.drawLine(65,50,60,45,GREEN);
tft.drawLine(60,80,90,100,RED);
tft.drawLine(86,90,90,100,RED);
tft.drawLine(81,100,90,100,RED);
tft.drawLine(60,80,30,100,WHITE);
tft.drawLine(35,90,30,100,WHITE);
tft.drawLine(39,100,30,100,WHITE);
}
void Draw_lineal(){
tft.drawLine(60,45,60,80,GREEN);
tft.drawLine(55,50,60,45,GREEN);
tft.drawLine(65,50,60,45,GREEN);
}
void Draw_piso(){
tft.drawLine(60,80,90,100,RED);
tft.drawLine(86,90,90,100,RED);
tft.drawLine(81,100,90,100,RED);
tft.drawLine(60,80,30,100,WHITE);
tft.drawLine(35,90,30,100,WHITE);
tft.drawLine(39,100,30,100,WHITE);
// tft.setTextColor(WHITE);
tft.setCursor(20,100);
tft.println("X");
tft.setCursor(96,100);
tft.println("Y");
}
void Draw_muro(){
tft.drawLine(60,45,60,80,GREEN);
tft.drawLine(55,50,60,45,GREEN);
tft.drawLine(65,50,60,45,GREEN);
tft.drawLine(60,80,30,100,WHITE);
tft.drawLine(35,90,30,100,WHITE);
tft.drawLine(39,100,30,100,WHITE);
// tft.setTextColor(WHITE);
tft.setCursor(20,100);
tft.println("X");
tft.setCursor(58,35);
tft.println("Z");
}
void power(){
while(digitalRead(Push) == HIGH){
}
tft.begin();
digitalWrite(Backlight,HIGH);
}
void OFF(){
tft.fillScreen();
while (menu_apaga == 1){
static int pos = 0;
encoder.tick();
int newPos = encoder.getPosition();
if (pos > newPos){ // Sentencia para generar desplazamiento en pantalla dentro Medir M2
SELECT = SELECT-1 ;
if (SELECT <= 1){
SELECT = 1;
}
apaga();
}
if (pos < newPos){ // Sentencia para generar desplazamiento en pantalla
SELECT = SELECT+1 ;
if (SELECT >= 2){
SELECT = 2;
}
apaga();
}
if (pos != newPos) {
pos = newPos;
}
if(digitalRead(Push) == LOW && SELECT == 1){
delay(500);
menu_cubic = 0;
menu_select = 0;
menu_lineal = 0;
menu_apaga = 0;
SELECT =0;
digitalWrite(Backlight,LOW);
power();
}
if(digitalRead(Push) == LOW && SELECT == 2){
delay(500);
menu_cubic = 0;
menu_select = 0;
menu_lineal = 0;
menu_apaga = 0;
SELECT =0;
//digitalWrite(Backlight,LOW);
menu();
}
}
}