Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 73

Curso de Arduino aprende a programar desde

cero

Para aprender Arduino debemos empezar desde el principio. Aunque


suene a algo redundante, no podemos construir un edificio sin tener
unos cimientos fuertes. Un curso de Arduino tiene que hacer lo
mismo.

Si tu objetivo es aprender Arduino desde cero, primero construye unos


buenos cimientos. Tu como yo, has copiado y has pegado código sin
saber muy bien qué hacía. No está mal del todo ya que nos ha servido
para obtener resultados.

Sin embargo, si queremos avanzar y aprender Arduino no nos queda


otra que empezar por el principio con la electrónica y la programación.
Por eso he decidido crear este curso de Arduino desde cero.

Si tu eres de esas personas que quiere introducirse al movimiento


Maker con Arduino, este es tu curso. Quiero brindarte la oportunidad de
ahorrar mucho tiempo buscando información por Internet.

Sin embargo, aquí no está todo. Es solo una muestra de los


conocimientos que debes adquirir. Todo este artículo forma parte de
algo más grande, el Curso de Arduino desde Cero del Campus de
Programarfacil.

En este artículo vamos a ver los siguiente módulos:

 El proceso del prototipado.


 Introducción al software y hardware con Arduino.
 Fundamentos de programación con Arduino

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 Mi experiencia al aprender Arduino
 2 El proceso del prototipado con Arduino
 3 Curso de Arduino: Introducción al software y hardware
 4 Fundamentos de la programación con Arduino
 5 Conclusiones curso de Arduino

Mi experiencia al aprender Arduino


Me he pasado media vida estudiando y aprendiendo diferentes
disciplinas. Desde muy pequeño he programado. He estudiado
Ingeniería Técnica de Telecomunicaciones y he dedicado más de 20
años trabajando en diferentes empresas.

Me considero un programador y desarrollador de software. Esto supone


que tengo que estar al día en las últimas tendencias de programación.
Leer muchos blogs, muchos libros y hacer muchos cursos.

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.

Debes evitar a toda costa el síndrome de parálisis por análisis. A lo


único que te lleva esto es a no obtener resultados. Cuando ves que no
avanzas, te entra un profundo sentimiento de frustración y terminas
abandonando.

Por eso siempre digo lo mismo: ¡¡ PONTE EN ACCIÓN !!. No esperes


a saber todo lo que necesitas saber para hacer un proyecto. Divide el
proyecto en diferentes fases y empieza a programar con Arduino y a
experimentar. Solo así podrás crear tus propios proyectos y a aprender
Arduino.

El proceso del prototipado con Arduino


En este apartado no me voy a extender mucho. Tienes un artículo muy
detallado sobre el proceso de prototipado con Arduino. Aún así haré
un resumen de todo lo que se habla en ese artículo.

Arduino es una placa orientada al prototipado. No sólo porque todo lo


que está en la propia placa y el software están pensados para prototipar
de una forma muy fácil y rápida. Además, tenemos sensores,
actuadores y shields alrededor de Arduino que nos facilitan esta tarea.

¿Qué es lo primero que se hace cuando queremos hacer un proyecto


con Arduino? Puede que pineses: «uhmmmmm pues conecto los
componentes y a programar«. ¡¡¡ NO !!! Se trata de un error muy típico
que me encuentro todas las semanas.

Cuando tenemos que empezar a crear un proyecto con Arduino lo


primero que tenemos que hacer es plantear ese proyecto. Debemos
plasmarlo con lápiz o bolígrafo en un papel. Así de sencillo.

Por eso te recomiendo que sigas estas 3 fases.

La idea general del proyecto con Arduino


Me gusta llamarlo la fase Homer :) ¿Recuerdas ese capítulo donde
Homer diseña un coche? Pues eso es lo que tenemos que hacer. Tirar
de imaginación y plasmar la idea general con todos los componentes
que se te ocurran.

Si lo que estás planteando, por ejemplo, es hacer un proyecto con


Arduino para medir la temperatura, en esta fase el proyecto no tiene
que ser una simple estación meteorolótica. Tiene que ser el satélite
Meteosat :). No te cortes y plasma todo en un simple papel.
Un dibujo sencillo, sin complicaciones, donde vengan todos los
componentes que te gustaría tener en tu proyecto.

