¿Cuál es la diferencia entre Arduino UNO y Arduino Leonardo?

Las tarjetas Arduino UNO y Arduino Leonardo, son tarjetas de desarrollo basadas en microcontroladores de Atmel. Físicamente, las dos tarjetas pueden parecer muy semejantes. Tiene las mismas dimensiones y la misma cantidad de pines, dispuestos de la misma forma. Las características de alimentación también son las mismas: voltaje de entrada recomendado de 7 a 12 V, como límite inferior 6 V y como superior 20 V. El voltaje de operación es de 5 V. La frecuencia del resonador cerámico también es la misma, 16 MHz.


Ambas tarjetas cuentan con 20 pines que pueden ser configurados como entradas o salidas analógicas. En la mayoría de los sitios de internet se indica que la tarjeta Arduino UNO cuenta con 14 pines digitales para ser usados como entradas o salidas, esto no incluye los seis pines indicados como entradas analógicas, los cuales pueden ser configurados, también, como entradas o salidas digitales. Esto da un total de 20 pines que pueden usarse como entradas o salidas digitales en la tarjeta Arduino UNO, al igual que en la tarjeta Leonardo. En el caso de ambas tarjetas, los pines del A0 al A5 pueden configurarse como digitales empleando la función pinMode(número de pin, modo), al colocar en el argumento correspondiente al número de pin A0 o 14, A1 o 15, A2 o 16, etc.

Nota: En la sección de Resumen (en inglés Summary) de la página de la tarjeta Arduino UNO, en la página de Arduino.org, se indica que la tarjeta Arduino UNO efectivamente cuenta con 20 pines que pueden ser configurados como entradas o salidas analógicas.

Una vez aclarado lo anterior, es momento de mencionar las principales diferencias que existen entre las dos tarjetas. La principal diferencia es el microcontrolador en que está basada cada una de ellas. Por un lado, la tarjeta Arduino UNO esta basada en el ATmega328. Este microcontrolador no tiene comunicación USB integrada, por lo que la tarjeta requiere un convertidor USB a Serial. Esta función es realizada por un ATmega16u2, un microcontrolador adicional programado para realizar la conversión. Por otra parte, la tarjeta Arduino Leonardo esta basada en un microcontrolado ATmega32u4 que cuenta con comunicación USB integrada. Lo anterior ocasiona que al conectar una tarjeta Arduino UNO, un puerto virtual COM es asignado para la comunicación. Al conectar la tarjeta Leonardo a una computadora, ésta es reconocida como un teclado o ratón, lo que da la posibilidad de emplear funciones Keyboard o Mouse.

Entradas analógicas y salidas de PWM
Otras de las diferencias que surgen como consecuencia del microcontrolador en el que están basadas las dos tarjetas es la cantidad de pines que pueden ser configurados como entradas analógicas y salidas de PWM. La tarjeta Arduino UNO cuenta con 6 canales de entrada analógica, en los pines del A0 al A5. La tarjeta Arduino Leonardo cuenta con 12 canales de entrada analógica, los pines del A0 al A5, y los pines 4, 6, 8, 9, 10 y 12, que corresponden a los canales del A6 al A11. La tarjeta Arduino Leonardo cuenta con una salida de PWM mas que la tarjeta UNO, ubicada en el pin 13. El resto de las salidas de PWM se ubican en los mismos pines en ambas tarjetas. Estos pines son el 3, 5, 6, 9, 10 y 11.

Comunicación I2C
Las dos tarjetas pueden emplear comunicación TWI. Esta abreviación proviene de la expresión en inglés Two Wire Interface, que significa interfaz de dos cables. La comunicación TWI también es conocida como I2C, abreviación de Inter-Integrated Circuit, que puede traducirse del inglés al español como comunicación entre circuitos integrados. La diferencia entre las dos tarjetas en que pines se coloca la línea de datos seriales, conocida como SDA, y la línea de reloj, conocida como SCL. En el caso de la tarjeta Arduino UNO, los pines para SDA y SCL se encuentran respectivamente en los pines A4 y A5. El el caso de la Tarjeta Arduino Leonardo, el pin para SDA es el pin 2, y el pin para SCL es el pin 3. Esta diferencia ocasiona que algunos de los Shields no sean compatibles con ambas tarjetas, o que requieran de alguna modificación para poder usarse correctamente. La mayoría de los Shields están diseñados para la tarjeta Arduino UNO, por lo que en general las modificaciones tendrán que realizarse para la tarjeta Leonardo. En ocaciones también los códigos de ejemplo para comenzar a usar los Shields también requieren ser modificados para trabajar con una tarjeta o la otra.

