C/C++ En Arduino: Funciones (4 / 5 steg)
Steg 4: Código
ACÁ les adjuntamos dos código. El primero "IntroC_Switch.ino", fue el que utilizamos en este instructable, pero ahra querémos hacer un semáforo automatico. En el primer código, para poder cambiar la luz de färg, teníamos que apretar el botón para cambiar la luz, ahroa queremos hacer cambios de luz, pero repetir la sección la condicional de växla para lograrlo sería tedioso y poco byggnad. ES allí donde es mejor hacer una función de cambio de färg.
En el código "IntroC_Fun.ino" hacemos eso, creamos una función para cambiar de luz, que se ve entre las líneas 34 a 52:
void cambioColor(int val) {
Växla (val) {
fall 0:
digitalWrite (2, hög).
digitalWrite (3, låg).
digitalWrite (4, låg).
bryta;
fall 1:
digitalWrite (2, låg).
digitalWrite (3, hög).
digitalWrite (4, låg).
bryta;
fall 2:
digitalWrite (2, låg).
digitalWrite (3, låg).
digitalWrite (4, hög).
bryta;
}
}
Vean que lo que hicimos fue tomar toda la condicional växla que teníamos en "ntroC_Switch.ino" y lo colocamos sv dentro de una función, que toma como argumento una variabel entero que en la función se llama "val", y funciona exactamente igual, solo que ahora llamamos en esa función con "cambioColor()", indicando entre paréntesis el estado.
Agregamos además ptra función para apagar todos los lysdioder:
void allOff() {
digitalWrite (2, låg).
digitalWrite (3, låg).
digitalWrite (4, låg).
}
ESTA función, ingen tiene argumentos, y simplemente coloca todos los lysdioder sv låg.
Noten además que en la línea 4 del código escribimos:
#define tid 2000
La directiva #define, es lo que se conoce como un makro, que permite identificar la palabra "TIME", en este caso, con el texto "2000", lo que hace el compilador es sustituir en el código la palabra "TIME", donde havet que la encuentre en el código, con el texto "2000", de ens forma ingen tenemos que usar una variabel para algo que solamente se Terese cuando se está programando