Funciones

Hemos visto ya de pasada las dos funciones o rutinas principales de un sketch: setup() y loop(). Ambas se declaran de tipo void, lo cual significa que no retornan ningún valor. Arduino simplifica muchas tareas proporcionando funciones que permiten controlar entradas y salidas tanto analógicas como digitales, funciones matemáticas y trigonométricas, temporales, etc.

Tu puedes también escribir tus propias funciones cuando necesites programar tareas o cálculos repetitivos que vas a usar varias veces en tu sketch (o en futuros sketches). La primera cosa que tienes que hacer es declarar el tipo de función (int, si retorna un entero, float si es un número en coma flotante, etc…).

Te recomendamos dar a la función un nombre que tenga que ver con lo que hace para que te resulte fácil recordarla (o identificarla cuando la veas escrita en uno de tus sketches). A continuación del nombre de la función (y sin dejar espacios) van los parámetros de la función entre paréntesis. Y ya sólo queda lo más difícil: escribir el código de la función entre llaves:

type functionName(parameters){
    // el código de la function va aqui.
} 

Recuerda que si la función no retorna un valor hay que definirla como de tipo “void” (vacio). Para devolver el control a sketch la función usa la instrucción return seguida por el nombre de la variable que se quiere devolver y luego un punto y coma (;).

La siguiente rutina muestra una función que convierte una temperatura expresada en grados  Fahrenheit a Celsius (también conocidos como grados centígrados):

float calcTemp(float fahrenheit){
float celsius;
celsius = (fahrenheit – 32)/ 1.8;
return celsius;
} 

La function se declara de tipo float y se le pasa un parámetro (también de tipo float) que representa los grados Fahrenheit medidos por un sensor. Dentro de la función se declara la variable Celsius (de tipo float) que va a contener la medida de la temperatura pasada en Fahrenheit tras su conversión a Celsius (imagino que la fórmula de conversión te resulta familiar). La instrucción return devuelve el valor en Celsius de la temperatura pasada en Farenheit. Esta función puede ser usada como parte de un sistema para registrar las temperaturas captadas por un sensor a lo largo del tiempo.

Como puedes ver, el uso de funciones es la manera ideal de simplificar tu código y abordar tareas repetitivas.