Comunicación SPI
Otro protocolo de comunicación empleado por las tarjetas UNO y Leonardo es el SPI. Esta abreviatura se refiere a la expresión en inglés Serial Peripheral Interface, que puede traducirse como Interfaz Serial Periférica. La comunicación serial con este protocolo se realiza, en la Tarjeta UNO, por los pines 10, 11, 12, 13, empleados para las líneas SS, MOSI, MISO, SCK, respectivamente. En cuanto a la tarjeta Leonardo, los pines destinados para comunicación SPI se encuentran en el conector ICSP, que es el conector macho de seis pines ubicado cerca de uno de los extremos de la tarjeta. Si se emplea un Shield que utilice este protocolo de comunicación y dicho Shield no cuenta con un conector de seis pines para ICSP, el Shield no funcionará.

Pines para interrupciones externas
La tarjeta Arduino UNO cuenta con dos pines para interrupciones externas. El pin 2 para la interrupción 0, y el pin 3 para la interrupción 1. La tarjeta Arduino Leonardo cuenta con cinco pines para interrupciones externas. El pin 3 para la interrupción 0, el pin 2 para la interrupción 1, el pin 0 para la interrupción 2, el pin 1 para la interrupción 4, y el pin 7 para la interrupción 4.

Memoria
En cuanto a la memoria de cada microcontrolador, se tiene la siguiente información. El ATmega328, que es el microcontrolador de la tarjeta UNO, tiene 32 KB de memoria Flash, de los cuales 0.5 KB son usados para el bootloader. También cuenta con 2 KB de SRAM y 1 KB de EEPROM. En el caso de la tarjeta Leonardo, que utiliza un ATmega32u4, se tiene 32 KB de memoria Flash, de los cuales 4 KB son usados para el bootloader. Cuenta también con 2.5 KB de SRAM y 1 KB de EEPROM.

Tipo de cable para conectar a la computadora
Otra de las diferencias que es importante tomar en cuenta cuando se va a adquirir una tarjeta UNO o Leonardo es el cable USB que se requiere para conectarlas a la computadora. En el caso de la tarjeta UNO se requiere un cable A - B, como el que utilizan la mayoría de las impresoras actualmente. La tarjeta Leonardo requiere un cable A - micro B, como el que se utiliza para la mayoría de los celulares actualmente.

 Resumen de diferencias:

 

Arduino UNO

Arduino Leonardo

Microcontrolador

ATmega328

ATmega32u4

Entradas analógicas

6 entradas:

A0, A1, A2, A3, A4, A5

12 entradas:

A0, A1, A2, A3, A4, A5,

4, 6, 8, 9, 10, 12

Salidas de PWM

6 salidas:

3, 5, 6, 9, 10, 11

7 salidas:

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

Comunicación I2C

SDA: A4, SCL: A5

SDA: 2, SCL: 3

Comunicación SPI

SS: 10, MOSI: 11, MISO: 12, SCK: 13

En el conector ICSP

Interrupciones externas

Interrupción 0: 2

Interrupción 1: 3

Interrupción 0: 3

Interrupción 1: 2

Interrupción 2: 0

Interrupción 3: 1

Interrupción 4: 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

 

Marcel Díaz

Comentarios

Marcel Díaz

entonces si en lugar de usar una arduino uno uso ua arduino leonardo, habría algún problema?

Marcel Díaz

¡Gran aporte! Razonables argumentos. Manten este espiritu es un blog sincero. Tengo que leer màs blogs como este.

Saludos

terminado piezas madrid http://www.fiberlasercastilla.com/servicio/terminado-piezas.html

Marcel Díaz

Tengo un arduino leonardo y se le despego el puerto usb , pense en soldarlo ,pero lo veo imposible debido a su micro tamaño, como puedo hacer la conexion a la compu para programar el pic a parte del usb, noentendi muy bien perola interface spi de 6 pines podria ser la solucion?

Dejar un comentario