# Arduino Uno

El Arduino Uno es una placa de microcontrolador de Sistema de control global/de dispositivos basado en el microchip ATmega328 y desarrollado por Arduino.cc. La placa está equipada con conjuntos de pines de E/S digitales y analógicas que pueden conectarse a varias placas de expansión y otros circuitos. La placa tiene 13 pines digitales, 6 pines analógicos y programables con el Arduino IDE (Entorno de desarrollo integrado) a través de un cable USB tipo B. Puede ser alimentado por el cable USB o por una batería externa de 9 voltios, aunque acepta voltajes entre 7 y 20 voltios. También es similar al Arduino Nano y Leonardo. El diseño de referencia de hardware se distribuye bajo una licencia Creative Commons Attribution Share-Alike 2.5 y está disponible en el sitio web de Arduino. Los archivos de diseño y producción para algunas versiones del hardware también están disponibles.
La palabra "uno" significa en italiano lo mismo que en español, y se eligió para marcar el lanzamiento inicial del software Arduino. La placa Uno es la primera de una serie de placas Arduino basadas en USB, y la versión 1.0 del Arduino IDE fueron las versiones de referencia de Arduino, ahora evolucionadas a nuevas versiones. El ATmega328 en la placa viene preprogramado con un cargador de arranque que le permite cargar un nuevo código sin el uso de un programador de hardware externo.
Mientras que el Uno se comunica utilizando el protocolo STK500 original, difiere de todas las placas anteriores en que no utiliza el chip de controlador USB a serie FTDI. En cambio, usa el Atmega16U2 (Atmega8U2 hasta la versión R2) programado como un adaptador USB a serie.

## Trasfondo

El proyecto Arduino se inició en el Interaction Design Institute Ivrea (IDII) en Ivrea, Italia. En ese momento, los estudiantes usaron un microcontrolador BASIC Stamp a un costo de $100, un gasto considerable para muchos estudiantes. En 2003, Hernando Barragán creó la plataforma de desarrollo Wiring como un proyecto de tesis de maestría en IDII, bajo la supervisión de Massimo Banzi y Casey Reas, quienes son conocidos por su trabajo en el lenguaje de programación Processing. El objetivo del proyecto era crear herramientas simples y de bajo costo para la creación de proyectos digitales por parte de personas que no eran ingenieros. La plataforma de cableado consistía en una placa de circuito impreso (PCB) con un microcontrolador ATmega 168, un IDE basado en funciones de procesamiento y biblioteca para programar fácilmente el microcontrolador. En 2003, Massimo Banzi, con David Mellis, otro estudiante de IDII, y David Cuartielles, agregaron soporte para el microcontrolador ATmega8 más barato a Wiring. Pero en lugar de continuar con el trabajo en Wiring, bifurcaron el proyecto y lo renombraron como Arduino. Las primeras placas Arduino utilizaron el chip controlador USB a serie FTDI y un ATmega 168. El Uno difería de todas las placas anteriores al presentar el microcontrolador ATmega328P y un ATmega16U2 (Atmega8U2 hasta la versión R2) programado como un USB a convertidor de serie.

## Características técnicas

* Microcontrolador: Microchip ATmega328P
* Voltaje de funcionamiento: 5 voltios
* Voltaje de entrada: 7 a 12 voltios
* Pines de E/S digitales: 14 (de los cuales 6 proporcionan salida PWM)
* Pines de entrada analógica: 6
* Corriente DC por Pin de E/S: 20 mA
* Corriente CC para Pin de 3.3V: 50 mA
* Memoria Flash: 32 KB de los cuales 0.5 KB utilizados por el gestor de arranque
* SRAM: 2 KB
* EEPROM: 1 KB
* Velocidad del reloj: 16 MHz
* Longitud: 68.6mm
* Ancho: 53,4mm
* Peso: 25g

## Pines
### Funciones generales de pin

