II)
Implementación (I):
LED:
int loopPeriod = 500; // Led flashing: 500 ms ON; 500 mS OFF
bool loopPerFlag = 1; // Aux. flag LCD (variable)
long lastLoopPer = 0; // Aux. LCD (variable)
Aparato “A”:
int APeriod = 5000; // El aparato “A” tiene que funcionar durante 5 segundos y parar
bool APerFlag = 1; // Aux. flag (variable)
long lastAPer = 0; // Aux. buffer (variable)
Aparato “B”:
int BPeriod = 50000; // El aparato “B” tiene que funcionar durante 50 segundos y parar
bool BPerFlag = 1; // Aux. flag (variable)
long lastBPer = 0; // Aux. buffer (variable)
(NOTA: lo suyo sería utilizar la técnica de “programación orientada a objetos” –OOP- en cuyo caso estas variables se asignarían a cada uno de los objetos –“aparatoA”, “aparatoB”, …- al ser “construidos”. Vamos a dejarlo ahí y utilizaremos la técnica convencional –“procedural”- para este ejemplo)
Se necesitarán, además, las siguientes variables:
int evento = 0; // Para saber lo que ha pedido el usuario y/o si ha terminado alguna temporización.
int transicion; // Lo que hay que hacer ya.
Int eventosTransiciones [0, 1, 2, 3, 4, 5, 2, 4]; // transición que corresponde a cada evento.
(NOTA1: los términos –y uso que se hace aquí- “evento” y “transición” corresponden con los homólogos en un FEA).
(NOTA2: según cada uno programe, estas variables se podrían “retornar” –return- por las correspondientes funciones en lugar de ser definidas como “globales”; ya que no se trata de un master sobre programación, sino de que se aprenda a utilizar el “timer”, tampoco nos vamos a poner estupendos con ello).
Todas estas variables se definen en la inicialización. En esta también irán los nombres de los pines –i.e.: int ledPin = 13;-.