Programación de un "modo de programación"

Hola que tal amigos, recién empiezo con el mundo de arduino, no me considero un experto pero tampoco un neófito en el tema, recién he migrado de pics a arduino por su facilidad en ciertos aspectos y la practicidad y funcionalidad de este mundo. Estoy con un pequeño proyecto usando un receptor 433mhz en arduino y unos mini relays (los hk23f-5v) que son una maravilla por su tamaño y el codigo que implemente me va muy bien pero se me ha presentado una duda, lo tengo funcionando con 2 controles rf de esos que se usan para abrir portones electricos, hace unas horas que un amigo me mostro una tarjeta de control de esas que vienen con 6 relays, trae varios pines, si cortocircuitas 2 de ellos entra en modo de borrado de controles, si cortocircuitas otros 2 pines entra en modo de programacion para anexar uno o mas controles y ahi me entro la duda de como poder hacer para integrar esa funcion en mi programa, como podria hacer para que a la hora de poner en corto unos pines pueda indicarle a mi programa de arduino que anexe la señal que va a leer a una lista de controles, asi podria anexar a mi proyecto controles sin necesidad de estar quemando el programa cada vez que quiera anexar un control, he buscado ejemplos en google pero la verdad no he encontrado nada parecido, espero me puedan ayudar, de antemano muchas gracias

En mi caso de la alarma lo que se me paso por la cabeza era crear una matriz con 4 columnas y hasta 2 filas para los controles, que al entrar en modo de programación se lean los códigos y con un ciclo for y se vaya rellenando en la matriz, luego que se lean grabarlos en EEPROM para en caso que se desconecte la alimentación queden guardados y al conectar de nuevo la alimentación esta ya no tengas que estar introduciendo otra vez los controles esto es teórico ya voy a ver si lo hago y te paso el código.

A ver. Todo se resume a primero tener un pin dedicado a Modo Programación o modo Run. O sea una entrada digital que puede estar a los efectos prácticos con un jumper y si el jumper esta conectado estas en modo programación y si no, estas en modo RUN.

Lo que tu pides es de nuevo destinar una serie de pines o entradas a lo mismo. Hacer tu propia codificación de que significan 2, 3 o N pines en 0 o 1 y tendras todos los modos posibles. Solo funcionaría para mi gusto si al arrancar el arduino energizándolo se encuentra primero con modo PROGRAMACION o sea PIN en 0 y luego pasaría a leer el estado de estos pienes dedicados a cambiar alguna forma de trabajo del código.

Para ello simplemente dedicaría por ejemplo: pin 2 como entrada. Si esta en HIGH o sea OPEN, es modo RUN y si esta en LOW con el Jumper a GND es modo PROGRAMACION.

pin 3,4,5 me darian 8 estados posibles desde 000 hasta 111

Los 3 definidos como INPUT_PULLUP (o sea, ni siquiera) uso una Resistencia en el PCB para usarlos como entrada.

Espero me entiendas.

Ahhh y desde ya, seguiría ademas la idea de Swift de guardar ciertos modos en EEPROM para consulta posterior.