Arduino Leonardo

Arduino Leonardo
dev-00049-front_1

Hoy os voy a hablar de la nueva placa Arduino Leonardo. Esta placa, al igual que los demás modelos, es una placa electrónica basada en un microcontrolador. En este caso, hablamos del ATmega32u4, del cual podemos ver el datasheet. Una de las características de la placa es que cuenta con 20 pines de entrada/salida digitales, de los cuales, podemos usar 7 como salidas PWM (Pulse-Width Modulation) y 12 como entradas analógicas. Además cuenta con un oscilador de cristal que funciona a 16 MHz, una conexión micro USB, un conector de alimentación, una cabecera de ICSP (In-Circuit Serial Programming) y, un botón de reinicio. Cumple los requisitos necesarios para apoyar a la micro. Simplemente hay que conectarlo a un ordenador mediante un cable USB o con una batería para comenzar a usarlo.

Una de las novedades que incorpora el Leonardo, es que se diferencia de las placas anteriores en que el ATmega32u4 incorpora comunicación USB, eliminando la necesidad de un procesador secundario. Esto permite que Arduino Leonardo maneje nuestro teclado o nuestro ratón, por ejemplo. Ya existen librerías en la página oficial de Arduino para llevar a cabo esto que acabo de mencionar. Y por si Arduino no nos hiciese la vida lo suficientemente cómoda, se nos proporciona una guía de iniciación.

RESUMEN

ESQUEMA Y DISEÑO

ALIMENTACIÓN

La placa Arduino Leonardo, puede ser alimentada a través de la conexión micro USB o con una fuente de alimentación externa. La fuente de alimentación se selecciona automáticamente.

Para usar alimentación externa (no mediante USB), ésta puede venir de un adaptador de CA a CC o de una batería. El adaptador (transformador),  lo podemos conectar mediante un jack de 2.1mm con centro positivo a la toma de alimentación de la placa. Sin embargo, los cables de los que disponga nuestra batería, los podemos insertar en los pines GND y Vin de la placa.

La placa puede operar mediante una alimentación externa de 6 a 20 Voltios. En caso de alimentar la placa con menos de 7Voltios, el pin de 5Voltios puede no llegar a este valor y la placa podría volverse inestable. Sin embargo, si utilizamos más de 12Voltios, el regulador de tensión puede sobrecalentarse y llegar a dañar nuestra placa. Por lo tanto, el rango recomendado de alimentación es de 7 a 12 Voltios.

Los pines de alimentación son los siguientes:

  • VIN. El voltaje de entrada a la placa Arduino cuando se utiliza una fuente de alimentación externa (a diferencia de 5 Voltios de la conexión USB o de otra fuente de alimentación regulada). Se puede suministrar tensión a través de este pin, o, si el suministro de tensión se realiza a través del transformador, podremos acceder a través de este pin.
  • 5V. Fuente de alimentación regulada usada para alimentar el microcontrolador y otros componentes en la placa.
  • 3V3. Un suministro de 3.3 Voltios, generados por el integrado. Consumo de corriente máxima: 50 mA.
  • GND. Pines de masa (0 Voltios).
  • IOREF. Tensión a la cual los pines de entrada y salida están funcionando.

MEMORIA

El ATmega32u4 que incorpora el Arduino Leonardo, posee 32 KB (4 KB utilizados para el bootloader). También ofrece 2,5 KB de SRAM y 1 KB de EEPROM (los cuales pueden ser leídos y escritos con la librería EEPROM).

ENTRADAS Y SALIDAS

Cada uno de los 20 pines digitales de entrada/salida que posee la placa, se pueden utilizar mediante las funciones de siempre: pinMode(), digitalWrite() o digitalRead().

Cada uno de los 20 pines de E/S digitales se pueden utilizar como entrada o salida, usando las funciones pinMode(), digitalWrite() y digitalRead(). Cada pin nos proporcionará un máximo de 40 mA y, tampoco podrá recibir más de este valor.

  • Serial: 0 (RX) y 1 (TX). Se utiliza para recibir (RX) y transmitir (TX) datos serie TTL con la capacidad de hardware serie del ATmega32U4. Hay que tener en cuenta que, en Arduino Leonardo, la clase Serial se refiere a la comunicación USB (CDC) ; para serie TTL en los pines 0 y 1, utilizaremos la clase Serial1.
  • IST: 2 (SDA) y 3 (SCL). Soportan la comunicación TWI utilizando la librería Wire.
  • Interrupciones externas: 2 y 3. Estos pines se pueden configurar para desencadenar una interrupción en un valor bajo, un flanco ascendente o descendente, o un cambio en el valor. Ver attachInterrupt () para obtener más detalles.
  • PWM: 3, 5, 6, 9, 10, 11 y 13. Proporcionan 8-bit de salida PWM con la función analogWrite ().
  • SPI: en la cabecera de ICSP. Estos pines soportan la comunicación SPI utilizando la librería SPI. Debemos tener en cuenta que los pines de SPI no está conectados a cualquiera de los pines digitales de entrada/salida, como están en Arduino UNO.  Sólo están disponibles en el conector ICSP.
  • LED: 13. Hay un LED smd conectado al pin digital 13. Cuando el pin tiene valor alto, el LED está encendido, cuando se pasa a valor bajo, se apaga.
  • Entradas Analógicas: A0-A5, A6 – A11 (en los pines digitales 4, 6, 8, 9, 10, y 12). La placa Arduino Leonardo tiene 12 entradas analógicas, las cuales van desde A0 hasta A11. También pueden ser utilizadas como entradas/salidas digitales. Los pines A0-A5 están situados en el mismo lugar que en Arduino UNO; las entradas A6-A11 se corresponden con las entradas/salidas digitales de los pines 4, 6, 8, 9, 10 y 12, respectivamente. Cada entrada analógica puede proporcionar 10 bits de resolución, es decir 1024 valores diferentes (desde 0 hasta 1023). Por defecto, la medida de las entradas analógicas van desde 0 a 5 Voltios, aunque se puede cambiar el extremo superior de su rango con el pin AREF y la función  analogReference().
  • AREF. Tensión de referencia para las entradas analógicas. Se utiliza con analogReference().
  • Reset: reinicia el microcontrolador.

También puedes ver el mapeo entre los pines de Arduino y los puertos del ATmega32u4.

COMUNICACIÓN

La placa Arduino Leonardo ofrece importantes facilidades para obtener comunicación con un ordenador, otro Arduino o incluso con otros microcontroladores. El ATmega32u4 incorpora comunicación serie UART TTL (5Voltios) disponible en los pines digitales 0 (RX) y 1 (TX), los cuales se han comentado anteriormente.

Este microcontrolador también nos permitirá establecer una comunicación serial a través de USB (CDC) y aparecer como puerto COM virtual con en nuestro sistema operativo. El integrado también actúa a modo de dispositivo de máxima velocidad USB 2.0, utilizando los drivers estándar de COM USB. Para Windows, se necesitará un archivo con extensión .inf.

El IDE de Arduino incluye un monitor de puerto serie que nos va a proporcionar la opción de transmitir texto desde la placa Arduino y, hacia la misma. Ya sabemos que los LEDs TX y RX de la placa parpadearán cuando se transmitan datos a través de la conexión USB al ordenador (pero no para la comunicación de serie en los pines 0 y 1).

Para establecer una comunicación serie en cualquiera de los pines digitales de Arduino, usaremos la librería SoftwareSerial

El ATmega32u4 también es compatible con la comunicación I2C (TWI) y SPI. El IDE de Arduino incluye la librería Wire (enlace compartido anteriormente) para simplificar el uso del bus I2C, puedes consultar la información para obtener más detalles sobre esto. La librería SPI la utilizaremos para la comunicación SPI. Mediante Arduino Leonardo, podemos emular un teclado y un ratón genérico, y puede ser programado para controlar estos dispositivos de entrada utilizando clases Keyboard & Mouse.

PROGRAMACIÓN

La placa Arduino Leonardo se programará con el software de Arduino y, tan sólo deberemos elegir el modelo de placa que vamos a utilizar.

PROTECCIÓN CONTRA PICOS DE CORRIENTE EN EL USB

La placa Arduino Leonardo posee un polifusible reseteable que protege los puertos USB de nuestro ordenador de las variaciones de corriente. Aunque, si no todos, la mayoría de los ordenadores ofrecen una protección interna, el fusible nos proporciona una protección extra. Si aplicamos más de 500 mA al puerto USB del ordenador, el fusible automáticamente corta la conexión hasta que el cortocircuito o sobrecarga desaparezca.

CARACTERÍSTICAS FÍSICAS

La longitud máxima y la anchura de la placa Arduino Leonardo son 2,7 y 2,1 pulgadas respectivamente, con el conector USB y  el conector de alimentación aumenta la dimensión anterior. Posee cuatro orificios para los tornillos que nos permiten sujetar la placa a una superficie o caja. La distancia entre los pines digitales 7 y 8 es de 160 milésimas de pulgada (0,16') y no 100 milésimas como en el resto de pines. Así obtendremos algo más de espacio para nuestros cables.

Esta información ha sido obtenida de la página oficial de Arduino

Te quiero pedir un favor. Si te ha gustado el artículo por favor compártelo con tus amigos dándole a los botones de abajo. Gracias por tu apoyo!