Implementar matriz 4x4

Buenas de nuevo, estoy realizando un proyecto para mi acuario en el cual voy a controlar temperatura de agua, iluminación etc, la cuestión es que quiero cambiar el sp de la temperatura del agua y la hora de encendido de la iluminación con una matriz de 4x4, he probado un ejemplo de matriz y me funciona bien pero no se como implementarla a mi proyecto, gracias de antemano.
Este es el código que he utilizado para probar la matriz

#include<Keypad.h>
const byte filas = 4;
const byte columnas = 4;
byte pinesF[filas] = {53,51,49,47};
byte pinesC[columnas] = {45,43,41,39};
 
char teclas[filas][columnas] = {
 
 {'1','2','3','A'},
 {'4','5','6','B'},
 {'7','8','9','C'},
 {'*','0','#','D'}
};
 
Keypad teclado = Keypad(makeKeymap(teclas), pinesF, pinesC, filas, columnas);
 
char tecla;
 
void setup() {
 Serial.begin(9600);
}
void loop() {
 tecla = teclado.getKey();
 if (tecla != 0)
 Serial.print(tecla);
}

Y aquí adjunto mi proyecto de acuario

#include <OneWire.h>   //SE INCLUYE LA LIBRERIA ONEWIRE PARA LA SONDA DS18B20
#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h>
#include <LiquidCrystal.h>    //SE DECLARA LA LIBRERIA PARA EL LCD
#include <DallasTemperature.h>   //SE DECLARA LA LIBRERIA PARA LA SONDA DS18B20

#define ONE_WIRE_BUS 13  //SE DEFINE EL PIN DATA DE LA SONDA DS18B20

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

float tempC = 0;


LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int iluminacion = 22;                      // ILUMINACION HACE REFERENCIA AL PIN Nº22 (OUTPUT)
int calentador = 6;                        // CALENTADOR HACE REFERENCIA AL PIN Nº6   (OUTPUT)
void setup() {
  
  pinMode(iluminacion, OUTPUT);            // SE DECLARA EL PIN Nº22 COMO SALIDA
  pinMode(calentador, OUTPUT);             // SE DECLARA EL PIN Nº6 COMO SALIDA
  sensors.begin();                         //SE INICIALIZA EL SENSOR
  lcd.begin(16,2);                         // SE DEFINE LOS CARACTERES Y LINEAS DE LA PANTALLA
  lcd.clear();                             // SE LIMPIA LA PANTALLA
  setSyncProvider(RTC.get);                // Vamos a usar el RTC
  setSyncInterval(86400000);               // Sincronizo una vez cada 24 horas
  digitalWrite(iluminacion, LOW);          // APAGAR ILUMINACIÓN AL ARRANCAR ARDUINO
  
}

void loop() {
  sensors.requestTemperatures();
  tempC = sensors.getTempCByIndex(0);
  
  delay(1000);
  lcd.setCursor(2,1);
  lcd.print(tempC);
  lcd.setCursor (8,1);
  lcd.print("GRADOS");
    if (tempC <= 20.0) {
    digitalWrite(calentador,LOW); // se enciende la resistencia
    lcd.setCursor(0,0);
    lcd.print("CALENTANDO AGUA ");
}
if (tempC >= 21.0){
    digitalWrite(calentador,HIGH); //se apaga la resistencia
    lcd.setCursor(0,0);
    lcd.print(" TEMPERATURA OK ");
}
  
   if (tempC <= 19.0){
     lcd.setCursor (0,0);
     lcd.print("FALLO CALENTADOR");
     
   }
  
  if (esHora()) {       //SI ES LA HORA ACTIVAMOS ILUMINACION
   
     digitalWrite(iluminacion, LOW); 
     delay(1000);
      } else {
    
    digitalWrite(iluminacion , HIGH);    //SI NO ES LA HORA APAGAMOS ILUMINACION
    delay(1000);          
  }
}

boolean  esHora() {
  
  byte horaInicio = 18;            //DEFINIR HORA-MINUTO DE INICIO Y HORA-MINUTO APAGADO
  byte minutoInicio = 45;
  byte horaFin = 18;
  byte minutoFin = 46;

 

  int momentoInicio = (horaInicio * 60) + minutoInicio;             //SE PASA TODO A MINUTOS PARA HACER LAS COMPARACIONES
  int momentoFin = (horaFin * 60) + minutoFin;
  int momentoAhora = (hour() * 60) + minute();

  //Esto es que si hemos pasado o estamos en el momento de inicio , pero antes del momento del fin…
  if ((momentoInicio <= momentoAhora) && (momentoAhora < momentoFin)) {
    //devolver "Cierto" en esta función "esHora"
    return true;
  } else {
    //devolver "Falso" en esta función "esHora"
    return false;
  }
}