Al final de esta fase tendrás un listado de ideas y especificaciones del


satélite Meteosat ;) Este sería el inicio de la siguiente fase, el prototipo
mínimo.

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 plantearte una pregunta crucial ¿seré capaz de enviar un


satélite al espacio? ¿No sabes la respuesta? Ya te lo digo yo, ¡NO!.
No estoy dudando de tus capacidades, para nada. Si que dudo de tus
recursos. A no ser que seas Elon Musk, veo difícil poner un satélite en
órbita.

Y como este ejemplo muchos otros. A veces me preguntan si no sería


mejor hacer una PCB o circuito impreso para algún proyecto. Por
supuesto que si pero ¿qué experiencia tienes diseñando PCBs?¿qué
experiencia tienes con electrónica?¿dónde vas a fabricar ese circuito
impreso?

Por eso es importante centrarse en el objetivo principal de tu


proyecto. Esta fase consiste en eliminar todo aquello que no es
importante y que solo aportan funcionalidades extra.
Si lo que quieres es medir la temperatura para algo concreto ¿por qué
mides la presión? ¿por qué lo conectas a Internet? Céntrate en eso
concreto y consigue crear un prototipo mínimo que sea capaz de
hacer la funcionalidad principal de tu proyecto.

Debes ser capaz de conocer tus limitaciones y de los medios que


dispones. Es simple, si consigues hacer un prototipo mínimo en
poco tiempo, no sentirás la frustración de no llevar tu idea a la
realidad. Esta fase es crucial para aprender Arduino.

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.

Mi consejo es que apliques el diseño incremental. Básicamente consiste


en dividir ese gran problema que vas a resolver, en pequeños
problemas. Puedes verlo como un pintor.

Haz un bosquejo de lo que quieres conseguir y poco a poco ves dando


forma a esa idea primitiva.
Aunque sea sólo medir la temperatura con un sensor, plantea y
reflexiona lo que tienes que hacer en el código, investiga sobre las
características del hardware y el software. Solo cuando tengas toda esta
información deberás ejecutar las acciones necesarias para realizar tu
prototipo mínimo.

Curso de Arduino: Introducción al software


y hardware
Ya te he comentado que las dos disciplinas que debes dominar en un
curso de Arduino son la programación y la electrónica. No queda
otra, debes pasar por esto.

Si has llegado hasta aquí, es porque quieres aprender Arduino. Pero al


contrario que otras tecnologías como pueda ser un ratón o un teclado,
denominadas tecnologías Plug&Play, Arduino no es un hardware que
se conecte y listo.
En un curso de Arduino debes aprender todas las nociones para que
puedas configurar y programar el microcontrolador de Arduino.

Para empezar debes conocer el software y el hardware que está


involucrado.

#1 Entorno de desarrollo de Arduino


Si quieres aprender Arduino tienes que programar. No existen fórmulas
milagrosas ni atajos. Programar es la única manera de llevar a cabo tus
propios proyectos con Arduino.

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?

Déjame que te lo explique con una analogía. Cuando estás escribiendo


un informe o cualquier documento para tu trabajo ¿con qué software lo
haces? Normalmente se utiliza Office de Microsoft o la versión de
código abierto Libre Office.

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?

Cuanto más azúcar más dulce. Un procesador de texto potente te


permitirá añadir tablas, utilizar listas y demás herramientas que facilitan
el crear un documento. Seguramente todo esto no lo puedas hacer con
el Bloc de Notas de Windows por ejemplo.

Con los entornos de desarrollo ocurre algo parecido. Con el IDE de


Arduino podemos escribir nuestro código de una forma muy fácil y
sobre todo, con muchas ayudas.
Por ejemplo, cuando escribimos una palabra reservada nos la cambia
de color. Podemos contraer estructuras de control o funciones. Insertar
y gestionar librerías a través del menú o formatear el código.

Pero lo más importante del IDE de Arduino es que podemos cargar el


código a la placa. Podríamos escribir todo nuestro código en el Bloc de
Notas o algún otro editor de texto y sería totalmente válido. El código
no es más que texto.

Sin embargo, el IDE de Arduino nos permite hacer una cosa


fundamental: compilar el código y subirlo a la placa. Esa es la clave. No
te preocupes si ahora no entiendes qué es eso de compilar, muy pronto
lo veremos.

Otra característica importante del IDE de Arduino es que es de código


abierto. Pero ¿qué quiere decir esto? Bueno, Arduino es una
plataforma abierta. Dentro de esta plataforma se incluye el IDE de
Arduino.
Esto significa que ya no solo tenemos el software de forma gratuita,
también lo podemos modificar a nuestro antojo. Eso sí, para hacer
cualquier mejora o cambio debes conocer el lenguaje de programación
con el que se programa el propio entorno de desarrollo de Arduino.

No confundir tecnologías libres con tecnologías gratuitas. Aunque una


cosa lleve a la otra, no quita que detrás de este tipo de proyectos haya
mucha gente trabajando y muchas horas de dedicación. Entonces
¿cómo podemos colaborar? Hay diferentes formas. Si nos centramos
en Arduino la más sencilla es comprar placas originales y no copias.
Pero también puedes ayudar haciendo una donación. Eso servirá para
pagar el hosting de la página web, a los trabajadores o cualquier gasto
derivado del proyecto.
Versiones del IDE de Arduino
Se trata de un software que está en constante actualización. Arduino
no tiene un periodo fijo a la hora de hacer actualizaciones. Cuando sale
una nueva versión se añaden nuevas opciones o se corrigen errores.

Lo más importante es que de momento (vamos por la versión 1.8.6) el


IDE sigue manteniendo su mismo aspecto. Esto es más importante
de lo que parece. Las opciones suelen estar siempre en el mismo sitio
y por lo tanto, cuando se actualiza apenas notarás la diferencia.

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.

#2 Instalación del IDE de Arduino


El segundo paso, una vez visto qué es un IDE y qué nos puede aportar,
es la instalación. En este sentido no hay mucho misterio.

Podemos decir que este es el primer paso técnico en un curso de


Arduino. Como dicen en la película de Los Goonies: «todo parte de
aquí«.

Accede a la sección de software de Arduino. En la actualidad


podemos programar de dos formas a través del IDE oficial de Arduino.
Hay una versión web y un versión de escritorio. Para empezar te
recomiendo que lo hagas a través de la versión de escritorio.
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.

Todo lo demás que continúa a partir de aquí es una secuencia de


pantallas que lo único que hacen es instalar todo lo necesario para
poder programar con el IDE de Arduino. A continuación un resumen
rápido de la secuencia de instalación.

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.

Puedes seguir estos tutoriales para instalar el IDE de Arduino


en Linux y en Mac OS X.

#1 Ejecutar el instalador del IDE de Arduino como administrador

#2 Aceptar el acuerdo de licencia


#3 Elegir los componentes de software

#4 Elegir ubicación
#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 ;)

#3 Funciones principales del IDE de Arduino


En los dos apartados anteriores hemos visto dos pasos que puede que
hayan dejado confuso, sobre todo si antes no habías tenido nunca
contacto con la programación.

Relájate, no te preocupes, piensa que vamos a escribir una carta a un


amigo y que has instalado un procesador de textos como el Word.

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.

Aprender Arduino requiere de este fuerzo previo por conocer las


herramientas. No conseguirás avanzar rápido si antes no dominas los
conceptos básicos del software y hardware de Arduino.

Seleccionar la placa correcta y el puerto serie


Seleccionar la placa es relativamente sencillo. En este curso de
Arduino vamos a trabajar con el modelo Arduino UNO (luego lo
veremos más en profundidad).

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 :)

Puedes seleccionar la placa a través del menú


en Herramientas>Placa>Arduino/Genuino UNO. No hace falta que
conectes la placa al ordenador para seleccionar un modelo.
El puerto serie es por donde se comunican Arduino y el ordenador.
Es necesario que tengas conectado tu Arduino al ordenador. Es muy
sencillo, no tiene pérdida.
Para seleccionar el puerto lo hacemos a través del
menú Herramientas>Puerto. Puede que aparezca más de uno y
además el nombre varía según el sistema operativo.
Truco. Si tienes más de una placa conectada y no sabes cuál es, solo
tienes que conectar tu Arduino al ordenador, abrir el listado de puertos,
desconectar Arduino UNO del ordenador y volver a abrir el listado de
puertos. El que haya desaparecido ese es :)
Preferencias del sistema
Como en casi todos los programas que utilizamos, en el IDE de Arduino
tenemos una opción para configurar las preferencias del sistema.
Nos permite modificar el idioma, el tamaño de letra y alguna cosas más
que veremos.

Para acceder a esta opción solo tenemos que ir al


menú Abrir>Preferencias.
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.
Sistema de ficheros de Arduino
Una de las mejoras que han ido introduciendo dentro del IDE de Arduino
es la gestión de archivos. Lo primero que debes conocer es
la extensión con que se guardan los ficheros de Arduino, .ino.

Si has creado un programa o sketch (sketch significa esquema o


bosquejo) verás que tiene una extensión .ino.

Cuando guardas un archivo en tu ordenador, el propio IDE de Arduino


ya lo organiza por ti. Crea una carpeta con el mismo nombre que el
archivo y dentro guarda el fichero.

Por ejemplo, si creas un nuevo programa y vas al menú Archivo>Salvar,


te permitirá guardarlo con un nombre.
Puedes darle el nombre que quieras siempre y cuando cumplas las
reglas de tu sistema operativo. Te recomiendo que sea un nombre
descriptivo y que no utilices caracteres especiales.

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.

Partes fundamentales del IDE de Arduino


Dentro del IDE de Arduino podemos destacar 3 partes principales. El
editor, el área de mensajes y la consola.
El editor

Aquí es donde más vamos a trabajar ya que es donde escribimos


nuestro código. Pero no solo eso, también tenemos acceso a las
funciones más utilizadas.

En la parte central encontramos el propio editor. Incluye el número de


línea útil, por ejemplo, para detectar errores.
Justo arriba del editor tenemos los accesos directos a las funciones más
utilizadas.

1. Verificar/Compilar: este botón verifica el código en busca de


errores y lo compila. Cuando hablo de compilar me refiero a
traducir el lenguaje de programación que entendemos los
humanos en código máquina que entienden las máquinas.
2. Subir: el botón subir nos permite cargar o subir el código al
microcontrolador a través del puerto serie USB.
3. Nuevo: sirve para crear un programa nuevo. Esto genera una
nueva ventana donde escribir el código de ese nuevo programa.
4. Abrir: abre un programa que hayas guardado previamente en el
disco duro.
5. Salvar: guarda el archivo en el disco duro. Es como la opción que
hemos visto anteriormente.
6. Monitor serie: es una de las partes más importantes del IDE de
Arduino. Sirve para mostrar información de la comunicación entre
el ordenador y Arduino en las dos direcciones.
Todos estos accesos directos tienen su correspondencia en el menú de
opciones y también tienen su atajo de teclado.
El área de mensajes

En este área de mensajes se muestra la última acción que has


realizado. También muestra mensajes cuando se está realizando
alguna tarea como subiendo un programa a la placa.

La consola

La consola nos va a dar información muy valiosa. Nos puede dar


información sobre una acción concreta, por ejemplo los datos tras subir
un programa a la placa. Pero lo más importante, nos informa si hay
algún error.
Otras partes importantes del IDE de Arduino
Una de las áreas donde podemos encontrar información muy valiosa es
justo abajo del todo. Se pueden ver dos áreas de texto.

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.

En esta sección vamos a ver los fundamentos de Arduino. No me voy


a poner muy técnico, recuerda que lo importante es seguir
avanzando.

Si haces una pequeña búsqueda en Internet, encontrarás que hay


multitud de placas de Arduino. Hay originales, copias y un amplio
abanico de modelos dependiendo de cual es su funcionalidad. Así que
lo primero que debes preguntarte es ¿qué quiero conseguir?

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.
Salvo estas características especiales de cada placa, el 99% del código
te va a servir para cualquier placa. Por ejemplo, el acceso a los pines
se hace en todas las placas igual. Esa es la magia de Arduino.

Un solo lenguaje y un solo IDE para dominar a todos :)

Yo recomiendo empezar con un Arduino UNO, sobre todo para un curso


de Arduino como este. También vale un Arduino Leonardo o un Arduino
Mega.

¿Por qué utilizar Arduino UNO?


Dentro de todos los modelos que podemos encontrar en la tienda oficial,
el recomendado para aprender Arduino es el modelo Arduino UNO.

Se trata del buque insignia de la marca, el más famoso y el más vendido.


Muchos otros modelos se han construido a partir de este.

Pero lo realmente increíble de Arduino, es que una vez que te inicias


con una placa, es muy sencillo utilizar otros modelos de placa e
incluso de otras marcas.

Cuando hablo de placas, lo realmente importante y sobre lo que todo


gira es el microcontrolador que tienen integradas esas placas.

¿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.

Pero qué es un microcontrolador. Lo primero es identificarlo dentro de


la placa. Si miras un Arduino de cerca, verás una cucaracha o pastilla
negra donde pone ATMEL. Eso es el microcontrolador.

Los microcontroladores también se llaman MCU por sus siglas en


inglés Microcontroller Unit. Diariamente utilizamos decenas de ellos en
dispositivos electrónicos, electrodomésticos, coches, ordenadores,
móviles, etc…

Pero ¿qué es una MCU o microcontrolador?. Es un circuito


integrado programable, capaz de ejecutar las órdenes que están
almacenadas en su memoria. Ojo a esto, circuito integrado progamable.
Esto quiere decir que lo podemos programar :)

Pero también existen los microprocesadores. Son los


típicos procesadores que encontramos en los ordenadores por
ejemplo. Existe una diferencia principal entre una MCU o
microcontrolador y un microprocesador, su utilidad.

Una MCU tiene como objetivo una tarea concreta. Por ejemplo, cerrar
las puertas de un ascensor, captar la temperatura de un sensor, etc..

Sin embargo, un microprocesador es de propósito general. Puede


hacer varias cosas a la vez. Recopilar información de los datos, enviar
por email, mostrar en una pantalla, etc…

Un claro exponente de un dispositivo que lleva un microprocesador es


una Raspberry Pi.

Utilizar uno u otro dependerá del objetivo de nuestro proyecto.

Concepto de placa de prototipado


Una vez que ya sabemos qué es un microcontrolador ¿qué hace
Arduino para facilitarnos el conexionado y la programación en un
microcontrolador? Para ello vamos a sacarlo de la placa.

Su nombre completo es ATMEGA328P-PU y es un microcontrolador


de 8-bit. Esto quiere decir que solo puede hacer operaciones con
números de 8-bit (números entre 0 y 255).

Ahora imagínate que tuvieras que programar este circuito integrado o


chip, ¿cómo lo conectas al ordenador? ¿cuáles son los pines digitales
y analógicos? ¿donde está el pin de 5V y el de GND?

Toda esta información la podemos obtener de su hoja de


características técnicas.

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.

Todo lo que rodea a la placa de Arduino está pensado para


facilitarnos la programación y conexión con el microcontrolador.

La huella o forma en la que están dispuestos los pines, la conexión serie


USB para programar y alimentar, el alimentador de baterías o
pilas, cada componente está puesto en su sitio para que todo sea
más fácil para nosotros.

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.

Imagino que ya te habrás dado cuenta lo que nos facilita la tarea de


cargar los programas a través del puerto USB desde cualquier
ordenador.
Pero no solo sirve para cargar los programas, también nos sirve para
alimentar la placa con 5V. Se alimenta así sobre todo cuando lo estás
programando.

Pines de Arduino UNO


¿Recuerdas el microcontrolador ATMEGA328P? Este circuito integrado
tiene unas patillas o patas. A esto le denominamos pines.

En el lado de la placa de Arduino, estos pines tienen un acceso muy


fácil para poder conectar diferentes componentes. Pero no son más que
plástico, contactos y cables que se conectan con las patillas
correspondientes del microcontrolador.

Su función es facilitarnos su uso. Pero ¿qué podemos conectar a


estos pines? Bueno, pues podemos conectar otros circuitos
compatibles con cada uno de los pines. Vamos a ver los 3 zócalos que
nos vamos a encontrar en Arduino UNO.

Pines digitales
Es el zócalo más grande. Tiene 14 pines numerados del 0 al 13.

¿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.

Si esto lo llevamos al mundo de la electrónica a través de un voltaje,


solo podríamos tener dos voltajes. Esto es lo que ocurre en los pines
digitales de Arduino donde solo podemos tener dos estados HIGH o
LOW que equivalen a 5V y 0V.

En realidad esto no es cierto totalmente. Podríamos tener un voltaje de


3V por ejemplo. Para estos casos hay una regla interna que determina
si un voltaje es HIGH o LOW.
Estos son los niveles lógicos del
microcontrolador ATMega328. Todo lo que esté entre 3V y 5V se
considera nivel alto (HIGH) y todo lo que esté entre 0V y 1,5V es nivel
bajo (LOW). El resto, entre 1,5V y 3V es una indeterminación.

Esto quiere decir que cualquier voltaje dentro de este rango, el


microcontrolador no sabrá si es estado HIGH o LOW.

Además, los pines digitales pueden funcionar en 3 modos diferentes:

 Modo entrada (INPUT): puede leer voltajes. Por ejemplo, ¿está


pulsado un botón? si (HIGH) o no (LOW).
 Modo salida (OUTPUT): puede suministrar un voltaje. Por ejemplo,
encender/apagar un led on (HIGH) o off (LOW).
 Excepción (PWM): algunos pines del microcontrolador pueden
funcionar en modo salida suministrando un valor entre el rango 0V
y 5V. Esto ya no sería un pin digital. Estos pines van marcados con
el símbolo ~ y hay 6 dentro de la placa de Arduino (3, 5, 6, 9, 10,
11).

Por último señalar que los pines 0 y 1 son Rx (recibir) y Tx


(transmitir). Se utilizan para la comunicación serie entre el ordenador
y Arduino y están conectados a los LEDs de la placa donde pone RX y
TX. Se recomienda no utilizar estos pines.

El pin 13 es el de la mala suerte dentro de Arduino UNO según cuenta


la historia …. :), es broma. Este pin está conectado a un LED integrado
dentro de la placa.

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

Es el zócalo donde pone ANALOG IN y van numerados del A0 al A5, 6


pines.

¿Recuerdas al pintor que solo podía pintar con dos colores, blanco o
negro? Pues en el mundo analógico tenemos una amplia gama de
colores, ahora podemos pintar con diferentes tonos de gris.

Si nos llevamos esto al mundo de la electrónica con Arduino, con estos


pines podemos medir diferentes voltajes entre 0V y 5V. Es decir,
podemos tener un voltaje de 3,5V en uno de estos pines y Arduino sería
capaz de leerlo.

Sin embargo, existe un problema. El microcontrolador no entiende


de números decimales, sólo entiende datos digitales 1’s y 0’s. Par
resolver esto, la MCU incorpora un ADC (son las siglas de Analog
Digital Converter o en español Conversor Analógico Digital).

Por otro lado, Arduino no es capaz de medir cualquier voltaje, me


explico. ¿Cuántos números hay entre 0 y 5?….. realmente hay infinitos
números. Puedes empezar con el 0 e ir aumentando de 0,000001 o en
0,00000000000001.

La consecuencia de todo esto es que Arduino solo entiende datos


digitales y además estos deben estar acotados. El ADC se
encargará de convertir esos valores en datos digitales y además solo
podrán ser un número concreto de valores. A esto último se le llama
resolución.

El ADC que viene integrado dentro de la MCU que lleva Arduino


UNO tiene una resolución de 10-bit. Esto equivale a que solo vamos
a poder medir 1024 valores posibles que van del 0 al 1023. Básicamente
lo que estamos haciendo es dividir el rango de 0V a 5V en 1024 partes.

Pines de alimentación

El zócalo de pines de alimentación nos sirve para alimentar los


componentes, sensores y actuadores.

Hay que destacar 4 de todos los que hay:

 3,3V: suministra ese voltaje por ese pin.


 5V: suministra ese voltaje por ese pin.
 GND: hay dos pines con esta función además del que está en el
zócalo de los pines digitales. Es la toma de tierra y por donde
debemos cerrar el circuito.

Otras características a destacar

Por último vamos a ver una serie de características secundarias que es


importante destacar.

La huella que forman los pines se ha convertido en un estándar para


conectar los shields.

El botón reset resetea la placa y hace que empiece a ejecutar el código


desde el principio.
El LED de encendido nos informa si la placa está alimentada.

El pin Vin nos da otra alternativa a la hora de alimentar Arduino con un


voltaje de entre 6V y 12V. De momento te recomiendo que lo alimentes
a través del puerto USB.
Concector jack de alimentación. Es igual que el pin Vin pero a través de
un conector jack. El voltaje de alimentación que soporta es de 6V a 12V.

#5 Cadena de herramientas de Arduino (Toolchain)


En esta el último apartado del software y hardware dentro del curso
de Arduino te voy a hablar del toolchain o caja de herramientas.

Básicamente son los procesos y herramientas que están por


detrás y que hacen que cuando tu des al botón de subir programa, este
se compile y se cargue en el microcontrolador.
Como ya te he dicho a lo largo de este curso de Arduino, no voy a entrar
en detalle. Solo te daré los conceptos básicos para que entiendas que
sucede entre bambalinas dentro de Arduino.

¿Qué es una cadena de herramientas o Toolchain?


Vamos a empezar con un ejemplo. Imagínate que eres un escritor de
novela negra. Tu editor quiere que saques el siguiente best seller de la
saga en la que estás inmerso los últimos años. Te pones manos a la
obra y empiezas a escribir.

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:

1. Escribir el libro: el escritor escribe un manuscrito en cualquier


procesador de textos.
2. Edición del libro: el editor busca cualquier error en ese manuscrito.
3. Imprenta: a la imprenta le enviamos un documento en Word u otro
procesador de texto. Sin embargo, la impresora no entiende ese
formato. En esta fase se traduce tu libro al idioma de las
impresoras.
4. Impresora: una vez que tiene tu libro en el idioma de las
impresoras, ya es capaz de imprimirlo. Al final de este proceso se
tiene un libro.

Este ejemplo se puede considerar el toolchain o cadena de


herramientas para escribir un libro. No es más que una serie de
herramientas de software que trabajando juntas consigue alcanzar un
objetivo. En este caso el objetivo es publicar un libro.

¿Qué tiene que ver escribir un libro con la cadena de herramientas de


Arduino? Como verás a continuación, es un ejemplo perfecto de la vida
real donde se utiliza un toolchain o cadena de herramientas.

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.

Veamos cuales son esas 3 fases.

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.

Es como cuando escribes el libro. Necesitas una herramienta como un


ordenador y el procesador de textos o una máquina de escribir (ya
extinguidas).

Para nosotros el IDE hace la misma función. La diferencia es que en


vez de utilizar el idioma español, inglés o francés, vamos a utilizar
el lenguaje que entiende el microcontrolador(más bien el
compilador), el lenguaje C++.
Este lenguaje se llama de alto nivel ya que se entiende
perfectamente por los seres humanos. Sólo tienes que tener ciertos
conocimientos en inglés.

El IDE hará la función del procesador de textos. Muestra información


sobre errores y aporta ayudas a la hora de programar.

El gran inconveniente es que el microcontrolador no entiende este


lenguaje pensado para los seres humanos. El microcontrolador solo
entiende el lenguaje máquina así que necesitamos de un traductor.

Aquí es donde entra en juego el compilador.

El compilador

El compilador cogerá el código en C++ que has escrito en el IDE de


Arduino y lo convertirá en código máquina para que lo entienda el
microcontrolador. El que utiliza Arduino se llama AVR-GCC.
Se puede decir que es como el editor en la cadena de herramientas
para publicar un libro. Reordena el código y busca errores. Eso sí,
como encuentre un simple error te tira para atrás el trabajo y no te deja
continuar.

Como salida del compilador obtenemos un archivo hexadecimal,


con extensión .hex, en código máquina. Ahora ya si que el
microcontrolador entiende lo que le estamos diciendo.

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.

El AVRdude es un programa que hace esta tarea. Coge el archivo


hexadecimal en código máquina y lo carga microcontrolador a
través del puerto USB. Esto ha mejorado mucho gracias a Arduino.

Antiguamente se necesitaba un hardware externo para esta tarea. Por


ejemplo los programadores PIC. Yo esta etapa me la perdí así que no
puedo opinar mucho. Sin embargo si que aprecio la facilidad de
aprender Arduino.
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.

El AVRdude con el Bootloader se encargan de coger el archivo


hexadecimal en código máquina y cargarlo en la memoria Flash del
microcontrolador consiguiendo así el objetivo de la cadena de
herramientas de Arduino.

Con esto habríamos terminado la parte de introducción del software y


hardware dentro del curso de Arduino. Ahora ya estaríamos preparados
para empezar a programar. Es lo que vamos a ver a continuación, los
fundamentos de la programación con Arduino.

Fundamentos de la programación con


