Este documento explica los conceptos básicos de programación en Arduino, incluyendo cómo definir pines de entrada y salida, escribir y leer valores digitales, y crear un programa simple que encienda un LED cuando se presiona un botón.
Este es elaspecto de la pantalla de programación de Arduino. En Arduino los
programas reciben el nombre se sketch.
3.
Imagínate la placade Arduino como un gran edificio con muchas puertas, para acceder a el.
Dependiendo del evento que se celebre, podemos definir las puertas como de entrada o de salida. No
tengo que definir todas las entradas y salidas, solo las que necesite utilizar.
ENTRADA ENTRADA
SALDA SALIDA
4.
En el casode Arduino, lo que entra y sale , no son personas, sino información, en forma de señales eléctricas.
ENTRADA ENTRADA SALIDA SALIDA
6.
pinMode
En ellenguaje de Arduino, cada línea (la puerta del edificio), se define como de entrada o de salida, con la sentencia
pinMode. Escribimos pinMode , abrimos un paréntesis y dentro de ese paréntesis debe haber dos términos,
separados con una coma, el primero es el numero de la línea que quiero definir y en el segundo defino si es
entrada o salida. La sentencia, como todas las de Arduino hay que terminarlas con punto y coma (;).
La defino como
entrada o salida
Línea que quiero
definir
pinMode ( , );
7.
pinMode
Si porejemplo quiero definir la línea 4 como entrada, escribiría……..
pinMode ( 4 , INPUT );
8.
pinMode
Como puedesver Arduino habla inglés muy bien, pero no entiende nada de español, al definir las entradas
y salidas, no debo escribir ENTRADA O SALIDA, sino INPUT o OUTPUT.
pinMode ( 4 , INPUT );
9.
pinMode
Atento cuandola escribas, en pinMode, todo se escribe en minúsculas, menos la M de Mode y INPUT o
OUTPUT, debes escribirlo en mayúsculas. Arduino tiene su ortografía y no te permite cometer faltas, sino lo
escribes bien no reconocerá la sentencia y dará error. Cuando lo he escrito bien, pinMode aparecerá en un
color marrón claro y INPUT O OUTPUT , en azul.
pinMode ( 4 , INPUT );
10.
pinMode
Así asignaríamos,las entradas y salidas en un sketch. Debemos hacerlo en la sección setup. En este caso , hemos
asignado la línea 4 como entrada y la 6 como salida.
11.
digitalWrite
Para ordenara Arduino que «gobierne una puerta» , asignada como salida y «deje salir» o no , una señal
eléctrica digital, lo hacemos con la sentencia digital Write.
SALIDA
12.
digitalWrite
Recuerda quelas señales digitales solo tiene dos valores 0 y 1, cuando el valor es 0 Arduino no envía ninguna
señal de salida y cuando es 1, en la salida tenemos 5 V.
+ 5 V
SALIDA
0
1
13.
digitalWrite
En ellenguaje de Arduino, para definir el estado de una salida (0 ,1 ; LOW, HIGH), utilizamos la sentencia
digitalWrit e. Escribimos digitalWrite , abrimos un paréntesis y dentro de ese paréntesis debe haber dos
términos, separados con una coma, el primero es el numero de la línea que quiero definir y en el segundo
defino el estado . La sentencia, como todas las de Arduino hay que terminarlas con punto y coma (;).
La defino como 0 , 1 o
LOW, HIGH
Línea que quiero
definir
digitalWrite ( , );
14.
digitalWrite
Si porejemplo quiero definir la línea 6 como 1 (HIGH) escribiría……..
digitalWrite ( 6 , HIGH );
15.
pinMode
Como puedesver Arduino habla inglés muy bien, pero no entiende nada de español, al definir las entradas
y salidas, no debo escribir ALTO (1) O BAJO (0), sino HIGH o LOW.
digitalWrite ( 6 , HIGH );
16.
pinMode
En vezde con texto, se puede definir el estado de las salidas con números . 0, 1. En nuestro ejemplo, para
definir el nivel alto de salida (5 V), en vez de HIGH, podemos escribir 1.
digitalWrite ( 6 , 1 );
17.
digitalWrite
Atento cuandola escribas, en digitalWrite, todo se escribe en minúsculas, menos la W de Write y HIGH o
LOW, debes escribirlo en mayúsculas. Arduino tiene su ortografía y no te permite cometer faltas, sino lo
escribes bien no reconocerá la sentencia y dará error. Cuando lo he escrito bien ,digitalWrite aparecerá en
un color marrón claro y HIGH O LOW , en azul.
digitalWrite ( 6 , HIGH );
18.
digitalWrite
Así asignaríamos,a una salidas el valor 1 (HIGH) un sketch. Lo hacemos o en la sección void loop, dedicada a la
ejecución cíclica del programa. En este caso , hemos asignado la línea 6 el valor 1 (HIGH).
19.
digitalWrite
En vezde con texto (HIGH), podemos indicar el valor con número (1) .
digitalWrite
En vezde con texto (LOW), podemos indicar el valor con número (0).
22.
digitalRead
En ellenguaje de Arduino, para que lea, «tome nota», de los valores digitales de una entrada (0, 1), utilizamos
la sentencia digitalRead. Escribimos digitalRead , abrimos un paréntesis y dentro de ese paréntesis , indico la
línea que quiero leer. La sentencia, como todas las de Arduino hay que terminarlas con punto y coma (;).
Línea que quiero leer
digitalRead ( );
23.
digitalRead
Si porejemplo quiero indicar que queremos leer la entrada de la línea 4…….
digitalWrite ( 4 );
24.
digitalWrite
Atento cuandola escribas, en digitalWrite, todo se escribe en minúsculas, menos la R de Read . Arduino
tiene su ortografía y no te permite cometer faltas, sino lo escribes bien no reconocerá la sentencia y dará
error. Cuando lo he escrito bien digitalRead aparecerá en un color marrón claro .
digitalWrite ( 4 );
25.
digitalRead
Así leemosla entrada 4 en un sketch. Lo hacemos o en la sección void loop, dedicada a la ejecución cíclica del
programa.
26.
Variables
Ya explicaremosmás adelante, con detalle, lo que es una variable y sus diversos, tipos, pero ahora vamos a
aprender algún pequeño truco para etiquetar las entradas y las salidas. Para no hacemos un lio con los números
de las entradas y las salidas, podemos bautizarlas, ponerlas un nombre y cuando quiero hacer referencia a ellas
en el programa, en vez de poner el número, pongo el nombre que le he puesto.
Pulsador LED
27.
Variables
Escribimos eltipo de variable, el nombre que damos a esa variable, el signo igual y en que línea está. La
sentencia, como todas las de Arduino hay que terminarlas con punto y coma (;).
Nombre de la variable Nº de línea
int = ;
Tipo de variable
28.
Variables
¿Qué sonlos tipos de variables? ¿Qué tipo de variable empleo? ¿Qué es int? No te preocupes ahora para
empezar, ya aprenderemos los diferentes tipos de variables y cuando utilizarlas Para empezar puedes emplear
como «variable comodín», la variable tipo int, que puede tomar valores desde -32768 a 32678.
int
Puedes utilizar este tipo de variable como «variable comodín»
29.
Variables
Vamos a«etiquetar.», la entrada 4 con el nombre Pulsador, para que nos sea más fácil hacer el programa.
Escribo el tipo de variable (int), el nombre que le pongo (Pulsador), el signo igual y la línea a la que quiero
hacer referencia (4) cada vez que escriba en al programa la palabra Pulsador. Cuando lo he escrito bien , int
aparecerá en un color marrón claro y recuerda que debes terminar con ;.
int Pulsador = 4 ;
30.
Variables
Vamos a«etiquetar.», la salida con el nombre LED para que nos sea más fácil hacer el programa. Escribo
el tipo de variable (int), el nombre que le pongo (LED), el signo igual y la lía a la que quiero hacer referencia
(6) cada vez que escriba en el programa la palabra LED. Cuando lo he escrito bien , int aparecerá en un
color marrón claro y recuerda que debes terminar con ;.
int LED = 6 ;
31.
Comentarios
Es muyútil escribir comentarios de lo que hacemos, para que otras personas puedan entender los programa y
nosotros mismos recordemos lo que hemos hecho cuando revisemos los programas que hemos hecho hace tiempo.
Para escribir un comentario de una línea de programa, escribo // y lo que pongo a continuación no son instrucciones
del programa, sino un comentario de lo que estoy haciendo. El comentario aparece en color gris claro.
int LED = 6 ; // Asignamos la etiqueta LED a la línea 6
32.
Comentarios
Podemos escribirun comentario general del programa, al comienzo de este. Inicio el comentario con /* y lo
cierro con */
33.
Función igual
Paraempezar a programar con Arduino, vamos a programar la función igual (lo que entra es igual a lo que
sale), cuanto tenga de entrada 0, tendré de salida 0 y cuando tenga de entrada 1, tendré de salida 1. Vamos
a «cocinar» el programa , con los «ingredientes « que hemos ido presentando: pinMode, digitalWrite,
digitalRead, int.
pinMode
digitalWrite
int
digitalRead
34.
Función igual
Vamosa utilizar la línea 4 como entrada, para conectar un pulsador y la línea 6 , como salida, para conectar un
led. Cuando aprieto el pulsador se encenderá el led.
Pulsador LED
35.
Función igual
(Estructuradel programa)
Nombre del programa
Comentario general
Inicialización de variables
Ajustes
Cuerpo del programa
37.
Función igual
Enla pate donde escribo las instrucciones (void loop) , me basta con una instrucción. Le digo a Arduino que
en la salida LED «escriba» (digitalWrite), lo mismo que que está «leyendo» la entrada Pulsador (0 ó 1).
digitalWrite (LED, digitalWrite
(Pulsador)) ;
38.
Función igual
¡Atencióna los paréntesis! . Debes cerrar tantos paréntesis como tengas abiertos.
digitalWrite (LED, digitalWrite
(Pulsador)) ;
39.
Función igual
Tambiénpodemos «guardar» el valor de la entrada Pulsador en una variable y escribir el nombre de esta
variable en la instrucción del programa.
int Entrada = digitalWrite (Pulsador) ;
40.
Función igual
Enla instrucción del programa escribiríamos Entrada, donde antes escribíamos digitalWrite (Pulsador) .
digitalWrite (LED, Entrada) ;
41.
Función igual
Paranombrar y guardar
el programa: en Archivo/
Guardar como