DEFINICIÓN DE FUNCIONES
Como ya dijimos en ocasiones anteriores, las funciones son recursos del lenguaje C que nos permiten ejecutar una o varias acciones.
Hay funciones ya definidas en el entorno de desarrollo, tales como digitalWrite, o delay.
Pero también es posible definir nuestras propias funciones, que realicen acciones definidas por nosotros mismos. En este apartado veremos cómo se definen esas funciones.
Por ejemplo, podemos definir una función que se denomine parpadeo y realice la intermitencia de un pin de salida. Puede recibir como parámetro el pin que se quiere gestionar. Podemos definirla de la siguiente manera:
void parpadeo( int pin_a_parpadear)
{
digitalWrite (pin_a_parpadear,1);
delay(500);
digitalWrite (pin_a_parpadear,0);
delay(500);
} // fin de la DEFINICIÓN de la función parpadeo
Como ves, para definir una función utilizaremos la siguiente sintaxis:
- la palabra clave void o int (indica si la función devolverá o no un valor )
- el nombre de la función
- la declaración de argumentos que necesite. Van entre paréntesis.
- Posteriormente un bloque entre llaves que indique la funcionalidad que se quiere (normalmente mediante llamadas a otras funciones)
El esqueleto de la definición de la función parpadeo sería el que sigue
void parpadeo( int pin_a_parpadear)
{
} // fin de la DEFINICIÓN de la función parpadeo
Este esqueleto estaría incompleto si en el bloque interior no se especifican las fucniones que representan las acciones a ejecutar por la función parpadeo. Esto se hace normalmente llamando a otras funciones. Por eso, la definición completa es la pusimos anteriormente:
void parpadeo( int pin_a_parpadear)
{
digitalWrite (pin_a_parpadear,1);
delay(500);
digitalWrite (pin_a_parpadear,0);
delay(500);
} // fin de la DEFINICIÓN de la función parpadeo
Para ejecutar este parpadeo habrá que realizar una LLAMADA a la función parpadeo. La llamada a una función siempre se hace dentro de otra función. Nosotros llamaremos a esta función parpeadeo dentro de la función loop.
void loop()
{
parpadeo(13);
}
En resumen, el micro llama a loop, loop llama a parpadeo y parpadeo llama a analogWrite. En C las funciones se llaman unas a otras.
Es posible definir el comportamiento de una función con una palabra clave diferente a void. Esto hará que la función pueda devolver un determinado resultado. La función digitalRead que veremos más adelante es un ejemplo de una función que devuelve un valor. Es posible también que una función devuelva más de un valor, pero eso se hace de otra manera, haciendo una llamada especial a los parámetros de la misma.
Como has visto, el contenido de una función está entre llaves. Lo mismo pasa en C con el contenido de diversas estructuras de control. En general, al contenido de un programa en C que está entre llaves lo denominaremos
bloque