Si eres nuevo en Arduino o estás aprendiendo, tarde o temprano te encontrarás el término Arduino Shield.
En este artículo y tutorial encontrarás todas las claves para saber qué es un Arduino Shield, por qué son útiles y descubrirás EchidnaShield, un Arduino Shield para educación.
Así que vamos a empezar este tutorial y no te olvides también de escuchar el podcast asociado donde entrevisto a los creadores de EchidnaShield, el Arduino Shield para educación.

Indice de contenidos
¿Qué es un Arduino Shield?
Arduino por sí solo es bastante interesante, puedes hacer muchas cosas solo con un Arduino.
Pero cuando quieres comenzar a agregar otro tipo de tecnologías como bluetooth, WiFi, RF, controladores de motor, medir parámetros medioambientales, etc… puede ser bastante complicado.
A la complejidad de la programación se añade la complejidad en la electrónica.
En muchas ocasiones puedes sentirte abrumado por tantas cosas que hay que aprender.
Con respecto a la programación, se suelen utilizar librerías que aportan funcionalidades extra y además, nos ahorran muchas horas escribiendo código.
A nivel de hardware existe el Arduino Shield. Es como una librería pero en hardware.

En español se puede traducir como escudo de Arduino aunque suena bastante mal. Prefiero referirme a este componente como Arduino Shield.
Un Arduino Shield ahorra mucho tiempo conectando y desconectando componentes de la placa. Sobre todo lo veo útil cuando estás aprendiendo programación.
Por ejemplo, si quieres hacer un ejercicio con las sentencias condicionales if de Arduino y unos LEDS, puede que tardes más tiempo en buscar los componentes (LEDs y resistencias) que en programar todas las instrucciones.
En este caso, un Arduino Shield como EchidnaShield puede ser muy útil.
Asociado a cada Arduino Shield suele venir una librería de Arduino. Esto te permite acceder a las funciones de hardware fácilmente.
Puedes ver un ejemplo con el Arduino Shield Adafruit Motor Shield.
Hay un Arduino Shield para todo tipo de cosas: Shield con pantalla LCD, Shield de matrices de LED, Shield Ethernet para conectarse a Internet, Shield WiFi, Shield con relés vamos, prácticamente para cualquier cosa.
Incluso tú mismo puedes fabricarte tu propio Arduino Shield. Tampoco tienes que ser un experto en electrónica pero si que conocer la materia.
Más adelante veremos el ejemplo de EchidnaShield.
Muchos de los Arduino Shield son apilables es decir, puedes poner uno encima del otro. Esto aumenta las funcionalidades de la placa de Arduino.

Por ejemplo, si pones un Arduino Shield para controlar motores y otro ethernet, podrías controlar los motores desde una página web.
Pero ¿todos los Arduino Shield son compatibles con todas las placas de Arduino?
Factor forma de Arduino
El factor forma de un Arduino Shield viene dado por la placa electrónica Arduino.
Cada modelo tiene su propio factor forma. Y no es más que cómo están distribuidos los pines dentro de la placa.
Por ejemplo, el Arduino UNO tiene los pines digitales en una parte de la placa junto con los pines GND, AREF, SCL y SDA.
En el otro lado tiene los pines analógicos y los pines de alimentación.
A parte tiene los pines ICSP (del inglés In Chip Serial Programmer) que también forman parte del factor forma aunque muchos Arduino Shield no lo utilizan.

Por otro lado, el factor forma de un Arduino MEGA por ejemplo, es totalmente diferente. Son placas electrónicas que aunque se parecen, tienen capacidades muy distintas.
Lo mismo ocurre con las placas Arduino MKR o las placas basadas en el ESP8266. Cada una tiene su factor forma.
Normalmente cuando se habla de Arduino Shield, se refiere a la placa de Arduino UNO.
Un Arduino Shield tiene que tener el mismo factor forma que el Arduino donde se va a acoplar es decir, que coincidan perfectamente los pines.
Algunos Arduino Shield utilizan todos los pines de Arduino y otros solo utilizan unos pocos pines. Eso dependerá de cada caso concreto.
Pero todos el Arduino Shield tiene que encajar perfectamente en los pines del Arduino UNO.
La comunicación entre Arduino y el Arduino Shield puede ser por I2C, SPI, Serial, interrupciones o entradas analógicas.
Como he dicho antes, hay cientos de Arduino Shield y es imposible verlos todos. Hoy me quiero centrar en EchidnaShield, el Arduino Shield para la educación.
¿Qué es EchidnaShield?
EchidnaShield es un Arduino Shield destinado a la educación en especial a Primaria y Secundaria.
Cabe destacar que es un proyecto Open Source lo que quiere decir que está abierto a todo el mundo tanto para utilizarlo como para colaborar. Estoy seguro que los responsables estarán encantados de recibir cualquier ayuda :)
La idea detrás de EchidnaShield (como ocurre con casi todos los Arduino Shield) es facilitar la tarea de aprender a programar en los últimos cursos de Primaria y Secundaria.

Al estar todo integrado dentro del Arduino Shield, evita que los alumnos tengan que estar perdiendo conectando una y otra vez los mismos circuitos y a su vez, elimina el foco de errores que puede llegar a ser esto.
Por lo tanto, se consigue incrementar el tiempo dedicado al aprendizaje de la programación y a conocer cómo funcionan los componentes.
Está muy orientado a la utilización de la programación visual como Scratch o Snap!. Sin embargo, puede ser programado con el código nativo de Arduino C/C++.
Tiene diferentes sensores y actuadores. A continuación tienes la lista de componentes:
- Zumbador o Buzzer
- Joystick
- Control volumen
- Jack Audio
- LED RGB
- Sensor Luz
- Conectores para módulo Bluetooth
- 2 x pulsadores
- LED Rojo
- LED Naranja
- LED Verde
- Acelerómetro
El EchidnaShield puede funcionar de dos formas diferentes:
- Modo sensores: funciona como un Arduino Shield normal. Se puede programar con C/C++ o con un lenguaje visual.
- Modo Makey Makey: en este caso los sensores se convierten en conexiones tipo Makey Makey.
¿Qué es Makey Makey?
Para activar un modo u otro hay un selector que si lo pones en la izquierda se activa el modo sensores y en la derecha se activa el modo Makey Makey.

A continuación, vamos a ver los diferentes sensores para cada modo de funcionamiento.
Modo sensores
En el modo sensores se pueden utilizar diferentes sensores y actuadores. Cada uno de ellos está conectado a sus pines correspondientes.

Estas son las entradas y salidas disponibles en este modo:
Componente | Pin | Tipo |
Zumbador o Buzzer | D10 | Salida |
Joystick (x) | A0 | Entrada |
Joystick (y) | A1 | Entrada |
Control volumen | D10 | Salida |
Libre | D4 | Entrada/Salida |
Libre | D7 | Entrada/Salida |
Libre | D8 | Entrada/Salida |
Libre | A4 | Entrada |
Jack Audio | D10 | Salida |
LED RGB (R) | D9 | Salida |
LED RGB (G) | D5 | Salida |
LED RGB (B) | D6 | Salida |
Sensor luz | A5 | Entrada |
Pulsador | D2 | Entrada |
Pulsador | D3 | Entrada |
LED Rojo | D13 | Salida |
LED Naranja | D12 | Salida |
LED Verde | D11 | Salida |
Acelerómetro (x) | D2 | Entrada |
Acelerómetro (y) | D3 | Entrada |
Modo Makey Makey
En el modo Makey Makey están activas algunas entradas y salidas y además, las entradas específicas de Makey Makey.

Las conexiones Makey Makey que se pueden utilizar son las siguientes.

A parte también puedes utilizar las siguientes entradas y salidas:
Componente | Pin | Tipo |
Zumbador o Buzzer | D10 | Salida |
Control volumen | D10 | Salida |
Libre | D4 | Entrada/Salida |
Libre | D7 | Entrada/Salida |
Libre | D8 | Entrada/Salida |
Jack Audio | D10 | Salida |
LED RGB (R) | D6 | Salida |
LED RGB (G) | D5 | Salida |
LED RGB (B) | D6 | Salida |
LED Rojo | D13 | Salida |
LED Naranja | D12 | Salida |
LED Verde | D11 | Salida |
¿Quién está detrás EchidnaShield?