Arduino
Normalmente en la formación que doy a través de cursos presenciales,
cursos online o como en este curso de Arduino, siempre hago hincapié
en el concepto de progresión contra perfección. Vuelvo a
repetir: debes evitar el síndrome de parálisis por análisis.

Cuando intentas aprender Arduino u otra tecnología relacionada con


la programación o la electrónica, hay mucho que aprender. Siempre
hay algo nuevo que probar, un nuevo concepto, placas, frameworks o
software.

En el mundo tecnológico siempre hay una sensación de incertidumbre


y debes aprender a vivir con ello. Hay una premisa que debes aplicar
cuando estás haciendo un curso de Arduino.
Tienes que estar dispuesto a asumir que aunque no entiendas lo que
estás haciendo, debes continuar hacia tu objetivo.

Debes ser capaz de avanzar, no quedar estancado en algún concepto.


Da lo mismo que no lo entiendas, lo importante es seguir adelante.

Verás como con el tiempo, eso que no entendías lo verás más claro
desde otra perspectiva.

Como siempre digo: ¡¡¡ HAY QUE PONERSE EN ACCIÓN !!!

#1 La sintaxis de la programación con Arduino


En este curso de Arduino, al igual que en cualquier otro, me gusta
mucho poner analogías para que todo el mundo lo pueda entender. Es
una forma de explicar algo con palabras corrientes para que puedas
aprender Arduino.

Al contrario de lo que pueda parecer, existe una estrecha relación entre


la gramática y la puntuación de un idioma y la sintaxis de la
programación.

Me gusta decir que si sabes leer y escribir, sabes programar.


Seguramente estés familiarizado con la puntuación y la gramática.
Sabrás qué es un punto, una coma, guiones, tildes o punto y coma.

Además de todo esto, un idioma tiene formas verbales, sustantivos y


todo tipo de gramática.

El objetivo de la puntuación y la gramática es que las personas se


puedan comunicar a través de la palabra escrita. Utilizamos la coma
para hacer una pausa, un punto para finalizar una oración y la negrita
para hacer énfasis.

En los lenguajes de programación se requiere de una sintaxis para


comunicarnos con el compilador. Lo mismo ocurre con un idioma, los
signos de puntuación y la gramática son esenciales para entenderse.

El compilador leerá ese código y lo traducirá a código máquina para que


lo entienda el microcontrolador.

Podemos decir que el compilador será tu profesor de lengua del


instituto. La diferencia es que este profesor es el más exigente que
hayas conocido ya que siempre requiere un 10 en tus programas :).
No te va a dejar pasar ni una. No es como escribir un email a un amigo
donde da lo mismo si pones un punto de más o no pones un acento. El
compilador siempre exigirá que tengas todo perfecto.

No te preocupes si al principio te cuesta, es normal. Poco a poco irás


entendiendo que te está diciendo el compilador y donde están los
errores. Te aseguro que si pones interés, se convertirá en tu
segunda lengua después de la materna.

Ahora vamos a ir viendo las particularidades más importantes dentro de


la sintaxis de la programación con Arduino.

Comentarios en un programa de Arduino


Los comentarios no son más que notas que el programador va
dejando dentro del código. Te ayuda a comprender parte de ese
código.

Un aviso importante. No se trata de hacer un informe completo sobre lo


que hace algo del código, se trata de poner algo descriptivo para ayudar
a entenderlo.

Es una parte fundamental cuando estamos escribiendo un programa


para Arduino. Sin embargo, no se compila es decir, no se traduce al
código máquina. Cada vez que el compilador encuentra un
comentario, se salta esa línea.

Hay dos formas de escribir un comentario.

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.
En la consola nos da todavía más información. Nos indica el
archivo donde se ha producido el error (sketch_may29a puede que tu tengas otro
nombre) y la línea donde se ha producido 4.
ejercicios propuestos.

Pero no solo eso, dentro del Campus podrás aprender


Arduino orientado a temas como el IoT con Arduino
MKR100 y NodeMCU. Es un área que me apasiona y que tiene mucho
potencial tanto en el presente como en el futuro.

Cualquier aclaración, cualquier consulta o cualquier duda por favor


déjalo abajo en los comentarios. Estaré encantado de ayudarte :)

https://programarfacil.com/blog/arduino-blog/curso-de-arduino/

También podría gustarte