Aprendiendo Arduino. Día 5. – Estructura básica de un programa de Arduino.
CURSO DE ARDUINO DESDE CERO – ESTRUCTURA BÁSICA DE UN PROGRAMA DE ARDUINO
Bienvenidxs a un nuevo día del Curso de Arduino desde cero, donde vas a poder aprender este maravilloso lenguaje de programación de una forma fácil y diverdida.
Ya vamos por el día 5 de nuestro curso de Arduino desde cero paso a paso y hoy vamos a conocer cómo es la estructura básica de un programa de Arduino para empezar a entender cómo elaborar proyectos y poder empezar a cacharrear con nuestro dispositivo.
Si todavía no has visto el resto de post del Curso de Arduino, te dejo una lista de todo lo que hemos aprendido hasta hoy.
- Aprendiendo Arduino. Día 1-. ¿Qué es Arduino y para qué sirve?
- Aprendiendo Arduino. Día 2-. Tipos de placas y Shield.
- Aprendiendo Arduino. Día 3 -. Super Started Kit.
- Aprendiendo Arduino. Día 4 -. Instalacion IDE y cómo conectar Arduino por primera vez.
Hasta hoy hemos aprendido qué es Arduino, cuáles son los tipos de placas y shields que podemos encontrar, un mogollón de componentes con los que vamos a hacer miles y miles de proyectos y cómo instalar nuestro Arduino por primera vez. Pero, ¿cómo realizo un programa? Aprende con este curso de Arduino.
Para realizar cualquier tipo de proyecto en Arduino es necesario utilizar código, con el que vamos a programar qué queremos que hagan los componentes que vamos a conectar a nuestra placa.
Esto quiere decir, que es necesario que conozcamos una serie de comandos básicos y cómo se programan en nuestro IDE. ¿Qué es lo primero que vamos a ver entonces?
- Estructura básica de un programa de Arduino.
- Función setup ()
- Función loop ()
- Funciones en Arduino
- Paréntesis y llaves en Arduino
- Punto y coma ; en programación
- Bloque de comentarios
- Línea simple de comentarios
Como vamos a empezar poco a poco y desde cero, vamos a comenzar por el principio, por la estructura de un programa para elaborar un proyecto.
ESTRUCTURA DE UN PROGRAMA
La estructura de un programa en el lenguaje de programación de Arduino va a estar compuesta por dos partes muy simples que van a contener las instrucciones y estamentos necesarios para dar inteligencia a nuestro dispositivo.
void setup() {
estamentos;
}
void loop() {
estamentos;
}
La parte de setup () se va a encargar de recoger toda la configuración de la placa la parte correspondiente a loop () va a contener las instrucciones del programa que se van a ejecutar de forma cíclica. Loop significa bucle y de ahí el nombre de esta segunda parte.
Esta es la estructura fundamental de cualquier programa de Arduino y ambas funciones son necesarias para que el programa trabaje.
Vamos a ver un poco más detenidamente cómo funcionan estas partes y qué necesitan para funcionar.
Función setup ()
La función setup () es la función de configuración. Se invoca una sola vez para iniciar los modos de trabajo y tiene que contener la declaración de las variables que se van a utilizar en el programa.
Esta función debe incluirse en todos los programas de Arduino aunque no tenga declaraciones de variables que ejecutar.
void setup {
pinMode (pin, OUTPUT); //configura el ‘pin’ como salida
}
Función loop ()
La función loop () es la función de blucle, que contiene el código que va a ejecutar el programa. Esta función es el núcleo de absolutamente todos los programas de Arduino y es la que realiza la mayor parte del trabajo para que funcione un proyecto.
Esta función lo que hace realmente es, como su propio nombre indica, ejecutar de forma cíclica todas las instrucciones que contenga, posibilitando que el programa responda de forma continua a los eventos que se estén produciendo en la tarjeta.
Un ejemplo de una función loop básica sería la siguiente:
void loop() {
digitalWrite(pin, HIGH); // pone en uno (on, 5v) el ´pin´
delay(1000); // espera un segundo (1000 ms)
digitalWrite(pin, LOW); // pone en cero (off, 0v.) el ´pin´
delay(1000);
}
Antes de continuar y dado que no dejamos de hablar de funciones, vamos a entender qué es una función en Arduino.
Funciones de Arduino
Una función es un bloque de código que contienen un conjunto de estamentos que van a ser ejecutados en el programa. Cada función va a ser nombrada y así podrá ejecutarse cada vez que la nombremos sin necesidad de volver a repetir el código. Esto facilita y reduce el tamaño del programa, ya que evitamos que sea necesario duplicar el código para realizar tareas repetitivas.
Es necesario declarar las funciones asociadas a un tipo de valor «type», que es el que devolverá la función.
type nombreFunción (parámetros)
{
estamentos;
}
Por ejemplo, se utilizará el tipo de valor «int» cuando la función devuelva un dato numérico tipo entero.
En el caso de que la función no devuelva ningún valor, entonces se debe colocar delante la palabra «void», que significa función vacía, seguida del nombre de la función y entre paréntesis los parámetros necesarios (en el caso de que los necesite) para que se ejecute.
Un ejemplo de llamada a una función sería:
int delayVal()
{
int v; // crea una variable temporal ‘v’
v= analogRead(pot); // lee el valor del potenciómetro
v /= 4; // convierte 0-1023 a 0-255
return v; // devuelve el valor final
}
El ejemplo anterior es una función que devuelve un número entero. Se utiliza delayVal () para conseguir un valor de retraso en un programa que lee una variable analógica de un potenciómetro que se conecta en una de las entradas del Arduino.
Para ello, se declara la variable temporal «v», que va a recoger un valor comprendido entre 0 y 1023 leído desde el potenciómetro. El valor obtenido se ajusta entre el rango de 0-255 dividiéndolo entre 4. Finalmente devuelve el valor entero final v y retornaría al programa principal.
Paréntesis y llaves en Arduino
Los paréntesis en Arduino sirven para definir un parámetro o un conjunto de parámetros necesarios para ejecutar una función. Cuando las funciones no necesiten parámetros de entrada para ejecutarse, los paréntesis estarán vacíos.
Siempre que se ponga un paréntesis de apertura «(» debe ir seguido de un paréntesis de cierre «)» de lo contrario el programa generará errores.
Las llaves sirven para definir el principio y el final de un bloque de instrucciones y se utilizan en los bloques de programación. De la misma forma que los paréntesis, una llave de apertura “{“ siempre debe ir seguida de una llave de cierre “}” o el programa dará errores.
Para no volvernos locos y comprobar si una llave o paréntesis de apertura tiene la correspondiente llave o paréntesis de cierre, el entorno de programación de Arduino incluye una herramienta que comprueba el total de llaves.
Para comprobar si una llave de apertura tiene llave de cierre solo hay que hacer click en el punto de inserción de una llave abierta «{» y de forma automática se marcará la correspondiente llave de cierre «}» de dicho bloque.
Punto y coma ; en programación
Para separar las diferentes instrucciones en el lenguaje de programación de Arduino (y prácticamente en cualquier tipo de lenguaje de programación) se utiliza al final de línea el punto y coma «;».
Este elemento se utiliza para separar, por ejemplo, instrucciones de tipo bucle como el tipo «for» que veremos más adelante en este curso.
Hay que poner siempre al final de una línea el punto y coma, ya que olvidarse de ponerla se va a traducir en un error típico de código y no compilará. Cada vez que se produzca un error de difícil detección lo primero que hay que comprobar que todas las instrucciones tengan al final de línea un punto y coma, ya que a veces el texto de error puede ser obvio y se referirá a este error común, pero otras veces no.
int x = 13; // declara la variable ‘x’ como tipo entero de valor 13
Bloque de comentarios /* … */
Los bloques de comentarios, también llamados multi-línea de comentarios, son áreas del proyecto que son ignorados por el programa cuando se ejecuta. Estos pueden ser textos explicativos, como descripciones y comentarios que ayudan a comprender el programa o incluso bloques de código que no queremos que el programa ejecute.
Los bloques de comentarios tienen una apertura que debe indicarse poniendo delante /* y terminan con un cierre */ al final. Pueden abarcar varías líneas pero nunca se debe olvidar cerrar el bloque de comentario.
/* esto es un bloque de comentario
que sirve para comentar el código
*/
Línea básica de comentario //
Para comentar una línea básica solo hay que poner antes del comentario //. De la misma forma que los bloques de comentarios, lo que esté detrás de la línea básica de comentarios será ignorado al ejecutar el programa, pero a diferencia de los bloques, en este caso solo abarca la misma línea.
Como hemos visto en ejemplos anteriores, las líneas de comentario se utilizan después de una instrucción para proporcionar más información acerca de lo que hace esta o para recordarla más
adelante.
// esto es un comentario
Estos son los elementos básicos necesarios para elaborar la estructura de un programa en el lenguaje de programación que hemos aprendido en el curso de Arduino de hoy.
Con esta información ya entendemos un poco mejor cómo es la estructura de un programa de Arduino que nos va a ayudar a elaborar increíbles proyectos.
En los próximos días del curso vamos a ir viendo poco a poco cuáles son los comandos básicos de Arduino y para qué sirven. Vamos a elaborar proyectos básicos con nuestro Arduino UNO y los componentes más comunes y vamos a seguir aprendiendo y subiendo de nivel hasta elaborar proyectos más avanzados.
Os doy un avance de lo que vamos a ir viendo en los próximos días del curso, todos ellos acompañados de ejemplos e intercalando proyectos para ir entendiendo el funcionamiento de cada uno de ellos.
- Tipos de datos y declaración de variables
- Aritmética y composición de asignaciones en Arduino
- Tipos de Constantes
- Control de flujo
- Entradas/Salidas digitales y analógicas
También te puede gustar: