Tutorial de Arduino Uno [Pinout]

En este tutorial se aprende todo lo que hay que saber sobre el Arduino Uno: hoja de datos, pinout detallado, fuente de alimentación y el consumo de energía

En este tutorial aprenderás todo lo que debes saber sobre el Arduino Uno:

  • Ficha técnica
  • ¿Cuál es el pinout del Uno?
  • ¿Cuál es la mejor fuente de alimentación para este microcontrolador?
  • ¿Cómo reducir el consumo de energía del Arduino Uno?
  • Ventajas y desventajas del Arduino Uno.
  • Compara el Uno con otros microcontroladores basados en Arduino y ESP8266.

Hoja de datos de Arduino Uno

El Arduino Uno es una placa de microcontrolador, basada en el microcontrolador ATmega328P (para Arduino UNO R3) o ATmega4809 (para Arduino UNO WIFI R2) de Atmel y fue la primera placa alimentada por USB de Arduino. Atmega328 y ATmega4809 vienen con un cargador de arranque incorporado, lo que hace que sea muy fácil actualizar la tarjeta con su código. Como todas las placas Arduino, puede programar el software que se ejecuta en la placa utilizando un lenguaje derivado de C y C ++. El entorno de desarrollo más simple es Arduino IDE.

La siguiente tabla contiene la ficha técnica de la tarjeta del microcontrolador:

PlacaArduino UNO R3
MicrocontroladorATmega328p
ProcesadorAVR 8 bits
Tensión de funcionamiento5V
Tensión mínima de funcionamiento2,7V
Máxima tensión de funcionamiento6V
Placa IDE de ArduinoArduino/Genuino Uno
Alimentación a través de VIN,VCC7V…12V
Pines de E/S digitales (con PWM)14 (6)
Pines de entrada analógica6
Resolución ADC10 bits (0…1023)
Pines de salida analógica0
SPI/I2C/I2S/UART1/1/0/1
Corriente CC máxima por pin de E/S20 mA
Corriente CC máxima por pin de 3V50 mA
Memoria flash32 KB
SRAM2 KB
EEPROM1024 bytes
Velocidad de reloj16 MHz
Longitud x Anchura69mm x 53mm
Se adapta a la placa de pan estándarno
WIFIno
Bluetoothno
Sensor táctilno
CANno
Interfaz MAC Ethernetno
Sensor de temperaturano
Sensor de efecto de paredno
Toma de corrientesí
Conexión USBsí
Conexión a la bateríano
ProgramableArduino IDE
Regulador de tensión de 5VNCP1117ST50T3G
Tensión de salida5V
Máxima tensión de entrada20V
Tensión de entrada mínima6,5V
Corriente de salida máxima1A
Máxima caída de tensión1,2V @ 800mA
Corriente de reposo típica6mA
Regulador de voltaje de 3,3 VLP2985-33DBVR
Tensión de salida3,3V
Tensión de entrada máxima16V
Tensión de entrada mínima3,9V
Corriente de salida máxima150mA
Máxima caída de tensión350mV @ 150mA
Corriente de reposo típica1,5mA
Consumo de energía a 9V
Guión vacío de referencia [mA]98,43
Reducir la velocidad del reloj [mA]42,76
Modo de bajo consumo [mA]27,85
Consumo de energía a 3,3V
Velocidad de reloj [mA]11,55
Modo de bajo consumo [mA]11,45

Pinout Arduino Uno

Pinout Arduino Uno

El Arduino Uno tiene muchos pines diferentes, por lo que queremos repasar los diferentes tipos de pines.

El Uno tiene un total de tres pines de alimentación de los cuales uno tiene un voltaje de suministro de 3.3V y dos pines proporcionan 5V. Todos los pines de alimentación tienen una corriente máxima de 50 mA. Puede usar el pin VIN para alimentar todo el microcontrolador con un voltaje entre 7V-12V, también perfecto para una batería. Por supuesto, si tiene clavijas de alimentación, también necesita clavijas de tierra para cerrar el circuito eléctrico. El Arduino Uno tiene un total de tres pines de tierra que están conectados internamente.

Para conectar sensores analógicos como un sensor de temperatura, el Arduino tiene seis pines analógicos. Internamente, la señal analógica se convierte en una señal digital con un convertidor de analógico a digital (ADC) de 10 bits. Por lo tanto, los voltajes analógicos están representados por 1024 niveles digitales (0-1023). También puede utilizar un pin analógico para escribir señales analógicas con la función digitalWrite (Ax) donde Ax es el pin analógico, por ejemplo A3.

El Arduino Uno tiene un total de 14 pines digitales que proporcionan una corriente máxima de 20 mA. Seis de los 14 pines de E / S digitales son capaces de emitir una señal PWM.

Si desea comunicarse entre varios dispositivos, necesita pines de comunicación también proporcionados por Arduino. El microcontrolador tiene para cada protocolo de comunicación (I2C, SPI, UART) un grupo de pines.

Fuente de alimentación Arduino Uno

La fuente de alimentación de Arduino Uno depende de los componentes eléctricos que se encuentran en la PCB. La siguiente imagen ofrece una descripción general de todos los componentes relevantes para obtener una descripción general de los diferentes niveles de voltaje en el Arduino, así como las corrientes máximas.

Precaución eléctrica y límites absolutos en el pinout de Arduino Uno

Al conectar cargas, actuadores o instrumental de laboratorio a la placa Arduino Uno (ATmega328P), respeta rigurosamente las siguientes directrices para evitar la destrucción permanente de la placa o del ordenador anfitrión:

  • Límite absoluto de corriente por pin GPIO (40 mA): según las especificaciones del fabricante del microcontrolador ATmega328P, ningún pin digital o analógico debe superar los 40 mA bajo ninguna circunstancia. Para funcionamiento continuo fiable, diseña los circuitos para no exceder los 20 mA por pin. Conectar relés, motores DC o zumbadores inductivos directamente a un pin sin un transistor de conmutación y diodo volante quemará el puerto de salida de forma irreversible.
  • Límite térmico del regulador lineal NCP1117 (Pin VIN / Jack DC): aunque la hoja de características indica un voltaje máximo de entrada de hasta 20 V, el regulador disipa en forma de calor la potencia resultante de (Vin - 5 V) × I. Si alimentas la placa a 12 V y demandas 300 mA, el chip disipa más de 2 W, provocando que se caliente a más de 90 °C y corte el suministro por sobretemperatura. El rango seguro y recomendado es de 7 V a 12 V (siendo 9 V la tensión óptima).
  • Riesgo crítico de cortocircuito por masa BNC en osciloscopios de sobremesa: los osciloscopios estándar de laboratorio conectan la pinza de masa exterior del conector BNC directamente a la toma de tierra física de la red eléctrica (PE). Si alimentas el Arduino desde el puerto USB de un ordenador de sobremesa y conectas por descuido la pinza de masa a un pin de 5 V, 3,3 V o a un pin GPIO en estado ALTO, generarás un cortocircuito franco a tierra que fundirá las pistas de la placa o dañará la placa base del PC. Mantén la pinza conectada exclusivamente a GND o recurre a un osciloscopio USB con aislamiento galvánico (como el Owon VDS1022I) o a un osciloscopio portátil a batería con masa flotante.
Descripción general de la corriente de voltaje de Arduino Uno

El componente principal del Arduino Uno es el microprocesador ATmega328p. La siguiente tabla muestra la tensión mínima, operativa y máxima.

Microcontrolador Tensión mínima Tensión típica (operativa) Tensión máxima absoluta
ATmega328P 2,7 V 5,0 V 6,0 V (límite de destrucción)

Dado que los voltajes de funcionamiento son de 5 V, hay dos reguladores de voltaje integrados que proporcionan un voltaje de salida estable de 5 V y 3,3 V.

Reguladores de voltaje Arduino Uno

La siguiente tabla muestra los detalles técnicos importantes de los reguladores de voltaje con respecto a la fuente de alimentación.

Regulador lineal integrado Tensión de salida Tensión de entrada máxima Tensión recomendada Corriente máxima de salida
NCP1117ST50T3G (LDO 5V) 5,0 V 20,0 V 7,0 V, 12,0 V 800 mA (limitada por disipación térmica)
LP2985-33DBVR (LDO 3.3V) 3,3 V 16,0 V 5,0 V (alimentado desde carril de 5V) 150 mA

El NCP1117ST50T3G está conectado al pin VIN y al enchufe de alimentación de CC. Técnicamente, el voltaje de entrada máximo es de 20 V, pero dado que a 20 V el regulador de voltaje produce mucho calor y se rompería después de poco tiempo, se recomienda proporcionar un voltaje de entrada entre 7 V y 12 V. El NCP1117 proporciona un voltaje de salida estable de 5 V y una corriente máxima de 800 mA para el ATmega328p.

El ATmega328p también se puede alimentar a través de la conexión USB, que uso mucho en mis proyectos. No es necesario un regulador de voltaje ya que la conexión USB ya está regulada por la salida USB de su PC o portátil. El consumo de corriente máximo de la conexión USB es de 500 mA.

El segundo regulador de voltaje, 3.3V LP2985, tiene un voltaje de entrada de 5V y reduce el voltaje a 3.3V para el pin de 3.3V del Uno. Respecto a la ficha técnica LP2985, la corriente máxima es de 150mA pero en el Sitio web oficial de Arduino, la corriente máxima debe ser de 50 mA. Nunca he necesitado más de 50 mA en el pin de 3,3 V, pero en mi opinión debería ser posible un consumo de corriente de alrededor de 100 mA.

El pin de 5V del Arduino Uno está conectado directamente al regulador de voltaje de 5V y admite una corriente máxima que se define por la diferencia de la corriente suministrada por el regulador de voltaje y la corriente del ATmega328p.

Corriente máxima para pines de E / S

Cada pin de E / S admite una corriente máxima de 40 mA, pero no es posible extraer una corriente de 40 mA en cada pin porque se debe considerar la carga de corriente máxima permitida de los registros del puerto.

Los pines digitales y analógicos del ATmega328p están conectados a diferentes registros de puerto y cada registro de puerto admite una corriente máxima permitida que depende de si el registro se utiliza como fuente o como receptor. A continuación se muestra qué pin está asignado a qué registro de puerto, así como la corriente máxima.

Parámetro de control Pines D0 a D4 Pines D5 a D7 Pines D8 a D13 Pines A0 a A5
Registro de puerto ATmega328P Puerto D (PD0, PD4) Puerto D (PD5, PD7) Puerto B (PB0, PB5) Puerto C (PC0, PC5)
Corriente máxima suministrada (Sourcing) 100 mA combinados 100 mA combinados (D5-D7 + D8-D13) 100 mA combinados
Corriente máxima absorbida (Sinking) 100 mA combinados 100 mA combinados (D5-D7 + D8-D13) 100 mA combinados
Límite total en chip (VCC / GND) 200 mA como suma total de todos los pines de E/S activos

Hay un total de 3 registros de puerto: D, B, C. Todos los pines digitales D0… D13 están asignados a los registros D y B. Para la corriente máxima, el registro de puerto D está separado. Todos los pines analógicos pertenecen al registro del puerto C.

La corriente máxima, si los pines son una fuente de corriente, es de 150 mA. La suma de todos los pines en el registro del puerto de color no debe exceder los 150 mA:

  • Fuente de corriente del registro de puerto D0… D4 + C0… C5 150 mA
  • Fuente de corriente del registro de puerto D5… D7 + B0… B5 <150mA

Si el pin de E / S es un sumidero de corriente, la corriente máxima es de 100 mA y se divide en tres grupos:

  • Disipador de corriente de registro de puerto D0… D4 <100mA
  • Disipador de corriente de registro de puerto D5… D7 + B0… B5 <100mA
  • Disipador de corriente de registro de puerto C0… C4 <100mA

Cómo alimentar Arduino Uno: 3 posibilidades

Hay 3 formas de alimentar su Arduino Uno, ya que un regulador de voltaje proporciona un voltaje regulado y estable para el microprocesador:

  1. Cable USB: la forma más popular y fácil de alimentar el microcontrolador es a través de un cable USB. La conexión USB estándar entrega 5 V y le permite consumir 500 mA en total.
  2. Toma de corriente CC: la toma de corriente CC se puede utilizar como fuente de alimentación. Si compra una toma de corriente de CC, asegúrese de que el adaptador de corriente de la toma proporcione un voltaje entre 7V y 12V.
  3. Pin VIN: si utiliza una fuente de alimentación externa como una batería, puede utilizar el pin VIN. El voltaje debe estar entre 7V y 12V. Por lo tanto, puede alimentar el Uno con una batería externa de 9 voltios.

No puede alimentar la placa con el enchufe cilíndrico y el VIN GPIO al mismo tiempo, porque hay un diodo de protección de polaridad, que conecta el positivo del enchufe cilíndrico al pin VIN, clasificado en 1A.

También puede alimentar el microcontrolador Arduino desde el pin de 5V. Esto no se recomienda porque omite el regulador de voltaje NCP1117 y necesita asegurarse de que el nivel de voltaje sea estable.

No es posible alimentar el Arduino Uno a través del pin de 3.3V porque el regulador de voltaje evita que la corriente fluya en la dirección opuesta.

Consumo de energía de Arduino Uno

El consumo de energía del Arduino Uno obviamente depende de los dispositivos eléctricos conectados y de la tarea que se está realizando. Pero cuando estamos interesados ​​en el consumo de energía, la mayoría de las veces queremos saber cómo reducir el consumo de energía del Arduino Uno.

La siguiente imagen muestra el consumo de energía del Arduino Uno en diferentes configuraciones.

Consumo de energía de Arduino Uno

El Arduino Uno tiene el consumo de energía de referencia de 9V más alto de todas las placas Arduino que he medido:

  • Arduino Mega R3: 73,19 mA
  • Arduino Nano3: 22,05 mA
  • Arduino Pro Mini 5V: 14,62 mA

Pero puede reducir el consumo de energía del Arduino Uno reduciendo la velocidad del reloj de 8 MHz a 42.76mA y si también reduce la fuente de alimentación a 3.3V, su consumo de energía es de 11.55 mA. Eso es una reducción de alrededor del 88%.

Otra opción para reducir el consumo de corriente es utilizar el Biblioteca de bajo consumo de Rocketscream. Con un suministro de 9V, el consumo de corriente se reduce a 27.85mA y obtienes el menor consumo de energía para el Arduino Uno de 11.45mA con un suministro y uso de 3.3V. Modo de bajo consumo.

Los siguientes scripts de muestra configuran Arduino Uno en modo de hibernación durante 8 segundos con el uso de la biblioteca de bajo consumo. También he escrito un tutorial paso a paso, cómo reducir el consumo de energía de Arduino donde también ves cómo reducir la velocidad del reloj.

C++ / ARDUINO (MODOS DE BAJO CONSUMO ATMEGA328P)
#include "LowPower.h"

void setup()
{
    // No setup is required for this library
}

void loop() 
{
    // Do something here
    // Example: Read sensor, data logging, data transmission.

    // Enter power down state for 8 s with ADC and BOD module disabled
    LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);  
}

Puede encontrar una comparación completa del consumo de energía en diferentes modos de energía de múltiples placas de microcontroladores Arduino, ESP8266 y ESP32 en mi libro electrónico gratuito Hoja de datos de microcontroladores.

Ventajas y desventajas de Arduino Uno

Ventajas

  • La posibilidad de utilizar un Power Jack como fuente de alimentación.
  • 6 pines de entrada analógica son más que suficientes para la mayoría de los proyectos. Las 1 entradas analógicas del EPS8266 son demasiado pocas para algunos proyectos.

Desventajas

  • Para el Uno R3, no hay WiFi incorporado. Debido a que la mayoría de mis proyectos están relacionados con la industria de IoT, utilizo WiFi en casi todos mis proyectos.
  • El Uno no tiene un modo de sueño profundo en comparación con el ESP8266.

Criterios de diseño y selección para montajes con Arduino Uno

Al desarrollar proyectos de electrónica, robótica o instrumentación basada en la arquitectura ATmega328P, ten en cuenta las siguientes directrices esenciales de diseño:

  • Reserva siempre los pines D0 (RX) y D1 (TX): evita conectar componentes periféricos a estos dos pines salvo que sea estrictamente imprescindible, ya que interfieren con el conversor USB-UART durante la programación del chip desde el IDE de Arduino.
  • Respeta los límites de disipación del regulador lineal: si tu montaje incluye pantallas LCD, múltiples sensores o relés, alimenta la etapa de potencia de forma externa a 5 V compartiendo la misma masa (GND) y no sobrecargues el pin de 5 V de la placa.
  • Añade resistencias limitadoras de corriente en salidas digitales: calcula siempre la resistencia adecuada para los LEDs y optoacopladores para limitar la corriente por debajo de 15 mA por pin.
  • Verifica la integridad de las señales con instrumental de medida: para señales PWM de alta frecuencia o buses de comunicación I2C y SPI con cables de más de 20 cm, comprueba las señales con un osciloscopio adaptado para proyectos Arduino para descartar ruidos inducidos o capacitancias parásitas.

Comprobación de pines, señales PWM y oscilador con osciloscopio

Precaución de laboratorio: Bucles de masa a tierra (PE) y carga capacitiva en el cristal de 16 MHz
  • Evita cortocircuitos francos por la masa BNC del osciloscopio: la masa exterior de las sondas estándar de sobremesa está conectada a la tierra física de protección (PE) del edificio. Si alimentas el Arduino Uno por el puerto USB de un PC de sobremesa y conectas por error la pinza de cocodrilo de masa a un pin GPIO con salida activa a 5 V, a VIN o a la línea de 3,3 V, generarás un cortocircuito masivo a tierra que volatilizará las pistas de la placa o dañará la controladora USB del ordenador. Conecta la pinza de masa exclusivamente a GND y verifica la ausencia de tensión continua con multímetro antes de acoplar la sonda.
  • Uso obligatorio de sonda en modo 10X para medir el oscilador de 16 MHz: el cristal de cuarzo conectado a los pines XTAL1 y XTAL2 del ATmega328P opera con condensadores de carga muy pequeños (22 pF). Si colocas una sonda en modo 1X, su alta capacitancia parásita (~100 pF) detendrá de inmediato la oscilación del microcontrolador. Utiliza siempre la posición 10X (~10 a 15 pF) y el resorte de masa corto (ground spring) fijado a la punta para visualizar la onda senoidal a 16 MHz con total fidelidad y sin ringing inductivo.

El uso del osciloscopio resulta indispensable para ir más allá del código y comprobar el comportamiento eléctrico real de los pines del Arduino Uno en el banco de trabajo:

  1. Verificación del oscilador de reloj de 16 MHz (XTAL1 / XTAL2): si la placa no ejecuta el código o se bloquea aleatoriamente, comprueba la señal del cristal de cuarzo de 16 MHz. Importante: utiliza siempre la sonda en modo 10X. La capacitancia de una sonda en 1X (~100 pF) cargará excesivamente el circuito oscilador y detendrá la oscilación, mientras que en 10X (~10 pF a 15 pF) podrás visualizar con claridad la onda senoidal limpia a 16 MHz con un osciloscopio digital de al menos 50 MHz como el Rigol DS1054Z o Siglent SDS1202X-E.
  2. Análisis de salidas PWM y tiempos de conmutación: las salidas de modulación por ancho de pulsos en los pines D3, D5, D6, D9, D10 y D11 permiten gobernar drivers de motor, variar la intensidad de LEDs o simular tensiones mediante filtrado paso bajo. Con el osciloscopio puedes verificar que los pines D5 y D6 conmutan a 980 Hz (Timer 0) y los pines D3, D9, D10 y D11 lo hacen a 490 Hz (Timer 1 y Timer 2), comprobando además los tiempos de subida (rise time) y la presencia de sobreimpulsos causados por inductancias parásitas en la protoboard.
  3. Diagnóstico de buses de comunicación serie: los pines D0 (RX) y D1 (TX) operan a niveles TTL de 0 V a 5 V. Si experimentas pérdidas de paquetes serie o errores al cargar programas mediante el bootloader, visualiza la señal con un osciloscopio digital para detectar deformaciones en los flancos de subida. Si trabajas con buses síncronos, revisa nuestras guías especializadas para depurar UART con osciloscopio y para el diagnóstico de buses I2C y SPI.
  4. Monitorización del rizado en el carril de 5 V: al conectar sensores o módulos como el sensor de humedad de suelo o servomotores, el carril de alimentación puede experimentar caídas de tensión bruscas que provocan el reinicio (brownout reset) del microcontrolador. Configura el osciloscopio en acoplamiento AC con una base de tiempo de 10 ms para medir con exactitud el rizado y dimensionar correctamente los condensadores de desacoplo de 100 nF y 470 μF.

Osciloscopios recomendados para proyectos con Arduino y microcontroladores

Para depurar señales de temporización, buses de comunicación y consumo de pines en placas de desarrollo, estos son los modelos más contrastados en el laboratorio de electrónica:

Modelo recomendado Formato / Arquitectura Ancho de banda / Muestreo Canales y Memoria Función clave para Arduino y Embebidos Oferta
Sobremesa digital laboratorio 50 MHz (ampliable) / 1 GSa/s 4 canales / 24 Mpts 4 canales simultáneos para decodificar SPI completo (CS, MOSI, MISO, SCK) o correlacionar PWM con consumo de corriente VER MEJOR PRECIO
Sobremesa con tecnología SPO (Super Fósforo) 200 MHz / 1 GSa/s 2 canales / 14 Mpts Decodificación hardware de UART, I2C y SPI incluida de serie; gran ancho de banda para verificar el cristal de 16 MHz VER MEJOR PRECIO
Módulo USB aislado para PC 25 MHz / 100 MSa/s 2 canales / 5 kpts Aislamiento galvánico USB de 1.000 V: elimina el riesgo de bucles de masa y protege el puerto USB del PC al medir placas Arduino VER MEJOR PRECIO
Sobremesa compacto 100 MHz / 1 GSa/s 2 canales / 40 kpts Excelente relación calidad-precio para verificar niveles lógicos de 5 V, duty cycle de PWM y tiempos de respuesta en sensores VER MEJOR PRECIO

Preguntas frecuentes sobre los pines y límites eléctricos de Arduino Uno

¿Por qué fallan mis lecturas o no sube el código si conecto sensores en los pines D0 y D1?

Los pines digitales D0 (RX) y D1 (TX) están conectados físicamente al chip conversor USB-Serie (ATmega16U2 o CH340) que comunica el Arduino Uno con tu ordenador. Si conectas un módulo o resistencia de baja impedancia en D0/D1 mientras intentas cargar un programa desde el IDE, bloquearás la trama serie y obtendrás el error avrdude: stk500_getsync(): not in sync.

¿Puedo usar los pines analógicos A0 a A5 como pines digitales normales de entrada o salida?

Sí. Los pines A0 a A5 (puerto C del ATmega328P) funcionan exactamente igual que cualquier pin digital con pinMode(A0, OUTPUT) y digitalWrite(A0, HIGH), e incluso admiten resistencias INPUT_PULLUP internas (corresponden también a los números de pin 14 al 19).

¿Qué tensión máxima admite el conector Jack negro o el pin VIN de Arduino Uno?

Aunque la hoja técnica cita un rango límite de 6 V a 20 V, el regulador lineal de la placa disipa en forma de calor toda la diferencia de tensión multiplicada por la corriente consumida. El rango seguro recomendado es de 7 V a 12 V DC (siendo 7,5 V o 9 V el punto óptimo para no sobrecalentar el regulador).

Deja un comentario