Intro Mecatrónica - Programación en Arduino
Intro Mecatrónica - Programación en Arduino
Introducción a la
Ingeniería Mecatrónica
Programación
en ARDUINO
https://www.youtube.com/watch?v=myPZDA8VAIo
Lenguajes de programación
• El lenguaje de programación para hardware Arduino es una variante
de C++.
• Arduino proporciona sus propias librerías y su propio IDE (Integrated
Development Environment) para programar.
Fuente
Estructura de un programa
• La estructura básica del lenguaje de programación de Arduino es
bastante simple y se compone de al menos dos partes.
• Estas dos partes necesarias, o funciones, encierran bloques que
contienen declaraciones, estamentos o instrucciones (en inglés,
statements).
Estructura de un programa
• setup() es la parte encargada de recoger la configuración y loop() es la
parte que contiene el programa que se ejecutará cíclicamente (de ahí
el termino loop –bucle-). Ambas funciones son necesarias para que el
programa trabaje.
• La función de configuración contiene generalmente la declaración de
las variables. Es la primera función a ejecutar en el programa, se
ejecuta sólo una vez, y se utiliza para configurar o inicializar pinMode
(modo de trabajo de las Entradas/Salidas), configuración de la
comunicación en serie y otras.
• La función bucle (loop) siguiente contiene el código que se ejecutará
continuamente (lectura de entradas, activación de salidas, etc.). Esta
función es el núcleo de todos los programas de Arduino y la que
realiza la mayor parte del trabajo.
setup()
• La función setup() se invoca una sola vez cuando el programa
empieza. Se utiliza para inicializar los modos de trabajo de los pines,
o el puerto serie. Debe ser incluido en un programa aunque no haya
declaración que ejecutar.
loop()
• Después de llamar a setup(), la función loop() hace precisamente lo
que sugiere su nombre, se ejecuta de forma cíclica, lo que posibilita
que el programa este respondiendo continuamente ante los eventos
que se produzcan en la tarjeta.
Funciones
• Una función es un bloque de código que tiene un nombre y un
conjunto de instrucciones que son ejecutados cuando se llama a la
función. setup() y loop() son funciones de las que ya se ha hablado.
• Las funciones de usuario pueden ser escritas para realizar tareas
repetitivas y para reducir el tamaño de un programa.
• Las funciones siempre se declaran asociadas a un tipo de valor
(“type”) que se retorna cuando se ejecuta.
• Este valor será el que devolverá la función. Por ejemplo int se utilizará
cuando la función devuelva un dato numérico de tipo entero (en
inglés, integer).
• Si la función no devuelve ningún valor en particular (sólo se ejecutan
las intrucciones), entonces se colocará delante la palabra void, que
significa “función vacía”.
Funciones
• Después de declarar el tipo de dato que devuelve la función se debe
escribir el nombre de la función y entre paréntesis se escribirán, si es
necesario, los parámetros que se deben pasar a la función para que se
ejecute.
Funciones
• Como ejemplo, la función siguiente multiplica dos números y retorna
el resultado.
Funciones
• La función debe declararse fuera de cualquier otra función, por lo que
"myMultiplyFunction ()" debe ir antes o después de la función loop ().
{ } entre llaves
• Las llaves sirven para definir el principio y el final de un bloque de
instrucciones. Se utilizan para los bloques de programación setup(),
loop(), if.., etc.
• Una llave de apertura “{“ siempre debe ir seguida de una llave de
cierre “}”, si no es así el programa dará errores.
; punto y coma
• El punto y coma “;” se utiliza para separar instrucciones en el
lenguaje de programación de Arduino.
• También se utiliza para separar elementos en una instrucción de tipo
“bucle for”.
/*… */ bloque de comentarios
• Los bloques de comentarios, o múltiples líneas de comentarios, son
áreas de texto ignorados por el programa que se utilizan para las
descripciones del código o comentarios que ayudan a comprender el
programa.
• Comienzan con / * y terminan con * / y pueden abarcar varias líneas.
// línea de comentarios
• Una línea de comentario empieza con / / y terminan con la siguiente
línea de código. Al igual que los comentarios de bloque, los de línea
son ignoradas por el programa y no ocupan espacio en la memoria.
• Una línea de comentario se utiliza a menudo después de una
instrucción, para proporcionar más información acerca de lo que hace
esta o para recordarla más adelante.
Variables
• Una variable es una manera de nombrar y almacenar un valor
numérico para su uso posterior por el programa. Como su nombre
indica, las variables son números que se pueden variar
continuamente en contra de lo que ocurre con las constantes cuyo
valor nunca cambia.
• Una variable debe ser declarada y, opcionalmente, asignarle un valor.
• Cuando se declara una variable se reserva un espacio en la memoria
del sistema para su almacenamiento.
• El siguiente código de ejemplo declara una variable llamada
variableEntrada y luego le asigna el valor obtenido en la entrada
analógica del PIN2:
Variables
• Una vez que una variable ha sido asignada, o re-asignada, usted
puede probar su valor para ver si cumple ciertas condiciones
(instrucciones if..), o puede utilizar directamente su valor.
• Como ejemplo ilustrativo veamos tres operaciones útiles con
variables: el siguiente código prueba si la variable “entradaVariable”
es inferior a 100, si es cierto se asigna el valor 100 a “entradaVariable”
y, a continuación, establece un retardo (delay) utilizando como valor
“entradaVariable” que ahora será como mínimo de valor 100:
Variables
• Las variables deben tomar nombres descriptivos, para hacer el
código más legible.
• Nombres de variables pueden ser “contactoSensor” o “pulsador”,
para ayudar al programador y a cualquier otra persona a leer el
código y entender lo que representa la variable.
• Nombres de variables como “var” o “valor”, dificultan el
entendimiento del código por otras personas.
• Una variable puede ser cualquier nombre o palabra que no sea una
palabra reservada en el entorno de Arduino.
Declaración de variables
• Todas las variables tienen que declararse antes de que puedan ser
utilizadas. Para declarar una variable se comienza por definir su tipo,
por ejemplo, int (entero), long (largo), float (coma flotante), etc,
asignándoles siempre un nombre, y, opcionalmente, un valor inicial.
• Esto sólo debe hacerse una vez en un programa, pero el valor se
puede cambiar en cualquier momento usando aritmética y
reasignaciones diversas.
• El siguiente ejemplo declara la variable entradaVariable como una
variable de tipo entero “int”, y asignándole un valor inicial igual a
cero. El símbolo = representa una asignación.
Declaración de variables
• Una variable puede ser declarada en varias ubicaciones dentro del
programa.
• En función del lugar en donde se lleve a cabo la definición, se
determinará en qué partes del programa se podrá hacer uso de la
variable declarada.
Utilización de una variable
• Una variable puede ser declarada al inicio del programa antes de la
parte de configuración setup(), a nivel local dentro de las funciones, y,
a veces, dentro de un bloque, como para los bucles del tipo if.. for..,
etc.
• En función del lugar de declaración de la variable así se determinara
el ámbito de aplicación, o la capacidad de ciertas partes de un
programa para hacer uso de ella.
• Una variable global es aquella que puede ser vista y utilizada por
cualquier función y estamento de un programa. Esta variable se
declara al comienzo del programa, antes de setup().
• Una variable local es aquella que se define dentro de una función o
como parte de un bucle. Sólo es visible y sólo puede utilizarse dentro
de la función en la que se declaró.
Utilización de una variable
• Por lo tanto, es posible tener dos o más variables del mismo nombre
en diferentes partes del mismo programa que pueden contener
valores diferentes. La garantía de que sólo una función tiene acceso a
sus variables dentro del programa simplifica y reduce el potencial de
errores de programación.