Publicado el Deja un comentario

58. Funciones

¿Qué es una función?

Una función es un recurso de programación informática común a casi todos los lenguajes de programación. En nuestro caso Wiring. Una función es simplemente un bloque de código con un nombre, preparado para ser usado en diferentes ocasiones en el sketch, lo que nos permite reutilizarlo y ahorrar mucho trabajo y líneas de código.

Las funciones se implementan igual que en el lenguaje C y C++, se pueden definir las funciones en cualquier lugar del sketch, pero lo elegante es hacerlo al final del código como si fueran un apéndice de este y podemos invocarlas desde el principio.

Fíjate bien en el sketch de la diapositiva, en esta ocasión hemos definido una nueva función con el nombre de cuenta_botones(), fíjate que la hemos colocado antes del loop() de nuestro sketch por motivos puramente estéticos.

int cuenta_botones() {
  int contador=0;
  for (int i=10; i<<14; i++) {
    if (digitalRead(i) == HIGH) contador++;
  }
  return contador;
}

La función necesariamente tiene un nombre que se da en la priera línea, si no tiene argumentos de entrada se dejan los dos paréntesis «()» sin argumentos dentro y quedan vacíos, y siempre antes del nombre se indica el tipo de valor que devuelve la función, en nuestro caso un valor int (entero).

Después se abre una llave «{» y se escriben todas las líneas de código que se desee con total libertad, y para indicar el final de la función se cierra con una llave cerrada «}«.

¿Qué hace la función cuenta_botones()?

Para entender el sketch y la función cuenta_botones() necesitas entender el esquema electrónico que se ha implementado, puedes verlo a la izquierda de la diapositiva. Puedes ver que se han conectado siete pulsadores a sus correspondientes entradas digitales de Arduino, así que aparentemente en nuestro proyecto sólo tenemos siete sensores.

Te lo he puesto muy fácil, te habrás percatado de que lo que hace es contar cuántos pulsadores apretamos a la vez con nuestros dedos y el resultado será un valor entre 0 y 7 que se va a almacenar en cada pasada del loop() en la variable botones_pulsados.

¿Y qué hacemos con ese resultado?

Pues utilizarlo en el loop(), fíjate que sólo tiene dos sentencias, la primera recoge el resultado de ejecutar la función cuenta_botones() y lo guarda en una variable que se declara en la misma línea llamada botones_pulsados, y en la siguiente sentencia la mostramos por la pantalla gracias a la función Serial.println():

void loop {
    int botones_pulsados = cuenta_botones();
    Serial.println (botones_pulsados);
}

¡Deja un comentario! Todas las críticas son bienvenidas.