Código de Arduino & Descripción de la sintaxis
Como aprendiste en el Módulo 01, IDE significa Entorno de Desarrollo Integrado. Suena bastante elegante, y debería hacerte sentir inteligente cada vez que lo uses. El IDE es un programa similar a un editor de texto que le permite escribir código Arduino.
Cuando abre el programa Arduino, está abriendo el IDE. Está intencionadamente simplificado para mantener las cosas tan simples y directas como sea posible. Cuando guardas un archivo en Arduino, el archivo se llama sketch – un sketch es donde guardas el código informático que has escrito.
El lenguaje de codificación que utiliza Arduino es muy parecido a C++ («ver más plus»), que es un lenguaje común en el mundo de la informática. El código que aprendas a escribir para Arduino será muy similar al código que escribas en cualquier otro lenguaje informático – todos los conceptos básicos siguen siendo los mismos – sólo es cuestión de aprender un nuevo dialecto en caso de que te dediques a otros lenguajes de programación.
Si te gusta este tutorial, haz clic aquí para ver el curso GRATUITO de Arduino en vídeo – miles de personas lo han disfrutado mucho.
El código que escribas será «legible para el ser humano», es decir, tendrá sentido para ti (a veces), y estará organizado para que un humano pueda seguirlo. Parte del trabajo del IDE es tomar el código legible por humanos y traducirlo en código legible por máquinas para ser ejecutado por el Arduino. Este proceso se denomina compilación.
El proceso de compilación es fluido para el usuario. Todo lo que tiene que hacer es pulsar un botón. Si tiene errores en el código del equipo, el compilador mostrará un mensaje de error en la parte inferior del IDE y resaltará la línea de código que parece ser el problema. El mensaje de error está destinado a ayudarle a identificar lo que podría haber hecho mal – a veces el mensaje es muy explícito, como decir, «Hey – se olvida de un punto y coma», a veces el mensaje de error es vago.
¿Por qué preocuparse por un punto y coma te preguntas? Un punto y coma es parte de la sintaxis del lenguaje Arduino, las reglas que rigen cómo se escribe el código. Es como la gramática en la escritura. Digamos, por ejemplo, que no utilizamos el punto cuando escribimos: todo el mundo lo pasaría muy mal tratando de averiguar cuándo empiezan y terminan las frases. O si no empleáramos la coma, ¿cómo podríamos transmitir una pausa dramática al lector?
Y déjame decirte que si alguna vez tuviste un profesor de inglés con un bolígrafo rojo hiperactivo, el compilador es diez veces peor. De hecho – tus programas NO COMPILARÁN sin una sintaxis perfecta. Esto puede volverte loco al principio porque es muy natural olvidar la sintaxis. A medida que ganes experiencia programando aprenderás a ser asiduo a la gramática de la codificación.
Vamos a ensuciarnos las manos e introducir algo de sintaxis.
El punto y coma ;
Un punto y coma tiene que seguir a cada declaración escrita en el lenguaje de programación Arduino. Por ejemplo…
int LEDpin = 9;
En esta sentencia, estoy asignando un valor a una variable entera (lo veremos más adelante), fíjate en el punto y coma del final. Esto le indica al compilador que ha terminado un trozo de código y que está pasando al siguiente. Un punto y coma es para el código de Arduino, como un punto es para una frase. Significa una declaración completa.
La doble barra diagonal para los comentarios de una sola línea //
//When you type a double backslash all the text that follows on the same line will be grayed out
Los comentarios son lo que se utiliza para anotar el código. El buen código está bien comentado. Los comentarios están pensados para informarte a ti y a cualquier otra persona que pueda tropezar con tu código, en qué diablos estabas pensando cuando lo escribiste. Un buen comentario sería algo así…
//This is the pin on the Arduino that the LED is plugged intoint LEDpin = 9
Ahora, dentro de 3 meses, cuando revise este programa, ya sé dónde meter mi LED.
Los comentarios serán ignorados por el compilador – así que puedes escribir lo que quieras en ellos. Si tiene mucho que explicar, puede usar un comentario de varias líneas, como se muestra a continuación…
/* The multi-line comment opens with a single backslash followed by an asterisk. Everything that follows is grayed out and will be ignored by the compiler, until you close the comment using first an asterisk and then a backslash like so */
Los comentarios son como las notas al pie de página del código, excepto que son mucho más frecuentes y no están al final de la página.
Corchetes { }
Los corchetes se usan para encerrar más instrucciones realizadas por una función (hablamos de las funciones a continuación). Siempre hay una llave de apertura y una llave de cierre. Si te olvidas de cerrar una llave, al compilador no le gustará y arrojará un código de error.
void loop() { //this curly brace opens//way cool program here} //this curly brace closes
Recuerda: ¡ninguna llave puede quedar sin cerrar!
Funciones ( )
Cambiemos un poco de marcha y hablemos de las funciones.
Las funciones son trozos de código que se usan tan a menudo que se encapsulan en ciertas palabras clave para que puedas usarlas más fácilmente. Por ejemplo, una función podría ser el siguiente conjunto de instrucciones…
Wash Dog1. Get a bucket2. Fill it with water3. Add soap4. Find dog5. Lather dog6. Wash dog7. Rinse dog8. Dry dog9. Put away bucket
Este conjunto de instrucciones sencillas podría encapsularse en una función que llamamos WashDog. Cada vez que queramos llevar a cabo todas esas instrucciones simplemente escribimos WashDog y voilá: todas las instrucciones se llevan a cabo.
En Arduino, hay ciertas funciones que se utilizan tan a menudo que se han incorporado al IDE. Cuando las escribas, el nombre de la función aparecerá de color naranja. La función pinMode(), por ejemplo, es una función común que se utiliza para designar el modo de un pin de Arduino.
¿Qué pasa con los paréntesis que siguen a la función pinMode? Muchas funciones requieren argumentos para funcionar. Un argumento es la información que la función utiliza cuando se ejecuta.
Para nuestra función WashDog, los argumentos podrían ser el nombre del perro y el tipo de jabón, o la temperatura y el tamaño del cubo.
pinMode(13, OUTPUT);//Sets the mode of an Arduino pin
El argumento 13 se refiere al pin 13, y OUTPUT es el modo en el que quieres que funcione el pin. Cuando introduces estos argumentos la terminología se llama pasar. Pasas la información necesaria a las funciones. No todas las funciones requieren argumentos, pero los paréntesis de apertura y cierre se mantendrán aunque estén vacíos.
millis( );//Retrieves the length of time in milliseconds that the Arduino has been running
Nota que la palabra OUTPUT está en azul. Hay ciertas palabras clave en Arduino que se utilizan con frecuencia y el color azul ayuda a identificarlas. El IDE las pone en azul automáticamente.
Ahora no vamos a entrar en ello, pero puedes hacer fácilmente tus propias funciones en Arduino, e incluso puedes hacer que el IDE las coloree por ti.
Sin embargo, vamos a hablar de las dos funciones que se utilizan en casi TODOS los programas de Arduino.
void setup ( )
La función, setup(), como su nombre indica, se utiliza para configurar la placa Arduino. El Arduino ejecuta todo el código que está contenido entre las llaves de setup() sólo una vez. Las cosas típicas que ocurren en setup() son establecer los modos de los pines, iniciar
void setup( ) { //the code between the curly braces is only run once for setup()
Tal vez te preguntes qué significa void antes de la función setup(). Void significa que la función no devuelve información.
Algunas funciones sí devuelven valores – nuestra función DogWash podría devolver el número de cubos que ha necesitado para limpiar al perro. La función analogRead() devuelve un valor entero entre 0-1023. Si esto parece un poco extraño ahora, no se preocupe ya que cubriremos cada función común de Arduino en profundidad a medida que continuamos el curso.
Repasemos un par de cosas que debe saber sobre setup()…
1. setup() sólo se ejecuta una vez.
2. setup() tiene que ser la primera función de tu boceto de Arduino.
3. setup() debe tener llaves de apertura y cierre.
void loop( )
Tienes que amar a los desarrolladores de Arduino porque los nombres de las funciones son muy reveladores. Como su nombre indica, todo el código entre las llaves en loop() se repite una y otra vez – en un bucle. La función loop() es donde residirá el cuerpo de tu programa.
Al igual que setup(), la función loop() no devuelve ningún valor, por lo que la palabra void la precede.
void loop( ) { //whatever code you put here is executed over and over
¿Te parece extraño que el código se ejecute en un gran bucle? Esta aparente falta de variación es una ilusión. La mayor parte de tu código tendrá condiciones específicas en espera que desencadenarán nuevas acciones.
Si tienes un sensor de temperatura conectado a tu Arduino, por ejemplo, entonces cuando la temperatura llega a un umbral predefinido puedes hacer que se encienda un ventilador. El código en bucle está constantemente comprobando la temperatura a la espera de activar el ventilador. Por lo tanto, aunque el código se repite una y otra vez, no todas las piezas del código se ejecutan en cada iteración del bucle.
Inténtalo por tu cuenta
Este curso se basa en los bocetos de ejemplo proporcionados con el IDE de Arduino. Abre tu IDE Arduino y ve a Archivo > Ejemplo > 01.Básico y abre tres sketches diferentes. Identifica la siguiente sintaxis y funciones que encuentras en los sketches:
- ; puntos y comas
- // comentarios de una línea
- /* */ multicomentarios de línea
- { } llaves de apertura y cierre
- ( ) paréntesis
- void setup() – identifica las llaves de apertura y cierre
- void loop() – identifica las llaves de apertura y cierre
- algunas palabras clave azules como OUTPUT o INPUT
Lectura adicional
.
0 comentarios