La primera pregunta que nos hacemos antes de comenzar un nuevo proyecto, o la primera vez que vamos a comenzar a utilizar Arduino es, ¿Qué modelo me compro?, la mejor forma de responder esta pregunta, es conocer las características para poder hacer una comparación entre las placas más comunes de Arduino: Arduino UNO, Arduino Leonardo, Arduino Mega 2560 y Arduino DUE.
La diferencia mas importante entre los cuatro, es que todas las I/O del Arduino DUE trabajan a 3.3V, mientras que el resto de modelos lo hacen a 5V, un voltaje más común a la hora de encontrar los sensores y actuadores que utilizaremos en nuestro proyecto, sin embargo el Arduino DUE tiene una capacidad de memoria y sobre todo, una velocidad de proceso muy superior a sus hermanos «pequeños», indudablemente lo primero que necesitamos es comparar las características principales de los cuatro en una tabla.
Caracteríasticas de los modelos más estándar de Arduino
Modelo | Arduino UNO | Arduino Leonardo | Arduino Mega 2560 | Arduino DUE |
Microcontroller | ATmega328 | ATmega32u4 | ATmega2560 | AT91SAM3X8E |
Operating Voltage | 5V | 5V | 5V | 3.3V |
Input Voltage | 7-12V | 7-12V | 7-12V | 7-12V |
Input Voltage (limits) | 6-20V | 6-20V | 6-20V | 6-20V |
Digital I/O Pins | 14 | 20 | 54 | 54 |
Digital I/O Pins PWM output | 6 | 7 | 15 | 12 |
Analog Input Pins | 6 | 12 | 16 | 12 |
Analog Outputs Pins | 2 (DAC) | |||
Total DC Output Current on all I/O lines | 40 mA | 40 mA | 40 mA | 130 mA |
DC Current for 3.3V Pin | 50 mA | 50 mA | 50 mA | 800 mA |
DC Current for 5V Pin | 800 mA | |||
Flash Memory | 32 KB 0.5 KB used by bootloader |
32 KB 4 KB used by bootloader |
256 KB 8 KB used by bootloader |
512 KB available |
SRAM | 2 KB (ATmega328) | 2.5 KB | 8 KB | 96 KB two banks: 64KB y 32KB |
EEPROM | 1 KB (ATmega328) | 1 KB | 4 KB | |
Clock Speed | 16 MHz | 16 MHz | 16 MHz | 84 MHz |
Tipo de USB | Estandar | Mini | Estándar | Mini |
~Precio Local US$ (Sin imp.) |
$33.00 | $33.00 | $64.00 | $64.00 |
Con un primer vistazo entre los cuatro modelos, lo primero que encontramos es la gran diferencia de memoria disponible que hay entre ellos, mientras que el Arduino UNO y Arduino Leonardo tienen 32k, el Arduino Mega 2560 tiene 256k y el Arduino DUE 512k, la memoria es muchas veces más importante que la velocidad, sobre todo cuando tenemos pensado utilizar librerías complejas en nuestro proyecto, por ejemplo una simple demostración que utilice las librerías para el manejo de pantallas UTFT ocupa más del 80% de la memoria disponible en el Arduino UNO y no es posible de compilar en el Arduino Leonardo (usaría el 104% de la memoria), mientras que en el Arduino Mega 2560 solamente se utiliza el 11% de la memoria, dejándonos cerca de un 90% de sus 256K para nuestro código.
En la velocidad encontramos una gran diferencia entre los tres primeros modelos y el Arduino DUE, este funciona con un reloj 5 veces más rápido que los anteriores y además su procesador es mucho más potente, utiliza un ARM de 32-bit, pero la desventaja es que nos encontraremos con muchos problemas de incompatibilidad en el código de las librerias que se suelen encontrar en la red, por ejemplo las librerías estándar de los ejemplos de las pantallas LED que utilizan UTFT no se pueden compilar en este modelo sin modificarlas considerablemente.
Otro punto son la cantidad de pines de I/O Digitales disponibles que se pueden utilizar para PWM, si el proyecto necesitará manejar varios motores con control de velocidad y varios servos, necesitamos tener en cuenta el numero de pines PWM que la placa tiene disponible, si vamos a utilizar una cantidad considerable de ellos, por ejemplo un brazo robot autosoportado con 6 servos y 2 motores, sin duda hay que pensar en un Arduino Mega 2560 con 16 pines PWM disponibles o un Arduino DUE con 12, tanto el Arduino UNO con 6 o el Arduino Leonardo con 7, se nos quedarán cortos si el proyecto es mínimamente complejo.
Tambien hay que tener en cuenta el número de pines de I/O Digitales estándar disponibles, estos los utilizaremos dentro de nuestros proyectos para conectarse con sensores u otro tipo de periféricos, cada uno necesitará uno o varios pines disponibles, por ejemplo si en el proyecto queremos utilizar una placa de 8 relés, un teclado numérico y un display 2×16 estándar, los relés necesitarán 8, el teclado 5 y el display unos 6, es decir vamos a necesitar más de 18 pines disponibles, con lo que tanto el Arduino UNO como el Arduino Leonardo se nos quedarán cortos, volviendo a ser la elección el Mega 2650 con 54 pines disponibles, el Arduino DUE tiene la misma cantidad disponible, pero hay que tener en cuenta que el voltaje de funcionamiento en el I/O es de 3.3V y necesitaremos convertidores de voltaje para conectarlo a la mayoría de periféricos que son de uso común en el mercado.
Cuando tenemos que entrar en contacto con el mundo de los sensores, la mayoría necesita conectarse a pines analógicos de entrada, en este caso también el Arduino Mega 2560 gana con 16 pines disponibles, le sigue el Arduino Leonardo con 20 y en última posición el Arduino UNO con 6.
Si el proyecto necesita utilizar salidas analógicas, por ejemplo para reproducir sonido de calidad, el Arduino DUE es el único que ofrece esa posibilidad con 2 salidas analógicas (DAC).
Es importante considerar que si estamos empezando las posibilidades de que nuestra placa produzca «humo mágico» es decir se «fría» por haberlo conectado mal, es mucho más alta que si ya tenemos experiencia, el único modelo que es reparable fácilmente, cambiando el chip del microcontrolador (viene en zócalo) es el Arduino UNO, en el resto los microcontroladores son componentes de superficie y están soldados directamente a la placa por lo que la probabilidad de repararlos en caso de avería es prácticamente nulas.
Ahora que ya conocemos un poco mas las características de los cuatro modelos, es mucho más fácil hacer nuestra elección, en el caso de que seamos principiantes y es nuestro primer Arduino, te aconsejo el Arduino UNO, es posible de reparar, todas las shields del mercado son compatibles con el y las librerías de los ejemplos funcionan sin problemas, lo que nos ahorrará muchas horas de búsqueda y modificaciones en librerías hasta hacer funcionar dispositivos complejos.
Si sabes que en tu proyecto vas a utilizar muchos sensores y actuadores necesitarás muchos pines de I/O disponibles pero no vas a necesitar mucha memoria para el código, elige el Arduino Leonardo, pero ten en cuenta que hay numerosas shields que nos son compatibles con el, estudia cuidadosamente sus características antes de comprar ninguna.
Cuando elijas el Arduino UNO o el Arduino Leonardo debes de tener en cuenta, que aunque tengas pines de I/O libres, si utilizas Shields(mochilas) colocadas encima de ellos, aunque tengas pines de I/O libres, físicamente estarán tapados por la Shield conectada y no tendrás posibilidades de usarlos, excepto si haces algunos puentes medio chapuceros con cables colgando, antes de comprar una nueva lee bien que pines utiliza, cuales deja libres y si tiene posibilidad de conectarlos a través de un conector propio.
Si ya tienes experiencia, tienes previsto realizar un proyecto complejo o simplemente quieres hacer una buena inversión pensando en que «es mejor que sobre que que falte y que tarde o temprano lo vas a necesitar», te aconsejo que compres un Arduino Mega 2560, es compatible casi al 100% con el Arduino UNO a nivel de librerías y shields. Cuando colocas encima una Shield para el Arduino UNO, te deja acceso a una buena cantidad de pines para conectar tus sensores y actuadores, recuerda que tienes 54 I/O digitales y 16 entradas analógicas, pero no solo eso, ademas tienes 4 UARTs, es decir cuatro puertos serie por hardware, que te permitirán conectarte con dispositivos serio, o incluso con otros Arduinos, una ventaja adicional es que tienes mas interrupciones por HW que en el resto de modelos de su serie.
Si dudarlo el Arduino Mega 2560 ha sido mi elección en la mayoría de mis proyectos, sobre todo a la hora de desarrollarlos, muchos de ellos los he diseñado con un Arduino Mega 2560 y después los he modificado para que sean compatibles con el Arduino UNO, el conector adicional (Pines 22 a 53) es muy práctico para utilizar, sobre todo con proyectos que necesitan conexiones múltiples por dispositivo, por ejemplo motores paso a paso, que cada uno necesita 4 pines, el disponer de más interrupciones ( External Interrupts pines: 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19 (interrupt 4), 20 (interrupt 3), y 21 (interrupt 2) ayuda mucho con los proyectos complejos que necesitan tener los valores de ciertos sensores independientemente del funcionamiento del resto de código, por ejemplo los sensores de detección de choque, interruptores de fin de carrera, tacómetros, compases magnéticos, etc…
El Arduino DUE es una decisión complicada, es indudablemente la elección para proyectos muy complejos, con muchas necesidades de cálculo y memoria, para sistemas de control especializados, tiene la ventaja de que es posible asignar una External interrupt a cualquier pin de I/O, esto es imprescindible cuando necesitamos trabajar con aplicaciones en tiempo real o que las que necesiten controlar muchos controladores externos que necesiten interrumpir cualquier cosa que esté haciendo la aplicación para tomar el control, un ejemplo sencillo, sabemos que si un detector de choque por contacto se pone en ON los motores se deben parar de inmediato, nuestro robot puede tener 6 detectores de choque por contacto, otros 6 por distancia y 6 mas de profundidad (para no caerse por la escalera) eso supondría un total de 18 External Interrupt (se puede hacer con menos, pero es un ejemplo).
No nos hemos olvidado del Arduino ADK Rev3, imprescindible para los fanáticos de Android, es básicamente un Arduino Mega 2560 al que se le ha añadido un puerto USB adicional para conectarse directamente a los dispositivos Android. Es compatible con los ejemplos contenidos en el Android Accessory Development Kit. Cuenta con 54 I/O digitales (14 se pueden utilizar como salidas PWM), 16 entradas analógicas, 4 UARTs (puertos serie de hardware), un oscilador de cristal de 16 MHz, una conexión USB, un conector de alimentación, un conector ICSP y un botón de reset.
¿Compro un Arduino Original o un compatible?
Cuando ya tenemos decidido que modelos vamos a comprar suele aparecer una duda, ¿Compro un Arduino Original o un compatible?. Esa es una decisión que además de con la calidad del producto (En eso gana el Arduino Original por leguas) tambien influye el precio, cuando compramos compatibles, estamos ahorrando unos dólares, no muchos, pero tenemos que pensar que al hacerlo, nuestro dinero se va a una empresa privada, que la mayoría de las veces no favorece en nada al movimiento Open Hardware.
Cuando compramos un Arduino Original, nuestro dinero llega directamente a la comunidad que lo desarrollaron (Invirtiendo mucho esfuerzo y dinero personal en el proyecto) y que fueron tan generosos, como para hacerlo con la exclusiva intención de donarlo a toda la comunidad, simplemente para ayudar que una tecnología que hace poco era ciencia ficción, esté a nuestro alcance, y sobre todo, al alcance de los que no teneían posibilidad de hacerlo, por su situación económica o geográfica. Ademas los fondos que Arduino recauda, son invertidos en investigación y desarrollo de nuevos modelos, cada día mas potentes y alucinantes, como el Arduino Sobre Ruedas, el primer robot de la casa.
Mi consejo es siempre compra Arduino original, al fin y al cabo si estas pagando un par de dólares más, son para desarrollar el nuevo modelo que podrás disfrutar en poco tiempo.
Actualización 12/07/2013
Coincidiendo con nuestra artículo, hemos encontrado esta entrada en el blog de Arduino hecha por Massimo Banzi ¿Cuál es la diferencia entre los clones, derivados y Arduino falso? Léelo en esta entrada del blog(en ingles)
es interesante ver los detalles para quienes estan empezando a dominar el arduino, tengo un proyecto sobre diseño y construccion de una maquina seleccionadora de grano, un proyecto de tesis que lo estoy desarrollando de hace meses, para ello necesito, procesamiento de imagenes que utilizare el tolbox matlab, mi pregunta a la comunidad seria que tipo de arduino esta condicionado para procesar imagen a tres cuadros por segundo y utilizar bombas de inyeccion para seleccioner los granos de calidad.
Jefferson, manejar las bombas puede hacerlo cualquier modelo, el modelo más rápido y con mas memoria es el Arduino DUO.
Hola! Estoy queriendo incursionar en esto del arduino, pero no decido cual comprarme.. Hiciste una genial revision y comparacion de los modelos que hay, pero yo ahora tengo una duda.. He leido que para empezar, con el Uno es suficiente.. pero prefiero eso de que «mejor sobre y no que falte», por lo que decidiria ir por el Mega.. pero seria mas complejo para utilizar y programar en comparacion con el Uno? Ademas, los proyectos MAS simples que se pueden realizar con el Uno, serian tambien posibles con el Mega? En especial aquellos para los que somos bien newbies en esto.. Eso es todo! Espero tu respuesta.. Muchas gracias de antemano!!
En el mega corre CASI todo el software del Arduino UNO, pero hay algunas diferencias en los pines de la placa, debido a que el Arduino MEGA tiene mas opciones que exigen la reubicación de sus pines.
Seguro que cuando avances con Arduino necesitarás un Arduino MEGA, pero para empezar te recomiendo un Arduino UNO, con el tienes asegurado que TODO va a funcionar, Shields y Software, con el podrás aprender lo suficiente para entender las diferencias con el Arduino MEGA y saber que cambios tienes que hacer en el software y en las conexiones para utilizar correctamente el Arduino MEGA.
Si estás empezando desde cero, te recomiendo que compres un kit de Grove, incluye un Arduino UNO y todos los tipos de actuadores básicos y algunos sensores, junto con sus respectivos ejemplos, que te permitirán aprender sin necesidad de conocimientos previos ni saber utilizar un soldador o utilizar breadboards, puedes verlo en este enlace
Perdon k reabra el hilo, pero recien me estoy informando al respecto para empezar en este mundillo, y e visto varios post al respecto y este es uno de los mejores con los que me he topado.
pero tengo una duda (con respecto al post, con que comenzar miles); he visto que casi todas las demás comparaciones, ponen 5 a 7 V hasta 12 V y aqui le dan hasta 20 V, eso es porque soporta esa tensión o fue un error involuntario??? o dependiendo del país se manejan distintos voltajes como ocurre con la mayoría de electrodomésticos???
Perdon por mi ignorancia al respecto
Esos los valores oficiales de Arduino, es el voltaje LIMITE, siempre es bueno no estar cerca de el, podemos considerar normal entre 5 y 15
Muchas gracias por la información, ahora me será más fácil elegir. =)
hola
buenos datos eh! gracias
una consulta, pienso comprar un arduino Mega 2560 original y la pregunta es si es que puedo añadirles otras tarjetas (bluetooth, detectores de humo, etc) que no sean originales, funcionará igual?
Si, no hay ningún problema en usar cualquier tipo de sensor, siempre que sean compatibles.