Arduino Leonardo: todo lo que necesitas saber sobre la placa de desarrollo

Arduino tiene varias placas, varios sabores con los que satisfacer diferentes necesidades. Una de las placas de desarrollo más conocidas, junto con la Arduino UNO, es la Arduino Leonardo. Esta placa con microcontrolador programable esconde una de las características más potentes de la línea de placas si se compara con alguna de sus hermanas.

Por supuesto, esta placa oficial de la Arduino Foundation es compatible con todos los componentes electrónicos que vamos mostrando en otros posts. Así tendrás libertad para combinar la placa Leonardo con multitud de componentes para crear los proyectos más variados que puedas imaginar.

¿Qué es Arduino Leonardo?

Esta placa Arduino Leonardo guarda grandes similitudes con la Uno, incluso en el aspecto. Pero no las debes confundir, ya que hay diferencias notables entre ambas…

Características técnicas, esquema y pinout

Arduino Leonardo Pinout

Una de las principales características que deberías conocer sobre Arduino Leonardo es su pinout, es decir, los pines o conexiones de los que dispone. Como ves en la imagen superior, no es igual que la placa UNO Rev3. Hay algunas diferencias entre la cantidad, límites, y buses.

Por otro lado, también debes conocer sus características técnicas, que se resumen en:

  • Microcontrolador: Atmel ATmega32u4 a 16 Mhz.
  • Memoria SRAM: 2.5 KB
  • EEPROM: 1 KB
  • Flash: 32 KB, pero hay que restarle 4 KB usados para el bootloader.
  • Voltaje de operación: 5v
  • Voltaje de entrada (recomendado): 7-12v
  • Voltaje de entrada (limite máximo): 6-20v
  • Pines E/S digitales: 20, de los cuales 7 son PWM.
  • Pines de entradas analógicas: 12 canales.
  • Intensidad de corriente por pin E/S: 40mA
  • Intensidad de corriente para el pin 3.3v: 50mA
  • Peso y dimensiones: 68.6×53.3mm y 20 gramos.
  • Precio: 18 - 20€ aproximadamente. Puedes comprarlo en Amazon.

Datasheets

Como suele ocurrir con las placas oficiales de Arduino, existen gran cantidad de esquemas, datos y documentación al respecto, incluso para poder crear una placa derivada de ésta al ser open-source. Desde la web oficial del proyecto, podrás encontrar mucha información para descargar sobre Arduino Leonardo y así conocer mejor el funcionamiento de la misma. Por ejemplo:

Diferencias con otras placas Arduino

Placas de Arduino

Lo ideal es compararla con la placa más similar, y esa es Arduino UNO Rev3. Si comparas Arduino Leonardo con UNO, se pueden apreciar muchas similitudes, pero también diferencias que son vitales si tienes dudas entre comprar una u otra.

Físicamente parece tener las mismas dimensiones y misma cantidad de pines. Además, están dispuestos de la misma forma. La alimentación también es la misma, e incluso la frecuencia que aporta el generador de frecuencia. También las A0-A5 se podrían configurar como digitales con la función pinMode(nºpin, modo). ¿Dónde está la diferencia entonces?

Bien, una de las principales diferencias entre ambas placas de desarrollo está en el microcontrolador. Mientras UNO está basada en ATmega328, Arduino Leonardo está basada en ATmega32u4 en sus revisiones más recientes. En el caso del ATmega328, no cuenta con comunicación USB integrada, por lo que para ese puerto serial se necesita un convertidor. Función que hace el circuito integrado ATmega16u2.

En el caso del ATmega32u4, sí que cuenta con esa comunicación USB ya implementada, por lo que no es necesario ese segundo chip. Eso, a nivel práctico de usuario genera una diferencia. Cuando conectas la placa Arduino UNO, un puerto virtual COM es asignado para la comunicación. Mientras que en Leonardo la placa es reconocida por el ordenador como si fuese un dispositivo USB como un ratón o teclado. Eso da la posibilidad de usar funciones de ratón y telcado.

Por supuesto, al tener otro MCU, también varían algunos datos de la memoria. De los 32 KB flash de Arduino UNO con 0.5 KB reservados al bootloader se pasa a los 32 KB y 4KB usados por el bootleader en Leonardo. Para la SRAM se sube de los 2 KB a 2.5 KB y para la EPROM se mantiene igual en ambos.

