Elementos que debemos conocer
Antes de comenzar a programar, es importante que conozcamos una serie de estructuras que nos van a acompañar durante este curso.
Comentarios...
...en Arduino
Vamos a echarle un vistazo a la siguiente imagen:
Esto es lo primero que veremos cuando tengamos instalado Arduino. Por defecto, al abrir la aplicación aparecen ciertas palabras escritas. En azul y verde vemos void setup() y void loop().De ambas nos ocuparemos en el siguiente apartado sobre funciones.
Ahora, lo que nos interesa son las líneas que aparecen // entre los corchetes de ambas funciones. Tras ellas, le indican al programador que puede sustituirlas por el código que será necesario ejecutar una vez, en el caso de void setup(), y por el código que tendrá que ejecutarse continuamente en el caso del void loop(). ¿Qué es importante aquí? Que esas indicaciones no van destinadas a nuestro ordenador, sino al programador. Se trata de comentarios.
Cuando nuestros comentarios solamente ocupen una línea los escribiremos tras //. Como puedes comprobar, su color es gris claro, eso nos indica que Arduino hará caso omiso de ellos. Habrá momentos en los que necesitemos escribir comentarios más extensos y para ellos los escribiremos entre /**/.
Ejemplo: /*Esto es un comentario
que ocupa más de una línea. */
...en Pure Data
Funciones...
... en Arduino
Como hemos visto en el apartado anterior, a parte de los comentarios había unas palabras a color: void setup() y void loop()
Bueno, la estructura sería esta.
void setup() {
// aquí escribimos los comandos a ejecutar
}
Es muy importante que no olvidemos ningún paréntesis ni corchete, o el programa no funcionará.
Ambas son funciones. Y, ¿qué es una función dentro del mundo de Arduino? Una función es un fragmento de código, un subalgoritmo dentro de nuestro algoritmo, que tiene como propósito resolver una tarea determinada.
La palabra void, significa que esta función no nos devuelve ningún valor (sea un número, un caracter, un string, etc.) y la palabra reservada setup indica que el código que escribamos entre las llaves {} se ejecutará una sola vez al inicio del programa. Tanto setup como loop son palabras reservadas, pero eso lo veremos un poco más abajo.
En Arduino existen muchas funciones ya programadas, pero a parte de eso, podemos programar nuestras propias funciones.
Tienes una lista completa con las funciones que podemos encontrar en Arduino, aquí.
... en Pure Data
Variables y palabras reservadas
... en Arduino
No podemos avanzar mucho más sin hablar de ellas, las variables. Ellas nos van a permitir almacenar valores en nuestros programas, para ello debemos que saber que podemos almacenar datos de distintos tipos.
En los fragmentos de código que hemos ido viendo a lo largo de los apartados anteriores, ya aparecían estos términos especiales. Palabras como int, for, void loop() o if se consideran palabras reservadas porque poseen un significado especial dentro del lenguaje de programación que estamos empleando. Una manera de identificar a estas palabras especiales es porque aparecen con un color diferente.
Palabras reservadas para tipos de datos
Estas palabras tienen diferentes objetivos. Uno de ellos es para denotar los tipos de datos que podemos usar en nuestros programas. A estas palabras se les conoce como tipos predefinidos, las escribimos delante de aquellas variables que vamos a emplear en nuestro programa y algunas de ellas son:
int: almacena un número entero de un tamaño máximo de 16 bits.
float: almacena un número decimal de 32 bits.
char: almacena un caracter
boolean: almacena el valor verdadero (TRUE) o falso (FALSE).
long: almacena el valor de un número entero de 32 bits
Por ejemplo podemos crear una variable que almacene el valor numérico que obtengamos con un sensor. Podríamos crearla así:
int valorSensorTemperatura = 0;
Lo que haría que el valor de esa variable inicialmente sea cero, siendo modificado cuando lo asignemos al pin de nuestro Arduino al que hemos conectado el sensor. Como vemos, la palabra reservada sería int, mientras que valorSensorTemperatura es el nombre de la variable. Ese nombre lo usaremos en nuestro programa cada vez que queramos usar o modificar su valor.
Palabras reservadas para funciones
Como ya hemos visto, existe una serie de funciones que ya vienen preprogramadas y que podemos utilizar directamente. Las dos fundamentales son void setup() y void loop(), pero existen muchas otras.
Algunas de ellas son:
delay(): detiene el programa durante el tiempo indicado (en milisegundos).
random(): genera números pseudoaleatorios.
float(): convierte un número, por ejemplo del tipo int, a un número decimal.
... en Pure Data
Puerto serie
Una parte fundamental de nuestro Arduino es el puerto serie. Gracias a él se comunicará con nuestro ordenador y seremos capaces de enviar y recibir información con nuestro Arduino. ¿Existen otras maneras? Sí, pero esta es la que emplearemos a lo largo de este curso para ver qué valores reciben nuestros sensores a través de la pantalla de nuestro ordenador.
Para abrir nuestro puerto serie en Arduino necesitaremos hacer click en la lupa que se encuentra en la parte superior derecha de nuestro sketch:
Una vez hayas instalado Arduino, puedes venir a esta sección a probarlo, si no, lo probaremos en las prácticas, no te preocupes.
Si tenemos nuestra placa de Arduino conectada, se nos abrirá esta ventana:
Pero si no, nos dará un error similar a este:
Existen ciertos parámetros que podemos modificar en la ventana de nuestro puerto serie, dependiendo de a qué velocidad o baudios nos tengamos que comunicar con nuestro Arduino. En los proyectos de este curso no será necesario modificar nada, porque emplearemos los 9600 baudios que aparecen por defecto.
REFERENCIAS:
Sentencia for en Arduino y ejemplo: https://www.arduino.cc/reference/en/language/structure/control-structure/for/
Sentencia while en Arduino y ejemplo: https://www.arduino.cc/reference/en/language/structure/control-structure/while/Cerrada Somolinos, J. A., & Collado Machuca, M. E. (2015). Fundamentos de programación. Editorial Universitaria Ramón Areces : UNED.
Puerto serie: https://www.luisllamas.es/arduino-puerto-serie/