22/06/2025
El Arduino Due marcó un hito importante en la evolución de las placas Arduino al ser la primera en incorporar un microcontrolador basado en la arquitectura ARM. Esto representó un salto significativo en términos de rendimiento y capacidad de procesamiento en comparación con las placas anteriores que utilizaban microcontroladores de 8 bits. La placa está construida alrededor del potente CPU Atmel SAM3X8E ARM Cortex-M3, lo que le confiere una velocidad y capacidades que la diferencian claramente.

Esta arquitectura de 32 bits permite al Due manejar tareas más complejas y demandantes, abriendo la puerta a proyectos que requieren mayor potencia de cálculo, como procesamiento de señales, robótica avanzada o sistemas de control en tiempo real. Aunque fue lanzado hace tiempo, entender sus capacidades y limitaciones es clave para determinar su relevancia hoy en día frente a otras opciones disponibles, incluyendo el siempre popular Arduino Mega.
Características Principales del Arduino Due
El corazón del Arduino Due es el microcontrolador Atmel SAM3X8E, un chip ARM Cortex-M3 que opera a una frecuencia de 84 MHz. Esta velocidad de reloj, combinada con la arquitectura de 32 bits, proporciona un rendimiento muy superior al de las placas AVR tradicionales. La placa cuenta con una impresionante cantidad de pines de entrada/salida digital: 54 en total, de los cuales 12 pueden ser utilizados para salidas PWM (Modulación por Ancho de Pulso). También dispone de 12 entradas analógicas para leer sensores y otras señales variables.
Una característica notable del Due es la inclusión de 2 convertidores digital a analógico (DAC). Estos permiten generar señales analógicas de salida reales, algo que no está presente en la mayoría de las placas Arduino más antiguas. Esto es especialmente útil para aplicaciones de audio o control de voltaje preciso. La comunicación serie se facilita con 4 puertos UART (puertos serie por hardware), ofreciendo múltiples opciones para interactuar con otros dispositivos. Además, la placa incluye una conexión USB con capacidad OTG (On-The-Go), 2 interfaces TWI (I2C), un conector de alimentación, un cabezal SPI, un cabezal JTAG para depuración avanzada y botones de reset y borrado.
Es fundamental tener en cuenta que el Arduino Due opera a 3.3V, a diferencia de la mayoría de las placas Arduino (como Uno o Mega) que operan a 5V. Esto implica que los pines de E/S solo toleran un voltaje máximo de 3.3V. Conectar voltajes superiores, como 5V, directamente a un pin de E/S puede dañar irreversiblemente la placa. Se recomienda el uso de convertidores de nivel lógico bidireccionales para interactuar con sistemas que operan a 5V.
Alimentación y Conexiones
El Arduino Due puede ser alimentado de varias maneras: a través del conector USB o mediante una fuente de alimentación externa. La placa selecciona automáticamente la fuente de alimentación disponible. Para la alimentación externa, se puede usar un adaptador de CA a CC (típicamente de pared) conectándolo al jack de alimentación de 2.1mm con centro positivo, o una batería conectando sus cables a los pines Vin y Gnd del conector POWER.
El rango de voltaje recomendado para la alimentación externa es de 7 a 12 voltios. La placa puede operar con un suministro externo de 6 a 20 voltios, pero hay precauciones: si se suministra menos de 7V, el pin de 5V puede no suministrar la tensión adecuada y la placa podría ser inestable. Si se usan más de 12V, el regulador de voltaje a bordo podría sobrecalentarse y dañar la placa.
Pines de Alimentación Clave:
- Vin: Voltaje de entrada a la placa cuando usa una fuente externa (jack de alimentación o este pin).
- 5V: Pin que proporciona una salida regulada de 5V desde el regulador de la placa. Puede ser alimentado desde el jack de CC (7-12V), el conector USB (5V) o el pin VIN (7-12V). No se recomienda suministrar voltaje directamente a este pin o al de 3.3V, ya que bypassa el regulador y puede dañar la placa.
- 3V3: Una salida regulada de 3.3 voltios generada por el regulador a bordo. La corriente máxima que puede suministrar es de 800 mA. Este regulador también alimenta al microcontrolador SAM3X.
- GND: Pines de tierra.
- IOREF: Este pin proporciona la referencia de voltaje con la que opera el microcontrolador (3.3V). Los shields compatibles pueden leer este voltaje para adaptar sus señales o habilitar traductores de voltaje.
Memoria
El microcontrolador SAM3X a bordo del Arduino Due cuenta con 512 KB de memoria flash para almacenar el código del usuario. Esta memoria está dividida en dos bloques de 256 KB cada uno. El bootloader, pregrabado de fábrica por Atmel, reside en una memoria ROM dedicada y no ocupa espacio de la flash disponible para el usuario. En cuanto a la memoria RAM (SRAM), el Due dispone de 96 KB, distribuidos en dos bancos contiguos de 64 KB y 32 KB. Toda la memoria disponible (Flash, RAM y ROM) es accesible directamente como un espacio de direccionamiento plano, lo que simplifica la programación.
Una característica de la placa es la capacidad de borrar la memoria flash del SAM3X mediante el botón de borrado incorporado. Manteniendo presionado este botón durante unos segundos mientras la placa está alimentada, se elimina el sketch cargado actualmente en el microcontrolador. Esto es útil en ciertas situaciones, especialmente si el sketch actual interfiere con el proceso de carga de uno nuevo.
Entrada y Salida Detallada
El Arduino Due ofrece una amplia gama de capacidades de E/S para interactuar con el mundo exterior. Los 54 pines digitales, numerados del 0 al 53, pueden configurarse como entradas o salidas utilizando las funciones estándar de Arduino como pinMode(), digitalWrite() y digitalRead(). Como se mencionó, estos pines operan a 3.3 voltios. La capacidad de corriente de estos pines varía: pueden suministrar (source) 3 mA o 15 mA, y recibir (sink) 6 mA o 9 mA, dependiendo del pin específico. También tienen resistencias pull-up internas de 100 KOhm, que están desconectadas por defecto.
Además de las funciones básicas de E/S digital, varios pines tienen funciones especializadas:
- Serial (UART): Pines 0 (RX) y 1 (TX). Conectados al chip ATmega16U2 para comunicación serie a través del puerto de programación USB.
- Serial 1: Pines 19 (RX) y 18 (TX).
- Serial 2: Pines 17 (RX) y 16 (TX).
- Serial 3: Pines 15 (RX) y 14 (TX). Estos cuatro pares de pines ofrecen comunicación serie TTL (3.3V) por hardware.
- PWM: Pines 2 al 13. Proporcionan salida PWM de 8 bits por defecto con
analogWrite(), pero la resolución puede aumentarse hasta 12 bits usandoanalogWriteResolution(). - SPI: Cabezal SPI (equivalente al cabezal ICSP en otras placas). Permite la comunicación SPI usando la librería SPI. El cabezal es compatible físicamente con Uno, Leonardo y Mega2560. Es importante notar que este cabezal solo se usa para comunicación con dispositivos SPI externos, no para programar el SAM3X mediante ICSP.
- CAN: Pines CANRX y CANTX. Soportan el protocolo de comunicación CAN, aunque la API de Arduino aún no lo soporta de forma nativa.
- LED "L": Pin 13. LED integrado conectado a este pin, que se ilumina cuando el pin está en ALTO. Al ser el pin 13 también PWM, el brillo del LED puede controlarse.
- TWI 1 (I2C): Pines 20 (SDA) y 21 (SCL). Soportan comunicación TWI usando la librería Wire.
- TWI 2 (I2C): Pines SDA1 y SCL1. También soportan TWI (usando la clase Wire1). A diferencia de SDA/SCL, estos pines no tienen resistencias pull-up internas y requieren que se añadan externamente para su uso.
Las 12 entradas analógicas (A0 a A11) del Due tienen una resolución nativa de 12 bits, lo que permite distinguir 4096 valores diferentes. Sin embargo, por defecto, la lectura se configura a 10 bits (1024 valores) para mantener compatibilidad con otras placas Arduino. Esto se puede cambiar con analogReadResolution(). Los pines de entrada analógica miden voltajes desde tierra hasta un máximo de 3.3V. Aplicar más de 3.3V dañará el chip SAM3X. La función analogReference() es ignorada en el Due.

Los dos pines DAC (DAC1 y DAC2) proporcionan salidas analógicas reales con una resolución de 12 bits (4096 niveles) usando analogWrite(). Estos se pueden usar para generar audio o señales de voltaje precisas. Cabe destacar que el rango de salida real de los DACs es de 0.55V a 2.75V.
Comunicación
El Arduino Due está muy bien equipado para la comunicación, tanto con un ordenador como con otros microcontroladores o dispositivos. El chip SAM3X dispone de un hardware UART y tres hardware USARTs, todos a nivel TTL de 3.3V.
La comunicación con el ordenador se realiza principalmente a través de los dos puertos USB:
- Puerto de Programación: Conectado a un chip ATmega16U2, que actúa como convertidor USB a serie. Este puerto crea un puerto COM virtual en el ordenador y está conectado a la primera UART del SAM3X (RX0 y TX0). Es el puerto recomendado para cargar sketches, ya que el ATmega16U2 puede controlar los pines Reset y Erase del SAM3X para asegurar un borrado de flash fiable antes de la carga.
- Puerto Nativo USB: Conectado directamente al SAM3X. Permite comunicación serie (CDC) a través de USB. También permite que el Due emule un ratón o teclado USB (usando las librerías Mouse y Keyboard) o actúe como host USB para conectar periféricos como ratones, teclados o smartphones (usando las librerías USBHost).
Además de la comunicación serie, el SAM3X soporta TWI (I2C) y SPI, facilitados por las librerías Wire y SPI de Arduino, respectivamente.
Programación del Arduino Due
La programación del Arduino Due se realiza a través del entorno Arduino IDE, como con otras placas. Sin embargo, el proceso de carga de sketches es diferente al de los microcontroladores AVR de placas como el Uno o el Mega. Esto se debe a que la memoria flash del SAM3X debe borrarse antes de ser reprogramada. Este borrado es gestionado por una rutina en ROM que se ejecuta cuando la flash está vacía.
Se pueden usar ambos puertos USB para programar, pero el Puerto de Programación es más fiable. Abrir y cerrar el Puerto de Programación a 1200bps activa un procedimiento de “borrado duro”, controlando los pines Erase y Reset del SAM3X. Este método es más robusto y funciona incluso si el microcontrolador principal ha fallado. El Puerto Nativo también puede iniciar un borrado (un “borrado suave”) al abrirse a 1200bps, pero este procedimiento depende de que el SAM3X esté funcionando correctamente, por lo que puede fallar si el chip ha colapsado.
A diferencia de otras placas que usan avrdude para la carga, el Due utiliza la herramienta bossac.
Comparativa: Arduino Due vs. Arduino Mega
La pregunta sobre si el Arduino Due es mejor que el Mega es común y depende completamente de las necesidades del proyecto. Ambas placas tienen sus fortalezas y están dirigidas a diferentes tipos de aplicaciones.
A. Rendimiento: Velocidad, Memoria y Capacidades de Procesamiento
Aquí es donde el Due destaca significativamente. Su CPU ARM Cortex-M3 de 32 bits a 84 MHz ofrece una capacidad de procesamiento y velocidad muy superiores a la del Mega, basado en la arquitectura AVR de 8 bits, que típicamente opera a 16 MHz. El Due también cuenta con más memoria: 512KB de Flash (frente a 256KB del Mega) y 96KB de SRAM (frente a 8KB del Mega). Esta combinación de mayor velocidad y memoria hace que el Due sea ideal para algoritmos complejos, procesamiento de datos en tiempo real y tareas que requieren mucha memoria.
B. Entrada/Salida: Número y Tipos de Pines
En cuanto a la cantidad de pines, el Arduino Mega es el claro ganador. Dispone de 54 pines digitales (igual que el Due) pero 16 entradas analógicas (frente a 12 del Due). Esto hace que el Mega sea una opción preferida para proyectos que requieren conectar una gran cantidad de sensores, actuadores, botones o displays. Sin embargo, el Due compensa en calidad de salida analógica al incluir 2 DACs nativos de 12 bits, una característica que el Mega no posee, permitiendo generar señales analógicas precisas.
C. Compatibilidad: Shields y Accesorios
Ambas placas son compatibles con una gran variedad de shields y accesorios. El Mega, al llevar más tiempo en el mercado y tener una base de usuarios enorme, cuenta con un ecosistema más amplio y maduro de shields diseñados específicamente para su configuración de pines. El Due fue diseñado para ser compatible con la mayoría de los shields del Uno/Duemilanove/Diecimila, manteniendo la ubicación de los pines digitales 0-13, entradas analógicas 0-5, cabezales de alimentación y SPI. Sin embargo, debido a su operación a 3.3V y la ubicación diferente de los pines I2C (20 y 21 en Due vs. A4 y A5 en Mega/Uno), algunos shields pueden requerir adaptaciones o no ser totalmente compatibles. La diferencia de voltaje es el factor más crítico a considerar.

