Arduino Uno Rev3

Programación

El Arduino Uno se puede programar con el (Software Arduino (IDE)). Seleccione «Arduino Uno en el menú Herramientas > de la placa (según el microcontrolador de su placa). Para más detalles, consulta la referencia y los tutoriales.

El ATmega328 del Arduino Uno viene preprogramado con un cargador de arranque que te permite cargarle nuevo código sin necesidad de utilizar un programador de hardware externo. Se comunica utilizando el protocolo original STK500 (referencia, archivos de cabecera en C).

También puede omitir el cargador de arranque y programar el microcontrolador a través de la cabecera ICSP (In-Circuit Serial Programming) utilizando Arduino ISP o similar; consulte estas instrucciones para más detalles.

El código fuente del firmware del ATmega16U2 (o 8U2 en las placas rev1 y rev2) está disponible en el repositorio de Arduino. El ATmega16U2/8U2 está cargado con un gestor de arranque DFU, que puede ser activado por:

  • En las placas Rev1: conectando el puente de soldadura en la parte posterior de la placa (cerca del mapa de Italia) y luego reseñando el 8U2.
  • En placas Rev2 o posteriores: hay una resistencia que tira de la línea HWB del 8U2/16U2 a tierra, facilitando la puesta en modo DFU.
    • A continuación, puede utilizar el software FLIP de Atmel (Windows) o el programador DFU (Mac OS X y Linux) para cargar un nuevo firmware. O puedes usar la cabecera ISP con un programador externo (sobrescribiendo el bootloader DFU). Consulta este tutorial aportado por un usuario para obtener más información.

      Advertencias

      El Arduino Uno tiene un polifusible reajustable que protege los puertos USB de tu ordenador de cortocircuitos y sobrecorrientes. Aunque la mayoría de los ordenadores proporcionan su propia protección interna, el fusible proporciona una capa extra de protección. Si se aplican más de 500 mA al puerto USB, el fusible interrumpirá automáticamente la conexión hasta que se elimine el cortocircuito o la sobrecarga.

      Diferencias con otras placas

      La Uno se diferencia de todas las placas anteriores en que no utiliza el chip controlador USB-a-serial de FTDI. En su lugar, cuenta con el Atmega16U2 (Atmega8U2 hasta la versión R2) programado como convertidor USB a serie.

      Alimentación

      La placa Arduino Uno puede alimentarse a través de la conexión USB o con una fuente de alimentación externa. La fuente de alimentación se selecciona automáticamente.

      La alimentación externa (no USB) puede provenir de un adaptador de CA a CC (verruga de pared) o de una batería. El adaptador se puede conectar conectando un enchufe de 2,1 mm de centro positivo en la toma de alimentación de la placa. Los cables de una batería pueden insertarse en los cabezales GND y Vin del conector POWER.

      La placa puede funcionar con una alimentación externa de 6 a 20 voltios. Sin embargo, si se alimenta con menos de 7V, el pin de 5V puede suministrar menos de cinco voltios y la placa puede volverse inestable. Si se utiliza más de 12V, el regulador de voltaje puede sobrecalentarse y dañar la placa. El rango recomendado es de 7 a 12 voltios.

      Los pines de alimentación son los siguientes:

      • Vin. El voltaje de entrada a la placa Arduino cuando está utilizando una fuente de alimentación externa (a diferencia de los 5 voltios de la conexión USB u otra fuente de alimentación regulada). Puede suministrar voltaje a través de este pin, o, si suministra voltaje a través de la toma de alimentación, acceder a través de este pin.
      • 5V.Este pin emite un 5V regulado desde el regulador de la placa. La placa puede ser alimentada desde el conector de alimentación DC (7 – 12V), el conector USB (5V), o el pin VIN de la placa (7-12V). El suministro de voltaje a través de los pines de 5V o 3,3V evita el regulador, y puede dañar su placa. No lo aconsejamos.
      • 3V3. Un suministro de 3,3 voltios generado por el regulador de la placa. El consumo máximo de corriente es de 50 mA.
      • GND. Pines de tierra.
      • IOREF. Este pin de la placa Arduino proporciona la referencia de tensión con la que funciona el microcontrolador. Una shield correctamente configurada puede leer el voltaje del pin IOREF y seleccionar la fuente de alimentación adecuada o habilitar traductores de voltaje en las salidas para trabajar con los 5V o 3,3V.

      Memoria

      El ATmega328 tiene 32 KB (con 0,5 KB ocupados por el bootloader). También tiene 2 KB de SRAM y 1 KB de EEPROM (que se puede leer y escribir con la librería EEPROM).

      Entrada y salida

      Vea el mapeo entre los pines de Arduino y los puertos del ATmega328P. El mapeo para el Atmega8, 168 y 328 es idéntico.

      Mapeo de pines ATmega328P

      Cada uno de los 14 pines digitales del Uno puede ser utilizado como entrada o salida, utilizando las funciones pinMode(),digitalWrite() y digitalRead(). Funcionan a 5 voltios. Cada pin puede proporcionar o recibir 20 mA como condición de funcionamiento recomendada y tiene una resistencia interna de pull-up (desconectada por defecto) de 20-50k ohm. Un máximo de 40mA es el valor que no debe superarse en ningún pin de E/S para evitar daños permanentes en el microcontrolador.

      Además, algunos pines tienen funciones especializadas:

      El Uno tiene 6 entradas analógicas, etiquetadas de A0 a A5, cada una de las cuales proporciona 10 bits de resolución (es decir, 1024 valores diferentes). Por defecto miden de tierra a 5 voltios, aunque es posible cambiar el extremo superior de su rango utilizando el pin AREF y la función analogReference(). Hay un par de pines más en la placa:

      • AREF. Tensión de referencia para las entradas analógicas. Se utiliza con analogReference().
      • Reset. Lleva esta línea a LOW para reiniciar el microcontrolador. Normalmente se utiliza para añadir un botón de reset a los escudos que bloquean el de la placa.

      Comunicación

      El Arduino Uno tiene una serie de facilidades para comunicarse con un ordenador, otra placa Arduino u otros microcontroladores. El ATmega328 proporciona comunicación serie UART TTL (5V), que está disponible en los pines digitales 0 (RX) y 1 (TX). Un ATmega16U2 en la placa canaliza esta comunicación serie a través de USB y aparece como un puerto com virtual para el software en el ordenador. El firmware del 16U2 utiliza los drivers USB COM estándar, y no se necesita ningún driver externo. Sin embargo, en Windows, se requiere un archivo .inf. El software de Arduino (IDE) incluye un monitor de serie que permite enviar datos textuales simples hacia y desde la placa. Los LEDs RX y TX de la placa parpadearán cuando los datos se transmitan a través del chip USB-a-serial y la conexión USB al ordenador (pero no para la comunicación en serie en los pines 0 y 1).

      Una biblioteca SoftwareSerial permite la comunicación en serie en cualquiera de los pines digitales de Uno.

      El ATmega328 también soporta la comunicación I2C (TWI) y SPI. El software Arduino (IDE) incluye una librería Wire para simplificar el uso del bus I2C; consulta la documentación para más detalles. Para la comunicación SPI, utilice la biblioteca SPI.

      Reinicio automático (por software)

      En lugar de requerir una pulsación física del botón de reinicio antes de una carga, la placa Arduino Uno está diseñada de manera que permite ser reiniciada por el software que se ejecuta en un ordenador conectado. Una de las líneas de control de flujo del hardware (DTR) del ATmega8U2/16U2 está conectada a la línea de reinicio del ATmega328 a través de un condensador de 100 nanofaradios. Cuando esta línea se afirma (se toma como baja), la línea de reset cae lo suficiente como para reiniciar el chip. El software Arduino (IDE) utiliza esta capacidad para permitir la carga de código simplemente pulsando el botón de carga en la barra de herramientas de la interfaz. Esto significa que el bootloader puede tener un tiempo de espera más corto, ya que la bajada de DTR puede estar bien coordinada con el inicio de la carga.

      Esta configuración tiene otras implicaciones. Cuando la Uno está conectada a un ordenador que ejecuta Mac OS X o Linux, se reinicia cada vez que se realiza una conexión con ella desde el software (a través de USB). Durante el siguiente medio segundo más o menos, el gestor de arranque se ejecuta en la Uno. Aunque está programado para ignorar los datos malformados (es decir, cualquier cosa que no sea una carga de código nuevo), interceptará los primeros bytes de datos enviados a la placa después de que se abra una conexión. Si un sketch que se ejecuta en la placa recibe una configuración única u otros datos cuando se inicia por primera vez, asegúrate de que el software con el que se comunica espera un segundo después de abrir la conexión y antes de enviar estos datos.

      La placa Uno contiene una traza que se puede cortar para desactivar el auto-reset. Los pads a ambos lados de la traza se pueden soldar juntos para volver a habilitarlo. Está etiquetado como «RESET-EN». También puede ser capaz de desactivar el auto-reset mediante la conexión de una resistencia de 110 ohmios de 5V a la línea de reinicio; ver este hilo del foro para más detalles.

      Revisiones

      La revisión 3 de la placa tiene las siguientes nuevas características:

      • 1.0 pinout: se han añadido los pines SDA y SCL que están cerca del pin AREF y otros dos nuevos pines colocados cerca del pin RESET, el IOREF que permiten a los escudos adaptarse a la tensión proporcionada desde la placa. En el futuro, los escudos serán compatibles tanto con la placa que utiliza el AVR, que funciona con 5V como con el Arduino Due que funciona con 3,3V. El segundo es un pin no conectado, que se reserva para futuros propósitos.
      • Circuito de RESET más fuerte.
      • El Atmega 16U2 sustituye al 8U2.
        • .

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *