¿Qué es la tarjeta Arduino® Mega 2560?

La tarjeta Arduino® Mega 2560 es una placa o tarjeta electrónica basada en el microcontrolador ATmega2560 de Atmel. Contiene todos los elementos adicionales necesarios para el funcionamiento del microcontrolador; para empezar basta con alimentarlo desde un computador a través del cable USB, o por medio de una fuente de alimentacion independiente (adaptador AC/DC o bateria). El Arduino® Mega es compatible con la mayoría de los shields (escudos) diseñados para el Duemilanove o Diecimila.

El Arduino® Mega 2560 R3 (rev3), es la versión más reciente del Arduino® Mega. Además de las características de las versiones anteriores, esta nueva placa incorpora un chip ATmega16U2 programado como un convertidor de USB a serie; el ATmega16U2 sirve de interfaz de comunicaciones entre el puerto USB del computador y el microcontrolador principal ATmega2560. Esto permite velocidades de transferencia mayores y más memoria disponible para las aplicaciones. No son necesarios drivers para los sistemas operativos de Linux o Mac; sí sigue siendo necesario el archivo *.inf para Windows, que viene incluido en el IDE de Arduino. Igual que en las revisiones anteriores, al conectar la placa al puerto USB del computador, el Arduino® Mega se muestra como un dispositivo USB adicional (similar a un teclado, ratón, joystick, etc.)

El Arduino® Mega 2560 R3 está diseñado para los proyectos más complejos. Con 54 pines de E/S digitales, 16 entradas analógicas y un espacio más grande de memoria, es una de las placas que más opciones y posibilidades ofrece; está recomendada para impresoras 3D y proyectos de robótica.

El aspecto general de la placa es idéntico al de revisiones anteriores y funciona perfectamente con todos los shields antiguos. Sin embargo, esta nueva revisión dispone de algunos pines extra. Los pines analógicos SDA y SCL han sido desplazados cerca del pin AREF y se han añadido 2 nuevos terminales a continuación del pin RESET, uno de los cuales permite que los shields se adapten al voltaje suministrado por la placa.

Recomendamos descargar la datasheet del ATmega2560, que se puede encontrar fácilmente en internet, y es de suma utilidad para los diseñadores y programadores. El ATmega2560 es el microcontrolador principal que se encuentra montado en la tarjeta Arduino® Mega.

Existe una variante conocida como Arduino® Mega ADK que tiene las mismas características que la tarjeta Mega 2560 R3 estándar, pero está especialmente diseñada para funcionar con Android. El Mega ADK es una placa de microcontrolador basada en el ATmega2560. Tiene una interfaz de host USB para conectarse con teléfonos Android, a través del circuito integrado MAX3421E. Tiene 54 pines digitales de entrada / salida (de los cuales 15 se pueden usar como salidas PWM), 16 entradas analógicas, 4 UART (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 reinicio.

Dimensiones y compatibilidad con los shields

La longitud y el ancho máximo de la placa de circuito impreso del Mega 2560 R3 es de 102mm y 54mm respectivamente, con el conector USB y el conector de alimentación extendiéndose más allá de la longitud anterior. Cuatro orificios para tornillos permiten que la placa se pueda montar en una superficie o caja. Tenga en cuenta que la distancia entre los pines digitales 7 y 8 es de 0.16" (no es un múltiplo par del espaciado de 0.1" de los otros pines).

El Mega 2560 tiene caracteristicas para ser compatible con la mayoría de los shields o escudos diseñados para el Uno, Diecimila o Duemilanove. Los pines digitales 0 a 13 (y los pines adyacentes AREF y GND), las entradas analógicas 0 a 5, la regleta de alimentación POWER y el conector ICSP están todos en ubicaciones equivalentes. Además, el UART principal (puerto serie) está ubicado en los mismos pines (0 y 1), al igual que las interrupciones externas 0 y 1 (pines 2 y 3, respectivamente). El SPI está disponible a través del conector ICSP en las placas Mega 2560, Duemilanove y Diecimila. Tenga en cuenta que el I2C no está ubicado en los mismos pines en la placa Mega 2560 (20 y 21) que las placas Duemilanove / Diecimila (entradas analógicas 4 y 5).

Arduino® Mega 2560: características

Programación

La placa Mega 2560 R3 se puede programar con el software Arduino (IDE). El ATmega2560 en el Mega 2560 viene preprogramado con un gestor de arranque (bootloader) que le permite cargar un nuevo código sin el uso de un programador externo. También puede omitir el gestor de arranque y programar el microcontrolador a través del conector ICSP (Programación Serial en el Circuito) usando un Arduino ISP o similar (por ejemplo, un programador de microcontroladores Atmel).

Esquema eléctrico

Este circuito eléctrico del Mega (en formato PDF) ofrece todos los detalles constructivos y puede ser utilizado para verificar todas las conexiones y elementos existentes, especialmente para determinar cuáles son las posibilidades y limitaciones de cada uno de los pines disponibles, información muy útil para los diseñadores de proyectos.

Fuentes de alimentación

El Mega 2560 puede alimentarse a través de la conexión USB o con una fuente de alimentación externa. La fuente de poder se selecciona automáticamente. Advertencia: No conectar 2 o más fuentes de alimentación simultáneamente, esto puede dañar su tarjeta y las propias fuentes.

El Mega 2560 incorpora un fusible (con reset automático) de protección del puerto USB de su computadora contra cortocircuitos y sobrecorrientes. Aunque la mayoría de las computadoras proporcionan su propia protección interna, el fusible añade una capa adicional de protección. Si se consume más de 500mA del puerto USB, el fusible interrumpirá automáticamente la conexión hasta que se elimine el cortocircuito o la sobrecarga.

La alimentación externa (no USB) puede provenir de un adaptador AC/DC o una batería. El adaptador se puede conectar con un plug (positivo en el centro) de 2.1mm en el jack de alimentación de la placa. Los cables de una batería se pueden insertar en los pines GND y Vin del conector POWER.

La placa puede operar con un suministro externo de 6 a 20VCD. Sin embargo, si se alimenta con menos de 7V, el pin de 5V puede proporcionar menos de 5V y la placa puede volverse inestable. Si usa más de 12V, el regulador de voltaje incorporado puede sobrecalentarse y dañar la placa. Estas caracteristicas hacen que el rango recomendado sea de 7 a 12V.

Los pines de alimentación son los siguientes:

Vin: El voltaje de entrada a la placa cuando está usando una fuente de alimentación externa (distinta de los 5V de la conexión USB u otra fuente de alimentación regulada de 5V). Puede ingresar voltaje a través de este pin o, si suministra voltaje a través del conector de alimentación, acceder a este voltaje a través de este pin.

5V: Este pin produce una salida de voltaje regulado de 5V a partir del regulador incorporado. La placa se puede alimentar ya sea con un adaptador o bateria a través del jack de DC (7-12 V), el conector USB (5 V) o el pin Vin de la placa (7-12 V). El ingreso de voltaje a través de los pines de 5V o 3.3V no toma en cuenta el regulador y puede dañar su tarjeta. Esta práctica no es recomendable.

3.3V: Una fuente de 3.3V generada por el regulador a bordo. La salida máxima de corriente es de 50mA.

GND: Pines de tierra

IOREF: Este pin en la placa proporciona la referencia de voltaje con la que opera el microcontrolador. Un shield correctamente configurado puede leer el voltaje del pin IOREF y seleccionar la fuente de alimentación apropiada o habilitar conversores de voltaje para trabajar con 5V o 3.3V.

Comunicación

La placa Mega 2560 tiene varias facilidades para comunicarse con una computadora, otra placa u otros microcontroladores. El ATmega2560 proporciona cuatro módulos UART de hardware para comunicación serie TTL (5V). Un ATmega16U2 en la placa canaliza uno de estos módulos a través del puerto USB y proporciona un puerto COM virtual para el software en la computadora (las máquinas Windows necesitarán un archivo .inf, pero las máquinas OSX y Linux reconocerán la placa como un puerto COM de forma automática). El software Arduino (IDE) incluye un Monitor Serie que permite enviar datos de texto simples hacia y desde la tarjeta. Los LEDs RX y TX incorporados parpadearán cuando los datos se transmitan a través del chip ATmega16U2 y la conexión USB a la computadora (pero no para comunicación serial en los pines 0 y 1).

La biblioteca (o librería) SoftwareSerial permite la comunicación serial en cualquiera de los pines digitales del Mega 2560.

El Mega 2560 también es compatible con la comunicación TWI y SPI. El software Arduino IDE incluye una biblioteca Wire para simplificar el uso del bus TWI; ver la documentación para más detalles. Para la comunicación SPI, use la biblioteca SPI.

Reset automático (software)

En lugar de requerir una pulsación física del botón de reinicio (RESET) antes de cargar un programa, el Mega 2560 está diseñado de forma tal que permite su reinicio mediante el software que se ejecuta en la computadora al cual se conecta. Una de las líneas de control (DTR) del ATmega16U2 está conectada a la línea de reset del ATmega2560 a través de un condensador de 100 nF; cuando esta línea se lleva a nivel BAJO se produce el reset del ATmega2560. El software Arduino IDE aprovecha estas caracteristicas para cargar el código simplemente haciendo clic en el botón Cargar (Upload). Esto significa que el gestor de arranque puede tener un tiempo de espera más corto, dado que el descenso de la línea DTR puede coordinarse bien con el inicio de la carga.