D. Precio y Valor
Históricamente, el Arduino Mega tiende a ser menos costoso que el Arduino Due. Su precio más accesible lo convierte en una opción popular para aficionados, estudiantes y proyectos con presupuestos limitados. El precio más alto del Due se justifica por su hardware más potente y avanzado (el chip ARM de 32 bits y los DACs). Para proyectos que realmente necesitan el rendimiento extra y las características del Due, la inversión adicional puede valer la pena, ofreciendo un mejor rendimiento y mayor capacidad para futuras expansiones.
Tabla Comparativa Rápida
| Característica | Arduino Due | Arduino Mega |
|---|---|---|
| Microcontrolador | SAM3X8E (ARM Cortex-M3) | ATmega2560 (AVR) |
| Arquitectura | 32 bits | 8 bits |
| Velocidad de Reloj | 84 MHz | 16 MHz |
| Memoria Flash | 512 KB | 256 KB |
| Memoria SRAM | 96 KB | 8 KB |
| Voltaje de Operación | 3.3V | 5V |
| Pines Digitales I/O | 54 (12 PWM) | 54 (15 PWM) |
| Entradas Analógicas | 12 (12 bits nativo) | 16 (10 bits) |
| Salidas Analógicas (DAC) | 2 (12 bits) | 0 |
| Puertos Serial (Hardware) | 4 | 4 |
| USB OTG/Host | Sí | No |
| Precio Típico | Más alto | Más bajo |
Aplicaciones Recomendadas
La elección entre Due y Mega depende de los requisitos específicos de tu proyecto. Cada placa brilla en diferentes escenarios.
Proyectos Ideales para Arduino Due:
- Procesamiento de señales en tiempo real.
- Robótica avanzada que requiere cálculos complejos.
- Sistemas de control industrial.
- Aplicaciones de audio de alta resolución (gracias a los DACs).
- Sistemas de automatización que demandan velocidad.
- Proyectos que requieren interfaces USB Host.
- Proyectos que se benefician de una mayor memoria RAM.
Proyectos Ideales para Arduino Mega:
- Proyectos con un gran número de sensores, botones o LEDs.
- Robótica con muchos motores o servos.
- Sistemas de domótica complejos con múltiples interfaces.
- Impresoras 3D (el Mega ha sido muy popular en este campo).
- Proyectos educativos o introductorios con muchas conexiones.
- Aplicaciones donde la compatibilidad con shields existentes es crítica.
- Prototipos de IoT que requieren muchas conexiones I/O.
Preguntas Frecuentes (FAQs)
Abordemos algunas dudas comunes sobre el Arduino Due.
¿Es obsoleto el Arduino Due?
Aunque se lanzó en 2012, el Arduino Due no está necesariamente obsoleto. Si bien hay placas más nuevas y potentes en el mercado (incluyendo otras opciones ARM de Arduino), el Due sigue siendo una placa muy capaz para proyectos que requieren un mayor rendimiento que las placas de 8 bits, una gran cantidad de pines digitales y, especialmente, salidas analógicas reales (DACs). Su relevancia depende del caso de uso específico. Para muchas aplicaciones que no exigen lo último en procesamiento o conectividad inalámbrica integrada, el Due sigue siendo una opción viable y potente.
¿El Arduino Due es de 5V o 3.3V?
El Arduino Due opera a 3.3V. Este es un punto crítico y una diferencia fundamental con la mayoría de las placas Arduino, como el Uno o el Mega, que operan a 5V. Los pines de E/S del Due no toleran voltajes superiores a 3.3V. Si necesitas conectar el Due a componentes o shields de 5V, deberás usar convertidores de nivel lógico para evitar dañar la placa.
¿Es compatible el Arduino Due con los shields de Arduino Uno/Mega?
El Arduino Due fue diseñado para ser compatible con la mayoría de los shields del Uno, Diecimila o Duemilanove en cuanto a la disposición física de los pines principales (digitales 0-13, analógicos 0-5, alimentación, SPI). Sin embargo, la compatibilidad total no está garantizada debido a dos factores principales: la diferencia de voltaje de operación (3.3V en Due vs 5V en Uno/Mega) y la ubicación diferente de los pines I2C. Los shields que no manejen adecuadamente la diferencia de voltaje o que dependan de los pines I2C en la posición del Uno/Mega podrían no funcionar correctamente o incluso dañar el Due.
¿Cuál es la diferencia entre el puerto de Programación y el puerto Nativo USB?
El Puerto de Programación utiliza un chip convertidor USB a serie (ATmega16U2) para comunicarse con el SAM3X. Es el puerto recomendado para cargar sketches porque puede forzar un borrado fiable de la memoria flash. El Puerto Nativo USB se conecta directamente al SAM3X. Permite comunicación serie de alta velocidad, emulación de dispositivos USB (ratón, teclado) y funcionalidad USB Host, pero el borrado de flash al cargar sketches es menos robusto que con el puerto de Programación.
Conclusión
En resumen, el Arduino Due y el Arduino Mega son placas diferentes con propósitos distintos. El Due, con su procesador ARM de 32 bits, ofrece un rendimiento muy superior, más memoria y características avanzadas como los DACs, lo que lo hace ideal para proyectos que exigen potencia de procesamiento y capacidades analógicas de alta resolución. El Mega, por su parte, destaca por su gran número de pines I/O y su extenso ecosistema de compatibilidad, siendo una excelente opción para proyectos que requieren conectar una multitud de componentes.
Recomendación Basada en Proyectos:
- Elige el Arduino Due si tu proyecto requiere:
- Alta velocidad de procesamiento.
- Mucha memoria RAM.
- Salidas analógicas reales (DACs).
- Funcionalidad USB Host o emulación de dispositivos USB.
- Manejo de algoritmos complejos o procesamiento en tiempo real.
- Elige el Arduino Mega si tu proyecto requiere:
- Un gran número de pines digitales y analógicos.
- Máxima compatibilidad con shields y componentes existentes.
- Un presupuesto más ajustado.
- Proyectos que no necesitan el máximo rendimiento de procesamiento.
Ambas placas siguen siendo herramientas valiosas en el mundo de la electrónica y la prototipación. La elección correcta dependerá siempre de una evaluación cuidadosa de los requisitos técnicos, el presupuesto y los objetivos específicos de tu proyecto.
Si quieres conocer otros artículos parecidos a Arduino Due: Potencia ARM y 32 Bits puedes visitar la categoría Automóviles.