* Arduino Uno (Versión Informática)LED: hay un LED que prende
* incorporado controlado por el pin digital 13. Cuando el pin tiene un valor alto, el LED está encendido, cuando el pin está bajo, está apagado.
* VIN: el voltaje de entrada a la placa Arduino/Genuino cuando se utiliza 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 del conector de alimentación, acceder a él a través de este pin.
* 5V: Este pin emite 5V regulado desde el regulador en el tablero. La placa se puede alimentar con el conector de alimentación de CC (7-20 V), el conector USB (5 V) o el pin VIN de la placa (7-20 V). El suministro de voltaje a través de los pines de 5V o 3.3V evita el regulador y puede dañar la placa.
* 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 en la placa Arduino/Genuino proporciona el voltaje de referencia con la que funciona el microcontrolador. Un blindaje configurado correctamente puede leer el voltaje del pin IOREF y seleccionar la fuente de alimentación adecuada o permitir que los traductores de voltaje en las salidas funcionen con 5V o 3.3V.
* Reset: normalmente se usa para agregar un botón de restablecimiento a los aislantes que bloquean el que está en el tablero.

### Funciones especiales de pin

Cada uno de los 14 pines digitales y 6 pines analógicos del Uno se puede usar como entrada o salida, utilizando las funciones pinMode, digitalWrite y digitalRead. Operan a 5 voltios. Cada pin puede proporcionar o recibir 20 mA según las condiciones de funcionamiento recomendadas y tiene una resistencia de pull-up interna (desconectada por defecto) de 20-50 kohm. Un máximo de 40 mA es el valor que no debe excederse en ningún pin de E/S para evitar daños permanentes al microcontrolador. 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 desde tierra hasta 5 voltios, aunque es posible cambiar el extremo superior de su rango utilizando el pin AREF y la función analogReference.
Además, algunos pines tienen funciones especializadas:
* Serie/UART: pines 0 (RX) y 1 (TX). Se utiliza para recibir (RX) y transmitir (TX) datos en serie TTL. Estos pines están conectados a los pines correspondientes del chip serial ATmega8U2 USB a TTL.
* Interruptores externos: pines 2 y 3. Estos pines se pueden configurar para activar una interrupción en un valor bajo, un borde ascendente o descendente, o un cambio de valor.
* PWM (modulación de ancho de pulso): 3, 5, 6, 9, 10 y 11. Puede proporcionar una salida PWM de 8 bits con la función analogWrite.
* SPI (interfaz periférica en serie): 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos pines admiten la comunicación SPI utilizando la biblioteca SPI.
* TWI (interfaz de dos cables)/I²C: pin A4 o SDA y pin A5 o SCL. Admite la comunicación TWI utilizando la biblioteca Wire.
* AREF (referencia analógica): voltaje de referencia para las entradas analógicas.

## Elementos

* Arduino Uno: Una placa programable que puede usar para crear circuitos interactivos.Resistencias de Arduino (Versión Informática)
* Resistencia: Limita el flujo de electricidad en un circuito, con lo que se reduce el voltaje y la corriente.
* Condensador: Almacena y libera energía eléctrica en un circuito.

## Comunicación

El Arduino/Genuino Uno tiene una serie de infraestructuras para comunicarse con una computadora, otra placa Arduino/Genuino 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 virtual para el software en la computadora. El firmware 16U2 utiliza los controladores USB COM estándar y no se necesita un controlador externo. Sin embargo, en Windows, se requiere un archivo .inf. El software Arduino (IDE) incluye un monitor serie que permite enviar datos textuales simples hacia y desde la placa. Los LED RX y TX en la placa parpadean cuando los datos se transmiten a través del chip USB a serie y la conexión USB a la computadora (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.

### Reinicio automático (software)

En lugar de requerir una presión física del botón de reinicio antes de una carga, la placa Arduino/Genuino Uno está diseñada de una manera que le permite reiniciarse mediante un software que se ejecuta en una computadora conectada. Una de las líneas de control de flujo de hardware (DTR) del ATmega8U2/16U2 está conectada a la línea de reinicio del ATmega328 a través de un capacitor de 100 nanofaradios. Cuando esta línea se afirma (baja), la línea de reinicio cae lo suficiente como para reiniciar el chip.
Esta configuración tiene otras implicaciones. Cuando el Uno está conectado a una computadora que ejecuta Mac OS X o Linux, se reinicia cada vez que se realiza una conexión desde el software (a través de USB). Durante aproximadamente medio segundo, el gestor de arranque se está ejecutando en el Uno. Si bien está programado para ignorar los datos mal formados (es decir, cualquier cosa además de la carga de un nuevo código), interceptará los primeros bytes de datos enviados a la placa después de que se abra una conexión.