La Arduino Nano, es una placa pequeña, completa y amigable adaptada para trabajar con placas prototipos. Esta basada en el microcontrolador ATmega328 (Arduino Nano 3.x) o el Atmega168 (Arduino Nano 2.x).
Tiene la misma funcionalidad que el Arduino Duemilanove, pero es más pequeño en tamaño. Sólo difiere en la ausencia de un conector de alimentación. Funciona a través de un USB mini-B en lugar de uno standar. El Arduino Nano está diseñado y fabricado por Gravitech.
La Arduino Nano, es una placa compacta similar a la Arduino Uno.
Indice
ESPECIFICACIONES DE LA ARDUINO NANO
Microcontrolador | ATmega168 o ATmega328 |
Voltaje de funcionamiento (nivel lógico) | 5V |
Voltaje de entrada (recomendado) | 7-12V |
Voltaje de entrada (límite) | 6-20V |
Pines de E/S digitales | 22(de las cuales 6 son PWM) |
Pines de entrada analógica | 8 |
Corriente continua a través de los terminales de entrada/salida | 40 mA en pines Entrada/salida |
Memoria flash | 16 KB (ATmega168) o 32 KB (ATmega328), de los cuales 2 KB son usados por el cargador de arranque |
SRAM RAM | 1 KB (ATmega168) o 2 KB (ATmega328) |
EEPROM no volátil | 512 b (ATmega168) o 1 KB (ATmega328) |
Frecuencia de reloj | 16 MHz |
Longitud | 45 mm |
Anchura | 18 mm |
Peso | 5 g |
Memoria de la Arduino Nano
El ATmega168 de la Arduino Nano, posee 16 kilobytes de memoria flash para almacenar código de programas (de los cuales 2 kilobytes son usados por el cargador).
El ATmega328, también tiene 32 kilobytes (de los cuales 2 kilobytes también son usados por el cargador).
También vemos que la memoria ATmega168, tiene 1 KB de SRAM y 512 bytes de EEPROM, que pueden ser leídos y escritos utilizando la biblioteca de EEPROM.
Alimentación de la Arduino Nano
La Arduino Nano, puede ser alimentada a través de una conexión USB mini-B, desde una fuente de alimentación externa no estabilizada de 6-20V (pin 30) o de una fuente de voltaje estabilizada de 5V (pin 27). La fuente de alimentación de mayor voltaje es seleccionada automáticamente.
Entradas/salidas de la Arduino Nano
Cada una de las 14 salidas digitales de la Arduino Nano, puede ser usada como entrada y salida, usando las funciones pinMode(), digitalWrite() y digitalRead. Funcionan a 5 voltios. Cada salida puede llevar una corriente máxima de 40 mA y tiene una resistencia interna de pull-down (desactivada por defecto) de 20-50 kOhm.
Además, algunos pines tienen funciones especiales:
- Serial: Pines (RX) y 1 (TX). Las salidas se utilizan para recibir (RX) y transmitir (TX) datos en serie con niveles TTL. Estas clavijas se conectan a las correspondientes salidas FTDI de la interfaz USB/Serie con niveles TTL.
- Interrupciones externas: 2 y 3. Estos pines pueden ser configurados para disparar una interrupción en el frente o en la parte posterior de un pulso o para cambiar el nivel en la salida. Vea el manejo de interrupciones en el Arduino para más información.
- PWM: salidas 3, 5, 6, 9, 10 y 11. Proporcione una salida PWM de 8 bits utilizando la función analogWrite().
- SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estas salidas soportan la comunicación a través de SPI.
- LED: 13. El LED incorporado está conectado a la salida digital 13. El LED se enciende cuando la salida es alta; cuando es baja, el LED se apaga.
- I2C: A4 (SDA) y A5 (SCL). Soporta la comunicación a través de I2C (TWI) usando la biblioteca de cables.
La Arduino Nano posee 8 entradas analógicas, cada una de las cuales proporciona una resolución de 10 bits (es decir, 1024 valores diferentes). Por defecto miden de 0 a 5 voltios, aunque se puede cambiar el límite superior de su rango usando la función analogReference(). Las salidas analógicas 6 y 7 no pueden ser utilizadas como digitales.
Por último, tenemos dos pines adicionales:
AREF: Voltaje de referencia para las entradas analógicas. Se utiliza junto con analogReference();
Reset: Un nivel bajo en este pin lleva a un reset del microcontrolador. Normalmente se usa para añadir un botón de reinicio a una tarjeta de expansión que cierra el acceso al botón de reinicio en la propia tarjeta Arduino.
Comunicaciones en la Arduino Nano
La placa Arduino Nano puede comunicarse de distintas formas con una ordenador, con otras placas Arduino o con otros microcontroladores. Los ATmega168 y ATmega328 proporcionan un puerto UART de hardware para la comunicación en serie con niveles TTL (5 voltios).
Estos se encuentran disponibles en las salidas digitales 0 (RX) y 1 (TX). El FTDI FT232RL de la placa conecta el puerto UART al USB y proporciona un puerto COM virtual utilizando los controladores FTDI (incluidos en el IDE de Arduino) para comunicarse con el software de su ordenador.
El IDE de Arduino incluye un monitor de puerto serie que permite el envío y la recepción de datos de texto simple desde la placa. Los LEDs RX y TX de la placa se encienden cuando se transmiten datos a través de la conexión FTDI y USB (pero no cuando se transmiten datos a través de los pines 0 y 1 del puerto serie).
La biblioteca SoftwareSerial permite la comunicación en serie a través de cualquier pin digital de Arduino Uno.
Los ATmega168 y ATmega328 también soportan la comunicación vía I2C (TWI) y SPI. El IDE de Arduino incluye una biblioteca Wire para simplificar el uso del bus I2C. La biblioteca SPI se utiliza para la comunicación a través de SPI.
Programando en la Arduino Nano
La Arduino Nano se puede programar con el entorno de desarrollo Arduino IDE.
Sigue estos pasos: Selecciona «Arduino/Genuino Nano» de la placa de Herramientas → (según el microcontrolador de tu placa).
El ATmega168 y ATmega328 en la Arduino Nano vienen con un cargador de arranque ya flasheado, lo que le permite cargar un nuevo código en el controlador sin necesidad de usar programadores adicionales. El cargador de arranque funciona con el protocolo STK500.
También puedes puentear el cargador y hacer fluir el microcontrolador a través del conector ICSP usando un ICSP de Arduino o equivalente.
Reinicio automático en la Arduino Nano
Como todas las demás placas Arduino, la Arduino Nano, en lugar de requerir que se presione un botón de reinicio físico antes de parpadear el nuevo código de programa, Arduino Nano está diseñado para permitir el reinicio utilizando un software que se ejecuta en el ordenador conectado.
Una de las líneas de control de flujo (DTR) del FT232RL está conectada a una línea de reinicio ATmega168 o ATmega328 a través de un condensador de 100nF. Cuando aparece un nivel bajo en esta línea durante un tiempo suficientemente largo, el chip se reinicia.
El IDE de Arduino utiliza esta característica para permitirle descargar el código con sólo pulsar el botón de descarga en el IDE de Arduino. Esta arquitectura le permite reducir el tiempo de espera del cargador, ya que el proceso del firmware siempre está sincronizado con la señal de caída en la línea DTR.
Sin embargo, este sistema puede llevar a otras consecuencias. Cuando Arduino Nano se conecta a ordenadores que funcionan con Mac OS X o Linux, el microcontrolador se reinicia cada vez que el software se conecta a la placa (a través de USB). Durante el siguiente medio segundo después del reinicio, el Arduino Nano activará el cargador.
Aunque el cargador está programado para ignorar los datos externos (es decir, todos los datos no relacionados con el proceso de firmware del nuevo programa), puede interceptar los primeros bytes de datos del paquete enviado a la placa inmediatamente después de que se establezca la conexión.
Por consiguiente, si el programa que se ejecuta en el Nano de Arduino prevé la recepción de cualquier configuración u otros datos de la computadora en el primer inicio, debes asegurarte que el software con el que se comunica el Nano de Arduino se envíe un segundo después de que se establezca la conexión.
Iniciarse y entender el funcionamiento de la Arduino Nano no es tan dificil.