Controlador de acuario desde cero

Mi idea es la siguiente, llegar a manejar un acuario desde el inicio

Lo primero con lo que estoy es con la conexión de un arduino mega 2560 a una fuente de alimentación de 12v con un transformador a 5v, y una pantalla lcd 20x4 y una sonda de temperatura DS1820

He cargado el siguiente programa pero la pantalla se enciende y apaga, porque puede ser?, será algo de las librerías?

#include <OneWire.h> //Configurar bus onewhire de Dallas
#include <DallasTemperature.h>//El ternometro de Dallas DS1820
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4 ); // 0x27 es la direccion del LCD 16x2

//Pata por la que van a entrar los datos al Arduino
#define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

void setup()
{
lcd.init();
lcd.backlight(); //enciende la iluminacion
sensors.begin(); //Iniciamos la libreria del DS1820
}

void loop()
{

sensors.requestTemperatures(); //leemmos la temperatura del sensor.
lcd.setCursor(0, 0);
lcd.print("Temp. Acuario: ");
lcd.print(sensors.getTempCByIndex(0));
lcd.print(" *C");
delay(1000);
}

Sette:
la conexión de un arduino mega 2560 a una fuente de alimentación de 12v con un transformador a 5v, y una pantalla lcd 20x4 y una sonda de temperatura DS1820

Entiendo que estás utilizando dos fuentes una de 12 y una de 5 o estoy equivocada puedes adjuntar un diagrama de como tienes tus conexiones, si son dos fuentes estás compartiendo GND. Además si vas a empezar a añadir más cosas para el Acuario te recomiendo que estudies la fuencion de millis por qué cunado usas delay el código se detiene por lo que no hará ninguna cosa mas.

Ante todo como te dicen, explicar un poco más los componentes y el circuito.
¿Que tipo de acuario, marino, tropical?
¿Cuántos litros tiene el tanque?
¿Qué es lo que quieres hacer?

Entiendo que es laborioso explicar claramente todos los objetivos (a mí me pasa) pero debemos situarnos en el proyecto.

He automatizado completamente un acuario tropical plantado de 500 litros y si puedo te ayudaré, pero antes, lo dicho.

Un saludo.

me funciona cambie el pin 2 al 12 probado en arduino nano
pones: 0x27 es la direccion del LCD 16x2 es la misma direccion que de la 20x4

--TU pantalla es de 20x4 no tendra otra direccion
LiquidCrystal_I2C lcd(0x27,20,4 ); // 0x27 es la direccion del LCD 16x2

--me funciona con lcd.begin();
lcd.init();
--- no lo uso
lcd.backlight(); //enciende la iluminacion

lcd.setCursor(0, 0);
lcd.print("Temp. Acuario: ");
--- agregue otra linea
lcd.setCursor(0, 1);
lcd.print(sensors.getTempCByIndex(0));
---el simbolo de grados es \337
lcd.print(" \337C");

revisa aca puedes sacar ideas

https://todomarino.com/forum/foros/tutorial-controlador.294/