Hardware Arduino Uno R3

Es la placa estándar y la más conocida y documentada. Salió a la luz en SET-2010 sustituyendo a su predecesor Duemilanove con varias mejoras de hardware que consisten básicamente en el uso de un USB HID propio en lugar de usar un conversor FTDI para la conexión USB. Es 100% compatible con los modelos Duemilanove y Diecimila. Viene con un uP Atmega 328p de 32 Kbytes de ROM para el programa.

La diferencia básica entre un uP con un uC, es que el primero es solo un CHIP (ej el Pentium), mientras que el segundo tiene implementadas mas partes, como memoria RAM, periféricos (video, discos duros, teclados, etc). El uC es el equivalente a la placa madre o la computadora de un auto o el propio Arduino.

Arduino Uno R3

1. Micro Controlador

El uC (MCU) es un ATmega 328p de 8 bits. Soporta una alimentación entre 1V8~5V5 y una velocidad máxima de 20 MHz. Pertenece a la familias AVR de arquitectura RISC, 32 registros de trabajo, 3 temporizadores flexibles, UART serie, convertidor ADC de 14 canales de 10 bits. Encapsulado DIP de 28 pines. Puedes consultar data sheat.

Pines ATmega 328p
Pin uCNombrePin Arduino
1PC6RESET
2PD0D0 (Rx)
3PD1D1 (Tx)
4PD2D2
5PD3D3 (PWM)
6PD4D4
7Vcc+5V
8GNDGND
9PB6XTAL1
10PB7XTAL2
11PD5D5 (PWM)
12PD6D6 (PWM)
13PD7D7
14PB0D8
15PB1D9 (PWM)
16PB2D10 (PWM+SS)
17PB3D11 (PWM+MOSI))
18PB4D12 (MISO)
19PB5D13 (SCK)
20AVcc
21Aref
22GNDGND
23PC0A0
24PC1A1
25PC2A2
26PC3A3
27PC4A4 (SDA)
28PC5A5 (SCL)
Conexiones mínimas Arduino UNO

2. Puertos

La mayoría de los pines de los uC son multipropósito, es decir, en función de su configuración se comportan de una forma u otra. El ATmega328p como cualquier otro uC tiene registros para cada pin donde define si sera usado como entrada o salida. ATmega 328p tiene 3 grupos de puertos: PB (D8~D13), PC (A0~A5) y PD (D0~D7), es decir a PB y PC le faltan puertos debido a que no dispone de pines al ser DIP 28 (en comparación del tradicional DIP 40).

Puertos ATmega 328p
Puerto2726252423222120
PB  D13D12D11D10D9D8
PC  A5A4A3A2A1A0
PDD7D6D5D4D3D2D1D0

ATmega 328p tiene 3 registro de 8 bits:

por ejemplo: DDRB=xxxxxxx0, quiere decir que el pin D8 es de salida y DDRD=xx1xxxxx, quiere decir que el pin D5 es entrada.

Para saber mas sobre el manejo de registros consulta Programación avanzada de puertos.

2.1 Digitales

Son los pines entre 0~13. Aunque también puedes configurar los pines analógicos A0~A5 como salidas digitales usando los numero 14~19. Para saber como programarlos revisa pines digitales.

Si bien es cierto hay un LED amarillo interno en el pin 13 este esta detrás de un amplificador operacional (U5B) y con su respectiva resistencia limitadora de 1K. Ver esquema de Arduino UNO R3

2.2 Análogos

Son los pines A0~A5. Solo son usados como entrada via un ADC. El rango de valores es de 0~1023. Para saber como programarlos revisa pines analógicos.

2.3 PWM

Los pines digitales 3, 5, 6, 9, 10 y 11. Tipicamente a 490 Hz pudiendo varias el duty clycle. Para saber como programarlos revisa PWM.

2.3 Puerto serie Rx/Tx

Pin 0 (Rx) y Pin 1 (Tx). Para saber como programarlos revisa Puerto serie.

2.5 Bus SPI

El bus Serial Peripheral Interface es para comunicación serie síncrona full duplex con periféricos. Esta implementado en los pines digitales 10 (SS), 11 (MISO), 12 (MOSI) y 13 (CLK) son usados para SPI. Máximo 30 cm. Tipicamente a velocidades de hasta 8 Mbps. Se usa la librería SPI.h. Para saber como programarlos revisa bus SPI.

2.6 Bus I2C

El bus Inter Integrated Circuit es para comunicación serie síncrona con periféricos. En este tipo de comunicación cada dispositivo tiene una dirección única de 7 bits y cada dispositivo puede funcionar como maestro o esclavo. Toda la comunicación de datos en serie se hace vía el pin A4 que es SDA (Serial Data Line). El pin A5 es SCL (Serial Clock Line) suministra la señal de reloj para mantener el sincronismo. Se puede encadenas hasta un máximo de 125 dispositivos. Tipicamente a velocidades de 100 Kbps. Se usa la librería Wire.h. Para saber como programarlos revisa bus I2C.

2.7 ICSP

Existe dos (2) conectores de 6 pines con las siguientes funciones:

Conector ICSP

Ojo no son lo mismo una esta conectado al ATmega 328p y el otro al ATmega 16u2, que es un uC que maneja USB 2.0

2.8 AREF

Como su nombre indica es la referencia de tension para el HIGH en los pines digitales. Supongamos que necesitas que las saludas digitales trabajen con 3.3V pues meterias por este pin ese valor de referencia y automaticamente un HIGH en cualquier pin digital sera eso 3.3 V.

Muy util si necesitas interconectar con otros componentes que trabajen a 3.3 V.

3. Alimentación

Para pruebas un Arduino puede ser alimentar desde el cable USB, ya sea desde una PC, un power pack o una fuente de alimentación regulada de 5V. Pero otra forma de alimentar el Arduino es a través de la clavija Vin (5.5x2.1 mm), donde puede poner entre 6~12V y usar el regulador interno. Puedes usar una batería desechable salina o alcalina de 9V o un portapilas con 4 pilas descartables salinas o alcalinas o un portapilas de 5 pilas recargables NiCd o 2 celdas de Ion-Niquel o un transformador de celular de 9V/1A, etc.

Fuente externa

Existen 4 tamaños de clavija redonda estándar: 2.5x0.7 mm, 3.5x1.35 mm, 4.0x1.7 mm y 5.5x2.1 mm esta ultima es la que usa Arduino.

4. Polifusible

El Arduino UNO R3 tiene un polifusible reseteable que protege el puerto USB (pin 1 de +5V) de su computadora contra cortos y sobrecargas. Si se extrae más de 500 mA del puerto USB, el fusible se cortara automáticamente hasta que se elimine el cortocircuito o la sobrecarga. Tipo MSMF050-2.