Seguro que te acuerdas de algún profesor de tu infancia. Ese que hacía que las horas pasaran volando y que cuando te querías dar cuenta, sonaba la sirena para el recreo.
Recuerdo que mi padre siempre me contaba la misma historia. Su profesor favorito era Don Anselmo al que apodaban el francotirador.
No se lo llamaban por haber estado en alguna guerra o pertenecer a los cuerpos de élite del ejército.
El apodo viene por la puntería que tenía al tirar el borrador de la pizarra a todo aquel que pillara distraído o hablando.
Los profesores que hay detrás del EchidnaShield no serán recordados por su puntería o por sus destrezas con el borrador o la tiza. Pero estoy seguro que muchos alumnos suyos los recordarán como su profesor favorito.
No cabe duda que detrás de este Arduino Shield hay mucho trabajo y horas invertidas.
Por eso quiero dar las gracias a Jorge Lobo, Xabier Rosas y José Pujol, 3 profesores que me hubiera encantado tener en el colegio o instituto.
Sin ellos este proyecto no hubiera visto la luz.
Jorge Lobo
Profesor pionero en la introducción de robótica educativa e impresión 3D en primaria.
Xabier Rosas
Profesor de Ciclos Formativos de electrónica, desarrollador del proyecto Escornabot.
José Pujol
Profesor de Tecnología. Trabaja con Programación y Robótica en Secundaria. Desarrollador de Kiwibot.
Caso práctico con el shield de Arduino EchidnaShield
En esta última sección voy a mostrar un caso práctico con el EchidnaShield.
Si me sigues de hace tiempo sabrás que soy bastante apasionado con todo lo que tiene que ver con el IoT.
Es complicado conectar un Arduino UNO a Internet para enviar y recibir datos a no ser que utilices un Arduino Shield Ethernet o WiFi.
Pero ese no es el objetivo de este tutorial. El objetivo es utilizar solo el EchidnaShield.
Una posible solución sin utilizar otro Arduino Shield es a través de la plataforma Blynk.
A continuación vas a ver paso a a paso cómo configurar el hardware y software para utilizar Arduino, EchidnaShield y la plataforma Blynk.
Material y circuito eléctrico
El material que vamos a utilizar para este caso práctico va a ser el siguiente:
El circuito es muy sencillo. El Arduino Shield EchidnaShield se conecta a la placa Arduino UNO y el servomotor se conecta al pin 4, a la alimentación 5V y GND.

Los pines donde he conectado el servomotor ya están preparados para que con un servo SG90 puedes conectarlo fácilmente. Dispone de la conexión a 5V, GND y datos.
Instalar librería Blynk
El siguiente paso es instalar la librería Blynk en el IDE de Arduino. Puedes hacerlo de múltiples formas.
La recomendada es a través del gestor de librerías. Abre la opción del menú que está en Programa>Incluir Librería>Administrar Bibliotecas.
En la nueva ventana que se abre busca por la palabra Blynk.

Instala la librería que pone Blynk by Volodymyr Shymanskyy.
Esto, como siempre, instala el código de la librería junto con los ejemplos. Pero a parte, instala otros archivos que luego veremos.
Ahora vamos a configurar la app Blynk.
Configuración app Blynk con Arduino Shield EchidnaShield
La app Blynk la puedes descargar tanto para Android como para iOS.
Una vez la tengas instalada, tendrás que darte de alta en la plataforma. Sigue los pasos que te indica la app.
En el siguiente vídeo te explico cómo puedes configurar el proyecto que vamos a utilizar en este ejemplo.
Cuando has finalizado la configuración, aparece en la parte de arriba que no tiene conexión. Eso es debido a que todavía no hemos cargado ningún código a la placa.
Código app Blynk de Arduino
Una vez que tenemos la app Blynk configurada, ya sólo hace falta programar el Arduino que tiene el Arduino Shield EchidnaShield.
En la app Blynk hemos configurado los pines de los 3 LEDs (rojo, naranja y verde) y el LED RGB con los pines para acceder a cada color.
También hemos configurado un pin virtual V0.
Todo eso se traduce en el siguiente código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
// Importar librerías #include <SoftwareSerial.h> #include <BlynkSimpleStream.h> #include <Servo.h> // Aquí tienes que poner el Auth Token que tendrás en el email o // que puedes obtener de la app char auth[] = "PON-AQUI-TU-AUTH-TOKEN"; // Objeto clase Servo y pin servo Servo myservo; byte pinServo = 4; void setup() { // Iniciar comunicación serie // No eliminar porque hace falta para comunicar con la nube de Blynk Serial.begin(9600); // Inicar clase Blynk.begin(Serial, auth); // Configurar pin del servo myservo.attach(pinServo); } // Función que se ejecuta cada vez que cambia un valor // en el pin virtual V0 BLYNK_WRITE(V0) { // Obtener el parámetro que se envía desde la app // se convirte en un int int pinData = param.asInt(); // Mover servo los grdos indicados myservo.write(pinData); } void loop() { // Compruebe llamadas desde la app Blynk.run(); } |
El código es bastante sencillo.
Lo primero que tienes que hacer es poner tu Auth Token el que aparece en la app Blynk y que te habrá llegado a través del email. Es en la línea 8.
En la parte de arriba del código se importan todas las librerías necesarias para este ejemplo práctico.
Necesitamos un objeto de la clase Servo que se llama myservo para mover el servomotor. También almacenamos en una variable el pin donde está conectado el servomotor, el pin 4.
En la función setup() iniciamos la comunicación serie con Serial.begin(9600).
No quites la línea de Serial.begin(9600) ya que en este ejercicio, la comunicación con la plataforma en la nube de Blynk se hace a través del puerto serie.
Para iniciar Blynk hay que llamar a la función Blynk.begin(Serial, auth) con dos parámetros.
La instancia a la clase Serial y el Auth Token.
Para finalizar esta función configura el servomotor llamando a la función myservo.attach(pinServo).
La siguiente función es una función callback que se llamará cada vez que cambie el pin virtual V0 que hemos configurado en la app Blynk como un slider.
Solo se ejecutará cuando desde la app se cambie el valor del slider. Como has visto en el vídeo, el valor puede ser de 0 a 180 que coincide con el valor del número de grados del servomotor conectado al Arduino Shield Echidna.
Este valor se obtiene de param, un parámetro que se pasa a la función. Para utilizarlo hay que pasarlo a un int y para ello se utiliza la función param.asInt().
Se utiliza el valor de ese parámetro para mover el servomotor con la función myservo.write(pinData).
Por último la función loop() sólo ejecuta una función, Blynk.run() que comprueba la comunicación entre el Arduino Shield EchidnaShield y la app Blynk.
Carga el código a la placa pero todavía no funcionará.
Sólo nos queda una cosa y es comunicar EchidnaShield y Arduino con la plataforma Blynk.
Configurar app Blynk a través del USB
Una de las ventajas de la plataforma Blynk es que puede funcionar a través de la red o a través de un puerto USB.
Este último caso requiere de que Arduino esté conectado a un ordenador ya sea Windows, Linux o Mac.
En cualquiera de estos 3 casos, el ordenador funcionará de pasarela (gateway) para comunicar el Arduino Shield Echidna con la plataforma en la nube Blynk.
Lo hace a través de un script que puedes encontrar dentro de la carpeta de la librería que se ha descargado al instalarla.
Normalmente la carpeta de la librería Blynk la encontrarás en documentos/Arduino/libraries/Blynk aunque dependerá de cada sistema operativo.

