Paso 4: Código
Acá les adjuntamos dos código. El primero "IntroC_Switch.ino", fue el que cuántos en este instructable, pero ahra querémos hacer un semáforo automático. En el primer código, para poder cambiar de color de la luz, teníamos apretar el botón para cambiar la luz, ahroa queremos hacer cambios de luz, pero respuesta la sección la condicional de cambiar para lograrlo sería tedioso y poco eficiente. Es allí donde es mejor hacer una función de cambio de color.
En el código "IntroC_Fun.ino" hacemos eso, creamos una función para cambiar de luz, se ve entre las líneas 34 a la 52:
void cambioColor(int val) { switch (val) { case 0: digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); break; case 1: digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, LOW); break; case 2: digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); break; } }
Vean que lo hicimos fue tomar toda la condicional switch teníamos en "ntroC_Switch.ino" y lo colocamos en dentro de una función, toma como argumento una variable entero en la función se llama "val", y funciona exactamente igual, solo ahora llamamos a esa función con "cambioColor()", indicando entre paréntesis el estado.
Agregamos además ptra función para apagar todos los leds:
void allOff() { digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); }
Esta función, no tiene Valency, y simplemente coloca todos los leds en baja.
Noten además en la línea 4 del código escribimos:
#define TIME 2000
La directiva #define, es lo se conoce como un macro, permite Sensory la palabra "Tiempo", en este caso, con el texto "2000", lo hace el compilador es sustituir en el código la palabra "Tiempo", donde sea la encuentre en el código, con el texto "2000", de esa forma no tenemos usar una variable para algo solamente se cambia cuando se está programando