Medidor de nivel con mega2560 y pantalla 20x4

les pido su ayuda para resolver un problema que tengo con la programacion de arduino mega 2560 y pantalla 20 x 4, "la pantalla se reinicia"

#include <LiquidCrystal_I2C.h>
#include "LedControl.h"
LiquidCrystal_I2C lcd(0x27,20,4);

LedControl lc=LedControl(12,11,10,1);

int num=0;
int Uni=0;
int Dec=0;
int Cen=0;

int lectura=0;
float tempC=0.0;

int latch=2; //indica pin de salida en el chip
int clockpin=4; //Cuando ay que leer los bit
int data=3; //Envio datos

int duty; //Ciclo Util de PWM

byte Displays[10]={
// gfedcba
0b0111111, // 0
0b0000110, // 1
0b1011011, // 2
0b1001111, // 3
0b1100110, // 4
0b1101101, // 5
0b1111101, // 6
0b0000111, // 7
0b1111111, // 8
0b1101111 // 9
};

void setup() {
pinMode(22, INPUT);
pinMode(23, INPUT);
pinMode(24, INPUT);
pinMode(25, INPUT);
pinMode(26, INPUT);
pinMode(27, INPUT);
pinMode(28, INPUT);
pinMode(29, INPUT);
pinMode(30, INPUT);
pinMode(31, INPUT);
pinMode(32, INPUT);
pinMode(33, INPUT);
pinMode(34, INPUT);
pinMode(35, INPUT);
pinMode(36, INPUT);
pinMode(37, INPUT);
pinMode(38, INPUT);
pinMode(39, INPUT);
pinMode(40, INPUT);
pinMode(41, INPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("BIENVENIDOS");
pinMode(latch,OUTPUT);
pinMode(clockpin,OUTPUT);
pinMode(data,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}

void loop() {
Sensor1();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Tanque Vacio ///////////////////////////////////////////////////
void Sensor1(){
if(digitalRead(22)==0){
duty=0;
num=0;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 5% /////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==0){
duty=12;
num=5;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 10% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==0){
duty=24;
num=10;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 15% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==0){
duty=36;
num=15;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 20% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==0){
duty=48;
num=20;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 25% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==0){
duty=60;
num=25;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 30% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==0){
duty=72;
num=30;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 35% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==0){
duty=84;
num=35;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 40% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==0){
duty=96;
num=40;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 45% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==0){
duty=108;
num=45;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 50% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==0){
duty=120;
num=50;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 55% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==1 && digitalRead(33)==0){
duty=132;
num=55;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 60% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==1 && digitalRead(33)==1
&& digitalRead(34)==0){
duty=144;
num=60;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 65% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==1 && digitalRead(33)==1
&& digitalRead(34)==1 && digitalRead(35)==0){
duty=156;
num=65;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 70% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==1 && digitalRead(33)==1
&& digitalRead(34)==1 && digitalRead(35)==1 && digitalRead(36)==0){
duty=168;
num=70;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 75% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==1 && digitalRead(33)==1
&& digitalRead(34)==1 && digitalRead(35)==1 && digitalRead(36)==1 && digitalRead(37)==0){
duty=180;
num=75;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 80% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==1 && digitalRead(33)==1
&& digitalRead(34)==1 && digitalRead(35)==1 && digitalRead(36)==1 && digitalRead(37)==1
&& digitalRead(38)==0){
duty=192;
num=80;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 85% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==1 && digitalRead(33)==1
&& digitalRead(34)==1 && digitalRead(35)==1 && digitalRead(36)==1 && digitalRead(37)==1
&& digitalRead(38)==1 && digitalRead(39)==0){
duty=204;
num=85;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 90% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==1 && digitalRead(33)==1
&& digitalRead(34)==1 && digitalRead(35)==1 && digitalRead(36)==1 && digitalRead(37)==1
&& digitalRead(38)==1 && digitalRead(39)==1 && digitalRead(40)==0){
duty=216;
num=90;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 95% ////////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==1 && digitalRead(33)==1
&& digitalRead(34)==1 && digitalRead(35)==1 && digitalRead(36)==1 && digitalRead(37)==1
&& digitalRead(38)==1 && digitalRead(39)==1 && digitalRead(40)==1 && digitalRead(41)==0){
duty=228;
num=95;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Sensor1 100% ///////////////////////////////////////////////////
if(digitalRead(22)==1 && digitalRead(23)==1 && digitalRead(24)==1 && digitalRead(25)==1
&& digitalRead(26)==1 && digitalRead(27)==1 && digitalRead(28)==1 && digitalRead(29)==1
&& digitalRead(30)==1 && digitalRead(31)==1 && digitalRead(32)==1 && digitalRead(33)==1
&& digitalRead(34)==1 && digitalRead(35)==1 && digitalRead(36)==1 && digitalRead(37)==1
&& digitalRead(38)==1 && digitalRead(39)==1 && digitalRead(40)==1 && digitalRead(41)==1){
duty=255;
num=100;
delay(200);
Muestra();
}
////////////////////////////////////////////////////////////////////////////////////////////
Sensor1();
}
////////////////////////////////////////////////////////////////////////////////////////////
void Muestra(){
if(num==0){
lcd.setCursor(0,1);
lcd.print("Tanque Vacio");
lectura = analogRead(0);
tempC = (lectura * (500.0 / 1023.0));
lcd.setCursor(0,3);
lcd.print(tempC);
lcd.print(" Grados");
Cen = num/100;
Dec = num/10;
Uni = num%10;
digitalWrite(latch, LOW);
shiftOut(data, clockpin, MSBFIRST,Displays[Uni]);
shiftOut(data, clockpin, MSBFIRST,Displays[Dec]);
shiftOut(data, clockpin, MSBFIRST,Displays[Cen]);
digitalWrite(latch, HIGH);
analogWrite( 6, duty ); // actualizar ciclo de trabajo
analogWrite( 7, duty ); // actualizar ciclo de trabajo
Sensor1();
}
lcd.setCursor(0,1);
lcd.print("Nivel");
lcd.print(" ");
lcd.print(num);
lcd.print(" ");
lectura = analogRead(0);
tempC = (lectura * (500.0 / 1023.0));
lcd.setCursor(0,3);
lcd.print(tempC);
lcd.print(" Grados");
Cen = num/100;
Dec = num/10;
Uni = num%10;
digitalWrite(latch, LOW);
shiftOut(data, clockpin, MSBFIRST,Displays[Uni]);
shiftOut(data, clockpin, MSBFIRST,Displays[Dec]);
shiftOut(data, clockpin, MSBFIRST,Displays[Cen]);
digitalWrite(latch, HIGH);
analogWrite( 6, duty ); // actualizar ciclo de trabajo
analogWrite( 7, duty ); // actualizar ciclo de trabajo
Sensor1();
}

Moderador:
Por favor, lee las Normas del foro y edita tu código usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>


Tu código se bloquea porque hace una llamada recursiva infinita de la que nunca sale dejando al micro sin memoria.

En la declaración de Sensor1 al final del código, la vuelves a llamar.

#include <LiquidCrystal_I2C.h>
#include "LedControl.h"
LiquidCrystal_I2C lcd(0x27, 20, 4);

LedControl lc = LedControl(12, 11, 10, 1);

int num = 0;
int Uni = 0;
int Dec = 0;
int Cen = 0;

int lectura = 0;
float tempC = 0.0;

int latch = 2; //indica pin de salida en el chip
int clockpin = 4; //Cuando ay que leer los bit
int data = 3; //Envio datos

int duty; //Ciclo Util de PWM

byte Displays[10] = {
  // gfedcba
  0b0111111, // 0
  0b0000110, // 1
  0b1011011, // 2
  0b1001111, // 3
  0b1100110, // 4
  0b1101101, // 5
  0b1111101, // 6
  0b0000111, // 7
  0b1111111, // 8
  0b1101111 // 9
};

void setup() {
  pinMode(22, INPUT);
  pinMode(23, INPUT);
  pinMode(24, INPUT);
  pinMode(25, INPUT);
  pinMode(26, INPUT);
  pinMode(27, INPUT);
  pinMode(28, INPUT);
  pinMode(29, INPUT);
  pinMode(30, INPUT);
  pinMode(31, INPUT);
  pinMode(32, INPUT);
  pinMode(33, INPUT);
  pinMode(34, INPUT);
  pinMode(35, INPUT);
  pinMode(36, INPUT);
  pinMode(37, INPUT);
  pinMode(38, INPUT);
  pinMode(39, INPUT);
  pinMode(40, INPUT);
  pinMode(41, INPUT);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("BIENVENIDOS");
  pinMode(latch, OUTPUT);
  pinMode(clockpin, OUTPUT);
  pinMode(data, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
}

void loop() {
  Sensor1();
}
////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////// Tanque Vacio ///////////////////////////////////////////////////
void Sensor1() {
  if (digitalRead(22) == 0) {
    duty = 0;
    num = 0;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 5% /////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 0) {
    duty = 12;
    num = 5;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 10% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 0) {
    duty = 24;
    num = 10;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 15% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 0) {
    duty = 36;
    num = 15;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 20% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 0) {
    duty = 48;
    num = 20;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 25% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 0) {
    duty = 60;
    num = 25;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 30% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 0) {
    duty = 72;
    num = 30;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 35% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 0) {
    duty = 84;
    num = 35;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 40% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 0) {
    duty = 96;
    num = 40;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 45% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 0) {
    duty = 108;
    num = 45;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 50% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 0) {
    duty = 120;
    num = 50;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 55% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 1 && digitalRead(33) == 0) {
    duty = 132;
    num = 55;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 60% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 1 && digitalRead(33) == 1
      && digitalRead(34) == 0) {
    duty = 144;
    num = 60;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 65% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 1 && digitalRead(33) == 1
      && digitalRead(34) == 1 && digitalRead(35) == 0) {
    duty = 156;
    num = 65;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 70% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 1 && digitalRead(33) == 1
      && digitalRead(34) == 1 && digitalRead(35) == 1 && digitalRead(36) == 0) {
    duty = 168;
    num = 70;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 75% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 1 && digitalRead(33) == 1
      && digitalRead(34) == 1 && digitalRead(35) == 1 && digitalRead(36) == 1 && digitalRead(37) == 0) {
    duty = 180;
    num = 75;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 80% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 1 && digitalRead(33) == 1
      && digitalRead(34) == 1 && digitalRead(35) == 1 && digitalRead(36) == 1 && digitalRead(37) == 1
      && digitalRead(38) == 0) {
    duty = 192;
    num = 80;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 85% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 1 && digitalRead(33) == 1
      && digitalRead(34) == 1 && digitalRead(35) == 1 && digitalRead(36) == 1 && digitalRead(37) == 1
      && digitalRead(38) == 1 && digitalRead(39) == 0) {
    duty = 204;
    num = 85;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 90% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 1 && digitalRead(33) == 1
      && digitalRead(34) == 1 && digitalRead(35) == 1 && digitalRead(36) == 1 && digitalRead(37) == 1
      && digitalRead(38) == 1 && digitalRead(39) == 1 && digitalRead(40) == 0) {
    duty = 216;
    num = 90;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 95% ////////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 1 && digitalRead(33) == 1
      && digitalRead(34) == 1 && digitalRead(35) == 1 && digitalRead(36) == 1 && digitalRead(37) == 1
      && digitalRead(38) == 1 && digitalRead(39) == 1 && digitalRead(40) == 1 && digitalRead(41) == 0) {
    duty = 228;
    num = 95;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  /////////////////////////// Sensor1 100% ///////////////////////////////////////////////////
  if (digitalRead(22) == 1 && digitalRead(23) == 1 && digitalRead(24) == 1 && digitalRead(25) == 1
      && digitalRead(26) == 1 && digitalRead(27) == 1 && digitalRead(28) == 1 && digitalRead(29) == 1
      && digitalRead(30) == 1 && digitalRead(31) == 1 && digitalRead(32) == 1 && digitalRead(33) == 1
      && digitalRead(34) == 1 && digitalRead(35) == 1 && digitalRead(36) == 1 && digitalRead(37) == 1
      && digitalRead(38) == 1 && digitalRead(39) == 1 && digitalRead(40) == 1 && digitalRead(41) == 1) {
    duty = 255;
    num = 100;
    delay(200);
    Muestra();
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
  Sensor1(); // <-- POR QUE ESTÁ AQUI????
}
////////////////////////////////////////////////////////////////////////////////////////////
void Muestra() {
  if (num == 0) {
    lcd.setCursor(0, 1);
    lcd.print("Tanque Vacio");
    lectura = analogRead(0);
    tempC = (lectura * (500.0 / 1023.0));
    lcd.setCursor(0, 3);
    lcd.print(tempC);
    lcd.print(" Grados");
    Cen = num / 100;
    Dec = num / 10;
    Uni = num % 10;
    digitalWrite(latch, LOW);
    shiftOut(data, clockpin, MSBFIRST, Displays[Uni]);
    shiftOut(data, clockpin, MSBFIRST, Displays[Dec]);
    shiftOut(data, clockpin, MSBFIRST, Displays[Cen]);
    digitalWrite(latch, HIGH);
    analogWrite( 6, duty ); // actualizar ciclo de trabajo
    analogWrite( 7, duty ); // actualizar ciclo de trabajo
    Sensor1();
  }
  lcd.setCursor(0, 1);
  lcd.print("Nivel");
  lcd.print(" ");
  lcd.print(num);
  lcd.print(" ");
  lectura = analogRead(0);
  tempC = (lectura * (500.0 / 1023.0));
  lcd.setCursor(0, 3);
  lcd.print(tempC);
  lcd.print(" Grados");
  Cen = num / 100;
  Dec = num / 10;
  Uni = num % 10;
  digitalWrite(latch, LOW);
  shiftOut(data, clockpin, MSBFIRST, Displays[Uni]);
  shiftOut(data, clockpin, MSBFIRST, Displays[Dec]);
  shiftOut(data, clockpin, MSBFIRST, Displays[Cen]);
  digitalWrite(latch, HIGH);
  analogWrite( 6, duty ); // actualizar ciclo de trabajo
  analogWrite( 7, duty ); // actualizar ciclo de trabajo
  Sensor1();
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.