Manual Arduino
Manual Arduino
Arduino [GRATIS]
A ver, si estás leyendo esto es porque quizás estés buscando hacer
algún tipo de proyecto con Arduino. Da lo mismo si es una nevera portátil
que te siga como un perrito faldero, un palomar automatizado o un
sistema de riego para tus plantitas de la alegría.
No, lo que yo ofrezco es algo más serio que todo esto. Y, desde luego,
es más barato (gratis), más útil y más divertido.
Aquí abajo.
ENTRAR AL MINI-CURSO
Por favor, confirma haciendo clic en el check
Aceptas que almacene tu email para poder enviarte información de
Programarfacil y aceptas la política de privacidad*
Ojo que lo mismo todo esto te importa menos que un semáforo apagado.
Por mi perfecto, puedes seguir tu camino y utilizando el comodín de
Google.
Tómalo con calma, es un artículo muy largo. Casi podemos decir que es
un libro de Arduino. Cualquier sugerencia o cualquier duda la puedes
escribir en los comentarios.
Espero que lo disfrutes y sobre todo, que aclare las dudas que puedas
tener.
Indice de contenidos
1 Mini-curso de programación con Arduino [GRATIS]
2 Mi experiencia al aprender Arduino
3 El proceso del prototipado con Arduino
4 Curso de Arduino: Introducción al software y hardware
5 Fundamentos de la programación con Arduino
6 Conclusiones curso de Arduino
Pero ahora que nadie nos escucha, te voy a contar un secreto. Cuando
realmente he aprendido ha sido cuando he puesto en práctica toda la
información que iba leyendo. Por eso es importante siempre seguir
avanzando, aunque a veces no entiendas las cosas.
El prototipo mínimo
Vale, ya tienes ese maravilloso proyecto con Arduino en un papel. Junto
a ese diseño tienes un listado de ideas y especificaciones. Ahora tienes
que tirar de tu yo más racional, digamos que ahora eres Lisa de la familia
Simpson.
Debes ser capaz de con muy poco, obtener resultados . Siempre tendrás
tiempo de ir mejorando el proyecto con Arduino y añadir nuevas
funcionalidades.
El diseño incremental
Ahora sí, ya tienes las ideas claras de lo que tienes que hacer para llevar
a cabo tu prototipo mínimo. Lo has plasmado todo y ahora empieza la
fase de creación. Ya puedes empezar a crear los circuitos y a programar
Arduino a partir de ese prototipo mínimo.
Esta programación, ya sea para Arduino, para otro tipo de placa o para
otro lenguaje de programación, se suele hacer a través de un IDE o
entorno de desarrollo. Pero, ¿qué es un IDE o entorno de desarrollo?
Pero también lo podrías hacer con un Bloc de Notas. ¿Qué ventajas tiene
escribir un documento de este estilo con un programa como Word?
Pero por ahora tampoco cambia el código. Esto quiere decir que si tu
tienes un programa que hiciste con la versión 1.4 de Arduino, también te
servirá para cargarlo a la placa con la versión 1.8.
Debes elegir la versión para tu sistema operativo. Hay una versión para
Windows, para Linux o para Mac OS X. Cuando le das a descargar,
aparece una ventana donde te pide una contribución al software de
Arduino.
No es obligatorio hacer ninguna donación aunque si que es
recomendable. Como ya te he comentado, podemos colaborar de
múltiples formas. Cualquier ayuda es buena.
Solo advertir que voy a hacerlo para Windows. Esto es debido a una
cosa simplemente. A día de hoy es el sistema operativo más utilizado del
mundo aunque nos pese. Si tengo que elegir uno prefiero este para
poder ayudar al mayor número de personas.
#5 Instalar complementos
#6 Terminar instalación
Como has podido comprobar es muy sencillo. Cualquier problema con la
instalación me dejas un comentario en este artículo. Justo abajo del
todo ;)
En esta sección vamos a dar un repaso rápido por las funciones más
importantes del IDE de Arduino. Aprenderás lo básico para empezar a
programar tus propios programas.
Con el IDE podemos trabajar con todos los modelos de Arduino e incluso
con modelos que no son de la misma marca. Un ejemplo el ESP8266.
Cada vez que sale una nueva placa, el IDE se actualiza para poder
programarla. Con los años verás como va creciendo esta lista :)
Vamos a ver las opciones más importantes que nos permiten modificar el
aspecto y funcionamiento del IDE de Arduino.
1. Localización del proyecto: podemos seleccionar una carpeta donde
iremos guardando los proyectos. Por defecto será la que ha creado
el instalador en documentos/Arduino. Esta ruta varía según el
sistema operativo.
2. Editor de idioma: con esta opción podemos cambiar el idioma del
IDE.
3. Editor de Tamaño de Fuente: indica el tamaño de fuente del editor
del IDE.
4. Mostrar número de línea: para que muestre los números de líneas
en el editor.
5. Habilitar plegado el código: siempre que el código tenga una
sentencia con {} nos permitirá contraer y expandir ese código. Muy
útil cuando trabajamos con archivos muy grandes.
6. Guardar cuando se verifique o cargue: es importante que cuando
verifiquemos el código o lo carguemos al microcontrolador haga un
guardado automático. Déjalo marcado.
Cuando haces esto suceden varias cosas. Por un lado cambia el nombre
en el IDE de Arduino. Así sabes en todo momento con que programa
estás trabajando.
Y luego, en la ruta que hayas elegido habrá creado una carpeta con el
mismo nombre y dentro el fichero.
La ruta por defecto donde se guarda es la que hemos configurado en
preferencias.
El área de mensajes
La consola
En la parte izquierda nos informa del número de línea donde está situado
el cursor. En la parte de la derecha tenemos un resumen de la placa que
tenemos seleccionada y el puerto serie que estamos utilizando.
#4 Fundamentos de la placa de Arduino
En este curso de Arduino he hablado de las dos áreas que hay conocer
para aprender Arduino: la programación y la electrónica.
Hemos visto una introducción al IDE de Arduino que no es más que una
herramienta para programar.
No es lo mismo comprar una placa con conexión WiFi que sin ella. Por
ejemplo, Arduino MKR1000 puede conectarse a Internet a través de la
WiFi y transmitir datos.
Un Arduino UNO o un Arduino MEGA no pueden por si solos. Necesitan
algún tipo de shield ya sea ethernet o WiFi.
¿Qué es un microcontrolador?
Si miramos de cerca la placa nos da la sensación de que se trata de un
circuito sacado de un electrodoméstico. La realidad es que Arduino está
creado con un único objetivo: facilitarnos la programación de un
microcontrolador.
Sin embargo, hubo una persona que pensó que había que democratizar
el uso de microcontroladores y creo Arduino. El es David Cuartielles uno
de los cofundadores de Arduino y el padre de la criatura.
Puerto USB
Se llama puerto USB pero realmente estamos trabajando a través del
puerto serie. Dentro de la propia placa hay un conversor de USB a serie,
también conocido como TTL o FTDI.
Pines digitales
¿Qué quiere decir digital? Digital es algo abstracto así que mejor verlo con
una analogía.
Imagínate que eres pintor. Cuando vas a pintar un cuadro solo te
permiten utilizar dos colores: blanco y negro. Si quieres pintar con un gris
claro por ejemplo, no puedes, no existe ese color. Solo puedes elegir
entre blanco o negro.
Hay algún pin más dentro de este zócalo pero como ya te he dicho al
principio de este curso de Arduino, aquí vamos a ver lo esencial para
ponernos en acción.
Pines analógicos
Pines de alimentación
Desde que concibes la idea en tu cabeza hasta que el libro llega a las
librerías, el proyecto pasa por diferentes procesos hasta materializarse el
libro. Voy a hacer una enumeración básica:
El toolchain de Arduino
En este curso de Arduino vamos a ver el toolchain o cadena de
herramientas en 3 fases. Algunas partes las hemos visto ya, como el IDE
de desarrollo. Sin embargo, es sólo una de las herramientas.
1. El IDE de Arduino
2. El compilador
3. AVRdude
El IDE de Arduino
Ya hemos visto lo que es y las funciones más importantes del IDE en
este curso de Arduino. Su función es la de procesador de textos.
El compilador
AVRdude
La última etapa del tootlchain de Arduino es cargar el código al
microcontrolador. Hasta ahora lo que tenemos es un archivo en código
máquina pero necesitamos cargarlo dentro de la memoria del
microcontrolador.
Dentro del circuito integrado tiene cargado un software muy básico que se
llama Bootloader. Ya viene instalado dentro de la placa cuando la
compras así que no tienes que hacer nada cuando recibes una placa sin
usar.
Verás como con el tiempo, eso que no entendías lo verás más claro
desde otra perspectiva.
1 // Esto es un comentario
2 int miVariable = 0;
Todo lo que hay a la derecha de la doble barra (//) se considera un
comentario y se pone en color gris. El IDE de Arduino lo cambia de color
para indicarnos que se trata de un comentario.
1 /*
2 Esto es un comentario
3 */
4 int miVariable = 0;
La otra forma de poner un comentario es poniendo /* para abrir y */ para
cerrar. Todo lo que haya entre estas dos marcas de apertura y cierre se
considera comentario. Como tal, su color cambia a gris.
Punto y coma
En el lenguaje de programación C++, el punto y coma (;) es como
un punto y aparte. Básicamente lo que está diciendo es que hemos
terminado una sentencia y a partir de ese momento, empezamos algo nuevo
sin relación a lo anterior a nivel de sintaxis.
1 // Esto es un comentario
2 int variable = 0;
Seguramente el código anterior no significa nada para ti si no has
programado nunca antes. Sin embargo, quiero que te fijes en el punto y
coma final. El compilador interpreta que a partir de ese punto y coma
todo lo que escriba será una sentencia nueva, sin nada que ver con la
anterior.
En este punto ya podemos hacer una prueba para ver como actúa el
compilador. Abre un nuevo programa en el IDE de Arduino y copia el
siguiente código. No hace falta ni que conectes la placa a tu ordenador.
2 int variable1 = 0
4 void setup() {
7 }
9 void loop() {
12 }
Ahora da al botón verificar, es el primer acceso directo en el editor. ¿Qué
ha sucedido?
Que nos enfrentamos al primer error :). Vamos a analizarlo para ver
como resolverlo.
Si te fijas en el área de mensajes, el error está en inglés pero es muy
descriptivo, “expected ‘,’ or ‘;’ before void” (en español “espera ‘,’ o ‘;’
antes de void“) es decir, que nos falta poner una coma o un punto y coma
antes de la palabra void.
Por último en el editor nos sale una franja roja indicando la línea donde
está el error y donde se hace referencia en la consola. Ahora cambia el
código y pon el punto y coma al final de la línea 2 y verás como compila.
Como ves no estás sólo. El compilador es muy exigente pero también nos
ayuda a corregir los errores.
Palabras reservadas
Seguramente ya hayas copiado y pegado algún código de Arduino de
esos que encuentras por Internet. Al hacerlo, te habrás dado
cuenta algunas palabras cambian el color de texto dentro del IDE de
Arduino.
Son palabras reservadas por el lenguaje C++. Cada una de ellas tiene una
función específica y están reservadas por el lenguaje de programación.
Esto quiere decir que no podemos utilizar esos nombres para nombrar una
variable por ejemplo.
Hay más palabras clave que las que hemos visto. Poco a poco te irás
familiarizando con ellas según las vayas necesitando. Lo importante es
que si cambia de color en el IDE de desarrollo, es que es una palabra
reservada.
1 // Area de un círculo
1 // Area de un círculo
2 calcularAreaCirculo(radio);
Queda mucho más fácil y mucho más limpio, ¿lo ves? Pero a mi lo que
realmente mi interesa es que entiendas el concepto. En este curso de
Arduino, desde el primer momento, vamos a utilizar funciones y debes
ser capaz de entender esta herramienta de programación.
2 pinMode(6, INPUT);
3 digitalRead(6);
Ahora vamos a centrarnos en la sintaxis a la hora de llamar a una función.
Todas las llamadas a funciones comienzan con el nombre de la propia
función. Luego va seguido de un paréntesis abierto y si la función tiene
parámetros, se incluirían a continuación separados por comas .
1 nombreFuncion();
Y esto es todo lo que necesitas saber, en principio, sobre las funciones.
A lo largo del curso de Arduino se utilizarán muchas funciones con y sin
parámetros.
#2 Las variables en un programa de Arduino
Uno de los conceptos más importantes de la programación son las
variables. Te aseguro que cuando entiendes como funcionan, tienes una
de las claves para aprender Arduino.
Tipos de datos
Además de dar un nombre a la variable, tenemos que hacer otra cosa.
Tenemos que indicar el tipo de información que va a almacenar.
Lo lógico y normal es que los clasifiques. Los cuchillos con los cuchillos
en un hueco adaptado para ellos. Los tenedores en otro hueco y las
cucharas de café en su hueco especial para ellas.
Donde quiero llegar es que debemos tener un hueco dentro del cajón
para cada tipo de cubiero. Lo mismo ocurre con las variables, tenemos
que especificar el tipo de dato que vamos a almacenar en cada hueco de
memoria.
Si declaras una variable que sólo puede almacenar números enteros,
positivos y negativos, no podrás almacenar un número con decimales
como 3,14. Esto produciría un error.
Declaración de variables
Cuando hablo de declarar lo que realmente estamos haciendo es crear
una variable. Para declarar una variable vas a necesitar dos cosas: un
nombre y un tipo de dato.
2 int primeraVariable;
En el código anterior he declarado una variable del tipo entero (int) cuyo
nombre es primeraVariable. El tipo de dato int permite almacenar
números enteros entre -32.768 y 32.767. A esto se le llama rango.
Por cierto, no te olvides del punto y coma al final para indicar que has
terminado con la declaración de la variable.
Para nombrar una variable hay que seguir ciertas reglas. Llevo muchos
años programando (más de 15 años) y he visto de todo :)
A continuación unas reglas básicas que tienes que seguir para nombrar
una variable:
No pueden tener caracteres especiales ($, %,&,/,», ñ, etc…).
Se pueden utilizar números siempre y cuando no se pongan al
principio.
No se pueden utilizar las palabras reservadas como nombre de
variable.
8 int primerInt; //Aunque contiene una palabra reservada es correcta esta declaración
Como ves, no hay más que aplicar un poco de sentido común.
Inicialización de variables
Cuando hablo de inicilizar una variable no es más que asignar un valor.
Todo esto lo tenemos que hacer una vez que conozcamos el tipo de dato
por supuesto. Incluso lo podemos hacer en la misma línea.
En sentencias separadas.
1 int nivelMaximo;
2 nivelMaximo = 25;
O en la misma línea o sentencia.
Entero (int)
Es el tipo de dato más común. En C++ se utiliza la palabra
reservada int para declarar un tipo de dato entero.
Algo a tener claro con las variables es que si declaras una variable int,
estás ocupando 2 bytes de memoria. Da lo mismo si almacenas el 1 o el
30.000.
Decimal (float)
Si quieres almacenar un número decimal con los tipos de datos que hemos
visto hasta ahora no podrías. Para los números con decimales tenemos
los números de coma flotante. En C++ se utiliza la palabra reservada float.
Byte (byte)
Es el tipo de dato más pequeño que hemos visto hasta ahora. En C++ se
utiliza la palabra reservada byte y como indica su nombre, solo ocupa 1
byte de memoria.
Booleano (boolean)
Es el tipo de dato que menos memoria ocupa, 1-bit. La palabra
reservada en C++ es boolean y puede tomar dos valores o 1 o 0.
3 boolean boolConCero = 0;
5
7 boolean boolConNumero1 = 1;
Por otro lado, este tipo de dato es el único que no cumple la regla cuando
se sale fuera de su rango. Como hemos visto anteriormente, cuando
salimos por arriba o por abajo empezaríamos de nuevo.
Con una variable del tipo booleano lo que sucede es que siempre que sea
0 será falso y en caso contrario será siempre verdadero .
Carácter (char)
El último tipo de dato que vamos a ver en este curso de Arduino es el
carácter. Se representa con la palabra reservada char en C++ y utiliza 1
byte de memoria (8-bit). Nos permite almacenar una letra de una forma
especial.
Y con esto terminamos los tipos de datos básicos en Arduino. No son los
únicos pero si que son los más utilizados y con los que más vas a
trabajar sobre todo al aprender Arduino.
2 digitalWrite(3, HIGH);
La función digitalWrite nos permite sacar 5V o 0V por un pin. Para hacer
esto tenemos que pasar la información del estado (HIGH serían 5V y
LOW sería 0V) además del pin sobre el que queremos trabajar.
Bien, hasta ahora hemos visto funciones que admiten parámetros pero
también hay funciones que no tienen ningún parámetro. Por
ejemplo millis().
2 encenderLuzSalon();
En este caso no pasamos ningún parámetro y no nos devuelve nada.
Nosotros solo vemos una parte de la función pero por debajo hay mucha
más información. Sin embargo, al principio sólo tienes que conocer cómo
hacer llamadas a funciones . Más adelante ya serás capaz de programar
las tuyas.
#5 La función setup() y loop() de Arduino
Esta es la última parte que vamos a ver en este curso de Arduino.
Enlazando con lo que hemos visto de las funciones, voy a hablarte de las
funciones setup() y loop().
Procedimientos de un restaurante
Para que entiendas la función desempeñan setup() y loop() dentro de un
programa de Arduino te voy a poner una analogía, seguro que lo
entiendes mejor.
Más o menos cada mes tienes algún empleado nuevo al que tienes que
formar. Esto te lleva a tener dos procedimientos:
Procedimiento de apertura.
Procedimiento de atención a un cliente.
Por ejemplo, preguntar cuantos son, buscar una mesa libre, tomar nota
de la bebida, tomar nota de la comida, etc…
Ahora mismo estás pensando ¿qué tiene que ver un restaurante con
Arduino? Bueno, ahora lo comprobarás, pero un programa de Arduino
tiene que hacer cosas similares a las que se hacen en este restaurante.
La función setup()
En un programa de Arduino, hay cosas que sólo tienen que hacerse una
sola vez. Cosas como:
Todas estas tareas se tienen que realizar una sola vez. Podemos decir
que son las condiciones iniciales del programa. Este tipo de tareas son las
que van en la función setup().
Este color indica que el IDE de Arduino identifica esta función como un
tipo especial que se utiliza para el control de la estructura del código . Como
toda función tiene un paréntesis que abre y otro que cierra. Sin embargo
esta función no necesita de ningún argumento para operar.
La función loop()
En un programa de Arduino, lo siguiente que se ejecuta después de la
función setup es la función loop. Su significado es repetición y la función
se parece a la función de setup.
Después de este extenso tutorial faltaría muchas cosas que ver dentro de
la programación, pero con esto ya tienes unos buenos cimientos sobre
los que construir.
Imagen 1
Imagen 2
Imagen 3
Imagen 4
Imagen 5
Imagen 6
Imagen 7
Imagen 8
Imagen 9
Imagen 10