Ahora dependiendo el sistema operativo que utilices tendrás que hacer una cosa u otra.
En Windows
Abre una línea de comandos y entra en la carpeta de scripts de la librería Blynk. Debes utilizar el comando cd.
En mi caso sería algo así.
1 |
cd c:\Users\Luis\Documents\Arduino\libraries\Blynk\scripts |
En el tuyo deberás sustituir el usuario y comprobar donde está la carpeta Blynk.
Una vez dentro de la carpeta ejecuta el archivo blynk-ser-bat con los parámetros -c COM4. COM4 es el puerto donde está conectado el Arduino. Si es otro sustituyelo por el que corresponda.
El comando sería el siguiente.
1 |
blynk-ser.bat -c COM4 |
Obtendrás un resultado parecido a este.

Se quedará ahí esperando. Este mensaje indica que ha conectado con la plataforma en la nube de Blynk.
No cierres la línea de comandos ya que si lo haces, se perderá la comunicación con la plataforma en la nube y dejará de funcionar. Para salir de este modo, cierra la línea de comandos o pulsa CTRL + C.
Mientras esté en este modo con la línea de comandos, no podrás subir ningún código a la placa ya que la comunicación serie estará ocupada. Debes cerrar o cancelar este modo para subir un nuevo código a la placa.
Ahora ya podrías abrir la app Blynk y verás como puedes controlar los LEDs de colores, el LED RGB y el servomotor.
En Linux y Mac
En Linux y Mac es muy parecido a como se hace en Windows.
Abre un terminal y navega hasta la carpeta Scripts dentro de la carpeta de la librería Blynk.
1 |
cd User$/Documents/Arduino/libraries/Blynk/scripts |
No debes cerrar la ventana del terminal con el script en ejecución. Antes debes pararlo con CTRL + z
Una vez dentro, ejecuta el archivo blynk-ser.sh
1 |
user:scripts User$ ./blynk-ser.sh |
En algunos casos es posible que necesites realizar lo siguiente
1 |
user:scripts User$ chmod +x blynk-ser.sh |
También es posible que necesites ejecutarlo como root con sudo.
1 |
user:scripts User$ sudo ./blynk-ser.sh |
Prueba final Arduino Shield Echidna y app Blynk
Si todo ha ido correcto, ahora podrás controlar desde el móvil el Arduino Shield Echidna a través de la app Blynk.
Con esto doy por finalizado este tutorial. Cualquier duda o pregunta la puedes dejar en los comentarios de este artículo.
Agradecer de nuevo a Jorge, Xabier y a José por su colaboración en este podcast y artículo por ofrecernos su tiempo y trabajo de forma altruista.
Esta es la gasolina que mueve la movimiento Maker.