Otra de las diferencias radica en los canales de las entradas analógicas. Mientras en Arduino UNO se cuenta solo con 6 canales, en el Arduino Leonardo se cuenta con 12 canales. Eso es para A0-A5, y para los pines 4, 6, 8, 9, 10 y 12 que se corresponderían con los canales A6-A11.

En cuanto a PWM, Leonardo tiene una más que UNO. Además de las mismas de UNO, se agrega otra en el pin 13. El resto será igual para ambas tarjetas, es decir, estará en los pines 3, 5, 6, 9, 10 y 11.

Más diferencias las encontrarás en la comunicación I2C. Ambas pueden usar TWI, pero la diferencia es dónde se colocan los pines destinados a la línea de datos seriales o SDA y la de reloj o SCL. En UNO están en los pines A4 y A5. Pero en Leonardo los tienes en 2 y 3 respectivamente. Leve diferencia, pero suficiente para que los sombreros o escudos (shields) de UNO no sean compatibles en su totalidad con Leonardo.

En cuanto a la comunicación SPI, en la Arduino UNO tienes los pines 10, 11, 12, y 13, para las señales SS, MOSI, MISO y SCK respectivamente. Eso no es así en la Leonardo, ya que tiene un conector específico ICSP, un conector macho con 6 pines cerca de uno de los extremos de la tarjeta. Otro de los motivos que podría hacer que los shields de UNO no le valgan…

Para las interrupciones externas también existen algunos cambios. En UNO tiene dos pines para ello, el pin 2 (interrupción 0) y pin 3 (interrupción 1). En el caso de Arduino Leoanrdo se extienden a 5 pines. Son los pin 3, 2, 0, 1, y 7 para la interrupción 0, 1, 2, 3, y 4 respectivamente.

También existe otro cambio entre ambas placas que muchos suelen olvidar, y es el tipo de cable USB necesario para conectar ambas placas al PC. Mientras en UNO se usa un cable A-B, en Leonardo hace falta un A-microB.

Resumiendo, en la siguiente tabla de diferencias puedes ver más detalles:

 RESUMEN DE LAS DIFERENCIAS ARDUINO UNO vs. ARDUINO LEONARDO

UNO

Leonardo

MCU

ATmega328

ATmega32u4

Entradas analógicas

A0, A1, A2, A3, A4, A5

A0, A1, A2, A3, A4, A5, 4, 6, 8, 9, 10, 12

Salidas de PWM

3, 5, 6, 9, 10, 11

3, 5, 6, 9, 10, 11, 13

Comunicación I2C

A4, A5

2, 3

Comunicación SPI

10, 11, 12, 13

Conector ICSP

Interrupciones externas

2, 3

3, 2, 0, 1, 7
Memoria Flash

32 KB

(0.5 KB para el bootloader)

32 KB

(4 KB para el bootloader)

SRAM

2 KB

2.5 KB

EEPROM

1 KB

1 KB

Arduino IDE y la programación para Leonardo

Captura de pantalla de Arduino IDE

Para programar Arduino Leonardo, como ocurre con el resto de placas Arduino, lo puedes hacer desde diferentes plataformas como macOS, Windows y Linux. Eso es gracias a que su entorno de desarrollo Arduino IDE está disponible para esas plataformas.

Para más información sobre la programación para comenzar con esta placa, te aconsejo que descargues nuestro curso gratuito en PDF para Arduino IDE. Lo cierto es que Leonardo no tiene mayor misterio para comenzar a crear sketches. Tan solo debes tener en cuenta las diferencias para las conexiones y seleccionar en el menú de Arduino IDE la placa correcta para cargar el programa.

Es decir, abrir Arduino IDE, ir a Herramientas > Placas > Seleccionar Leonardo… y comenzar a disfrutar de los proyectos que crees por tu cuenta o los que hemos ido publicando en Hwlibre.com. Repito, el lenguaje y códigos serán los mismos, lo único que debes prestar atención es a esas variaciones que he citado en los pines E/S y sus funciones…


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.