Hola
Esta vez necesito ayuda para realizar de forma mas elegante lo que estoy haciendo rudimentario, me explico:
Tengo varias placas arduino para control domotico, a las que he colocado un shield casero de entradas y salidas que a su vez va a diferentes sitios (casa, garage, almacen) y por lo tanto las salidas y entradas cambian, es decir, si tengo un pin como salida que activa la lampara del salon, y otro que activa la lampara auxiliar del salon, estas salidas no existen cuando esa placa va al garage, alli solo activa la lampara principal, por lo que la salida de lampara auxiliar no existe.
En el caso del almacen o jardin, existen unas salidas para encender el riego que en la placa general no existen.
Por ejemplo, algo de codigo:
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire conectado en port 2 del arduino
#define ONE_WIRE_BUS 69
// Definimos una instancia de oneWire para comunicar con cualquier dispositivo oneWire
OneWire oneWire(ONE_WIRE_BUS);
// Pasamos la referencia a libreria Dallas Temperature.
DallasTemperature sensors(&oneWire);
// Pines del Display del Mega
LiquidCrystal lcd(62, 63, 64, 65, 66, 67);
// Pines Salidas de lamparas y valvulas
int SAL_LMPGral = 11; // Pin salida lampara general
int SAL_LMPAux1 = 12; // Pin salida lampara auxiliar
int SAL_Valv1 = 13; // Pin salida electrovalvula1
int SAL_Valv2 = 14; // Pin salida electrovalvula2
Normalmente, voy ampliando cada modulo y obviamente, corto y pego definiciones segun donde vaya el modulo, ya que en algunos casos la lampara 1 va conectada en el 11 pero en otros uso ese pin para otra funcion.
La pregunta:
¿como podria de forma elegante crear un fichero o algo del estilo del include, que tuviera las definiciones de cada pin y digamos, parametros de configuracion, manteniendo el programa original en pde y añadiendo algo parecido a la carga de librerias en la cabecera del pde?
De forma que tendria un programa general y segun esos ficheros solo usaria una parte u otra del programa, lo que permitiria que solo modificara el programa general y añadiria a la compilacion solo el fichero de configuracion segun donde vaya instalado, algo asi como esto:
include "fichero_de_configuracion_para_la casa"
o en otro caso esto:
include "fichero_de_configuracion_para_jardin"
No se si me he explicado bien la idea, caso contrario amplio.
A ver si podeis darme una orientacion...
Gracias y un saludo
PD: Añado a ver si queda mas clara la idea
En el caso de sensores de alarma, por ejemplo, en el que va en casa, tiene tres entradas, o sea, puerta 1 puerta 2 puerta 3, pero en el garage solo existe una puerta 1,
Con esa forma de configuracion, el programa general chequearia todas las puertas salvo que en el fichero de configuracion le hubiera dicho que solo existe una, con lo cual obviaria puerta 2 y puerta 3, solo estaria checkeando puerta 1
PD2: He editado este mensaje para aclarar que no es una sola unidad, que son varios arduinos.