mi primer codigo

Buenas noches.
Hoy es un buen día para mi. He realizado mi primer proyecto y funciona, bueno a medias.
Estoy leyendo cuatro DS18B20 con una pantalla LCD 5v 2004A-V1 20x4 con puerto I2C y se encienden unos leds, también uso unos relés para comandar unos ventiladores con una determinada temperatura.
En la pantalla los primeros dígitos de las dos primeras líneas se apagan y encienden (no se quedan fijos) y la temperatura de dos de las líneas marca la temperatura de uno de los DS18B20. Sin embargo los cuatro DS18B20 funcionan perfectamente ya que los leds y relés funcionan correctamente y se apagan y encienden cuando les toca.
Os paso el código para ver si me podéis ayudar. Ya que yo soy incapaz de buscar el error.

#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensor (&oneWire);
LiquidCrystal_I2C lcd(0X27, 20, 4);
int led = 5;
int ventilador = 6;
float temperatura;
bool ventilador_activado = false;
int temperatura_limite = 24;
int led1 = 7;
int ventilador1 = 8;
float temperatura1;
bool ventilador1_activado = false;
int temperatura1_limite = 24;
int led2 = 9;
int ventilador2 = 10;
float temperatura2;
bool ventilador2_activado = false;
int temperatura2_limite = 24;
int led3 = 11;
int ventilador3 = 12;
float temperatura3;
bool ventilador3_activado = false;
int temperatura3_limite = 24;

void setup() {
 pinMode (ventilador, OUTPUT);
 pinMode (ventilador1, OUTPUT);
 pinMode (ventilador2, OUTPUT);
 pinMode (ventilador3, OUTPUT);
 pinMode (led, OUTPUT);
 pinMode (led1, OUTPUT);
 pinMode (led2, OUTPUT);
 pinMode (led3, OUTPUT);
 lcd.init();
 lcd.backlight();
}
void loop() {
sensor.requestTemperatures();
 temperatura = sensor.getTempCByIndex(0);
 float temp = sensor.getTempCByIndex(0);
 lcd.setCursor (1, 0 );
 lcd.print("EPSOLAR: ");
 lcd.print(temp);
 lcd.print("      ");
 
 temperatura1 = sensor.getTempCByIndex(1);
 float temp1 = sensor.getTempCByIndex(1);
 lcd.setCursor (1, 1 );
 lcd.print("VICTRON: ");
 lcd.print(temp1);
 lcd.print("      ");

 temperatura2 = sensor.getTempCByIndex(2);
 float temp2 = sensor.getTempCByIndex(2);
 lcd.setCursor (1, 2 );
 lcd.print("TENSION: ");
 lcd.print(temp2);
 lcd.print("       ");

 temperatura3 = sensor.getTempCByIndex(3);
 float temp3 = sensor.getTempCByIndex(3);
 lcd.setCursor (1, 3 );
 lcd.print("TV     : ");
 lcd.print(temp2);
 lcd.print("       ");
 
   if (temperatura > temperatura_limite) {
   digitalWrite(led, HIGH);
   digitalWrite(ventilador, LOW);
   ventilador_activado = true;

 } else {
   digitalWrite(led, LOW);
   digitalWrite(ventilador, HIGH);
   ventilador_activado = false;

 }

 if (temperatura1 > temperatura1_limite) {
    digitalWrite(led1, HIGH);
   digitalWrite(ventilador1, LOW);
   ventilador1_activado = true;

 } else {
   digitalWrite(led1, LOW);
   digitalWrite(ventilador1, HIGH);
   ventilador1_activado = false;

 }

 if (temperatura2 > temperatura2_limite) {
    digitalWrite(led2, HIGH);
   digitalWrite(ventilador2, LOW);
   ventilador2_activado = true;

 } else {
   digitalWrite(led2, LOW);
   digitalWrite(ventilador2, HIGH);
   ventilador2_activado = false;

 }

   if (temperatura3 > temperatura3_limite) {
   digitalWrite(led3, HIGH);
   digitalWrite(ventilador3, LOW);
   ventilador3_activado = true;

 } else {
   digitalWrite(led3, LOW);
   digitalWrite(ventilador3, HIGH);
   ventilador3_activado = false;

 }


}

Primero lee las normas del foro, segundo si el codigo es tuyo, ya que decis mi primer codigo, con todo lo que programaste sabrias entender los errores que según vos no podes buscar.

Hi,
El problema se debe a que cuando escribes lo blancos despues de la temp1 estas enviando mas caracteres de los que caben un una linea por lo tanto esto aparecen en la proxima linea. Remueve esa instrucion y se arregla el problema. Recuerda que debes siempre tener en cuenta cuantos caracteres caben en una linea. Aqui estas enviando mas de 20 characteres por linea.

Moderador
Edita tu post usando etiquetas de código.

Normas del foro

Buenos días.
Pido disculpas por haber entrado como un elefante en una cacharrería.
Nunca he dicho que el código fuese mío. Dije que era mi primer proyecto.
MUCHISIMAS GRACIAS a tauro0221 por haberme ayudado y abrirme los ojos, repito: GRACIAS.