Esta configuración tiene otras implicaciones. Cuando la placa Mega 2560 está conectada a una computadora que ejecuta MacOS X o Linux, se reinicia cada vez que se realiza una conexión desde el software (a través de USB). Durante el siguiente medio segundo más o menos, el gestor de arranque se está ejecutando en el ATMega2560. Dado que está programado para ignorar datos inconsistentes (es decir, cualquier cosa distinta de una carga de código nuevo), el bootloader interceptará los primeros bytes de datos enviados a la placa después de que se abra una conexión. Si la placa Mega ejecuta algún programa que recibe datos cuando arranca por primera vez, asegúrese de que el software con el que se comunica espera por lo menos un segundo después de abrir la conexión (hasta que finalice la ejecución del bootloader) y antes de enviar esta información.

La placa Mega 2560 contiene una pista de circuito impreso que se puede cortar para desactivar el reinicio automático. Los dos pads que se ubican en esta línea se pueden soldar juntos nuevamente para volver a habilitarlo; está etiquetado como RESET-EN. También puede desactivar el restablecimiento automático conectando una resistencia de 110 ohmios desde 5V a la línea de reset.

Pinout

Cada uno de los 54 pines digitales del Mega se puede usar como entrada o salida, usando las funciones pinMode(), digitalWrite() y digitalRead(); estos pines operan a 5V. Cada pin puede proporcionar o recibir 20mA según las condiciones de funcionamiento recomendadas y tiene una resistencia interna de pull-up (desconectada por defecto) de 20-50k. Un máximo de 40mA es el valor que no debe excederse para evitar daños permanentes al microcontrolador. La siguiente imagen muestra los pines del Mega agrupados de acuerdo a las distintas funciones que pueden cumplir. 

Arduino® Mega 2560: Características

Además, algunos pines tienen funciones especializadas:

Serial 0: 0 (RX) y 1 (TX); Serial 1: 19 (RX) y 18 (TX); Serial 2: 17 (RX) y 16 (TX); Serial 3: 15 (RX) y 14 (TX). Se usan para recibir (RX) y transmitir (TX) datos TTL en serie. Los pines 0 y 1 también están conectados a los pines correspondientes del chip ATmega16U2 (conversor serial de USB a TTL).

PWM: 2 a 13 y 44 a 46. Proporcionan salida PWM de 8 bits con la función analogWrite().

SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Estos pines soportan la comunicación SPI utilizando la biblioteca SPI. Los pines SPI también se hallan en el conector ICSP, que es físicamente compatible con el Uno y los antiguos Duemilanove y Diecimila.

LED: 13. Hay un LED integrado conectado al pin digital 13. Cuando el pin tiene un valor ALTO, el LED está encendido, cuando el pin está BAJO, está apagado.

TWI: 20 (SDA) y 21 (SCL). Soporte de comunicación TWI utilizando la biblioteca Wire. Tenga en cuenta que estos pines no se encuentran en la misma ubicación que los pines TWI en las antiguas placas Duemilanove o Diecimila.

El Mega 2560 tiene 16 entradas analógicas, cada una de las cuales proporciona 10 bits de resolución (es decir, 1024 valores diferentes). Por defecto, miden desde tierra a 5V, aunque es posible cambiar el extremo superior de su rango usando el pin AREF y la función analogReference().

Hay otros 2 pines en esta tarjeta:

AREF: Voltaje de referencia para las entradas analógicas. Usado con analogReference().

RESET: Conecte este pin a nivel BAJO para reiniciar el microcontrolador. Normalmente se usa para agregar un botón de reinicio a los shields que bloquean el acceso al botón que está en la tarjeta.

Arduino® Mega 2560: Características

Interrupciones del Arduino® Mega 2560 R3

Las interrupciones son eventos que hacen que el microcontrolador Atmega2560 deje a un lado su actividad normal y pase a realizar una actividad secundaria temporalmente; al finalizar esta actividad secundaria reanuda la ejecución de la tarea principal, en el punto donde fue interrumpido. El Mega tiene varias fuentes de interrupción, algunas son internas mientras que otras son externas. Todos los detalles acerca de las interrupciones se pueden encontrar en la hoja de datos del Atmega2560.

Pines de las interrupciones externas: 2 (interrupción 0), 3 (interrupción 1), 18 (interrupción 5), 19 (interrupción 4), 20 (interrupción 3) y 21 (interrupción 2). Estos pines se pueden configurar para activar una interrupción en un nivel bajo, un borde ascendente o descendente, o un cambio en el nivel. Vea la función attachInterrupt() para más detalles.

Versiones comerciales del Arduino® Mega 2560 R3

Actualmente existen 3 versiones disponibles comercialmente:

Arduino® Mega 2560 R3 original

Arduino® Mega 2560 R3 original

Mega 2560 R3 para Arduino®

Mega 2560 R3 para Arduino®

Mega 2560 R3 para Arduino®

Con chip Atmega16U2 para el puerto serie de comunicación con el computador.

Mega 2560 CH340G para Arduino®

Mega 2560 CH340G para Arduino®

Utiliza el chip CH340G para la comunicación con el computador a través de un puerto serial.