Arduino Uno es una placa de microcontrolador de código abierto basada en el microcontrolador (MCU) Microchip ATmega328P y desarrollada por Arduino.cc y lanzada inicialmente en 2010. [2] [3] La placa del microcontrolador está equipada con conjuntos de pines de entrada/salida (E/S) digitales y analógicos que pueden interconectarse con varias placas de expansión (shields) y otros circuitos. [1] La placa tiene 14 pines de E/S digitales (seis capaces de salida PWM ), 6 pines de E/S analógicos y es programable con el IDE (entorno de desarrollo integrado) de Arduino, a través de un cable USB tipo B. [ 4 ] Puede ser alimentada por un cable USB o un conector de barril que acepte voltajes entre 7 y 20 voltios, como una batería rectangular de 9 voltios . Tiene el mismo microcontrolador que la placa Arduino Nano y los mismos encabezados que la placa Leonardo. [5] [6] El diseño de referencia del hardware se distribuye bajo una licencia Creative Commons Attribution Share-Alike 2.5 y está disponible en el sitio web de Arduino. También están disponibles los archivos de diseño y producción para algunas versiones del hardware.
La palabra "uno" significa "uno" en italiano y fue elegida para marcar un importante rediseño del hardware y software de Arduino. [7] La placa Uno fue la sucesora de la versión Duemilanove y fue la novena versión de una serie de placas Arduino basadas en USB. [8] La versión 1.0 del IDE de Arduino para la placa Arduino Uno ha evolucionado a versiones más nuevas. [4] El ATmega328 en la placa viene preprogramado con un gestor de arranque que permite cargarle nuevo código sin el uso de un programador de hardware externo. [3]
Si bien la Uno se comunica mediante el protocolo STK500 original, [1] se diferencia de todas las placas anteriores en que no utiliza un chip serial FTDI USB-a-UART. En su lugar, utiliza el Atmega16U2 (Atmega8U2 hasta la versión R2) programado como un conversor USB-a-serie . [9]
Historia
El proyecto Arduino comenzó en el Interaction Design Institute Ivrea (IDII) en Ivrea , Italia. En ese momento, los estudiantes usaban un microcontrolador BASIC Stamp , a un costo que era un gasto considerable para muchos estudiantes. En 2003, Hernando Barragán creó la plataforma de desarrollo Wiring como 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 Processing . El objetivo del proyecto era crear herramientas simples y de bajo costo para la creación de proyectos digitales por parte de no ingenieros. La plataforma Wiring consistía en una placa de circuito impreso (PCB) con un microcontrolador ATmega 168, un IDE basado en Processing y funciones de biblioteca para programar fácilmente el microcontrolador. [10]
En 2003, Massimo Banzi, con David Mellis, otro estudiante de IDII, y David Cuartielles, agregaron soporte para el microcontrolador ATmega8 más económico a Wiring. Pero en lugar de continuar el trabajo en Wiring, bifurcaron el proyecto y lo rebautizaron como Arduino . Las primeras placas Arduino utilizaban el chip serial FTDI USB-to-UART y un ATmega 168. [10] La Uno se diferenciaba de todas las placas anteriores al incluir el microcontrolador ATmega328P y un ATmega16U2 (Atmega8U2 hasta la versión R2) programado como un convertidor USB-a-serie.
En junio de 2023, Arduino lanzó dos nuevas versiones del Uno: R4 Minima y R4 Wifi. Estas versiones marcan una diferencia con respecto a las placas anteriores, ya que utilizan el microcontrolador Renesas RA4M1 ARM Cortex M4 y la R4 Wifi un coprocesador Espressif ESP32-S3 -MINI. Estas versiones son compatibles en cuanto a formato, pines y alimentación con las versiones R1 a R3, por lo que deberían poder reemplazarse en gran medida. [11]
Conector USB. La especificación del bus USB tiene un rango de voltaje de 4,75 a 5,25 voltios. Las placas Uno oficiales tienen un conector USB-B, pero las placas de terceros pueden tener un conector miniUSB/microUSB/USB-C.
Conector jack de 5,5 mm/2,1 mm . Las placas Uno oficiales admiten de 6 a 20 voltios, aunque se recomiendan de 7 a 12 voltios. El voltaje máximo para las placas Uno de terceros varía entre los fabricantes de placas porque se utilizan varios reguladores de voltaje, cada uno con una clasificación de entrada máxima diferente. La alimentación de este conector se enruta a través de un diodo en serie antes de conectarse a VIN para proteger contra situaciones de voltaje inverso accidental.
Pin VIN en el conector blindado. Tiene un rango de voltaje similar al del conector de barril. Dado que este pin no tiene protección contra voltaje inverso, se puede inyectar o extraer energía de este pin. Cuando se suministra energía al pin VIN, se requiere un diodo en serie externo en caso de que se use un conector de barril. Cuando la placa se alimenta mediante un conector de barril, se puede extraer energía de este pin. [14]
Uno R4
Hay dos placas Uno R4 disponibles: Uno R4 Minima y Uno R4 WiFi. La última tiene un coprocesador WiFi y una matriz LED , pero la Minima no.
Características comunes en las placas Uno R4 Minima [15] y Uno R4 WiFi [16] :
El conector tipo barril y el pin VIN en el cabezal protector admiten hasta un máximo de 24 voltios CC.
Características adicionales disponibles únicamente en la placa Uno R4 Minima : [15]
Conector de programación SWD . Se trata de un conector de 10 pines 5x2 de 1,27 mm para conectar el microcontrolador (R7FA4M1AB) a un dispositivo de programación/depuración SWD (depuración por cable serial) externo.
Funciones adicionales disponibles únicamente en la placa Uno R4 WiFi : [16]
Conector I²C Qwiic . Este conector JST SH de 4 pines y 1,00 mm proporciona una conexión externa a un bus I²C de 3,3 voltios . No conecte dispositivos I²C de 5 voltios directamente a este conector. [18]
Pin de cabecera de batería RTC (VRTC). Este pin conecta una batería externa al RTC (reloj de tiempo real) dentro del microcontrolador (R7FA4M1AB) para mantener el reloj en funcionamiento cuando la placa está apagada. Conecte este pin al lado positivo de una batería de 1,6 a 3,6 voltios y el lado negativo de la batería al pin de cabecera de tierra (GND), como una batería de botón de litio de 3 voltios . [17]
Pin de cabecera de apagado remoto (OFF). Este pin desactiva el regulador de voltaje de conmutación reductor de 5 voltios (SL854102) cuando se alimenta mediante el conector cilíndrico o el pin de cabecera VIN. Conecte este pin al pin de cabecera de tierra (GND) para desactivar este regulador de voltaje.
Encabezados
Funciones generales de los pines
LED : Hay un LED incorporado controlado por el pin digital 13. Cuando el pin tiene un valor alto, el LED está encendido, cuando el pin tiene un valor bajo, está apagado.
VIN : El voltaje de entrada a la placa Arduino/Genuino cuando 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, acceda a él a través de este pin.
5 V : este pin genera una salida de 5 V regulada desde el regulador de la placa. La placa puede recibir alimentación desde 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 5 V o 3,3 V evita el regulador y puede dañar la placa.
3V3 : una fuente de alimentación de 3,3 voltios generada por el regulador integrado. El consumo máximo de corriente es de 50 mA.
GND : Pines de tierra.
IOREF : este pin de la placa Arduino/Genuino proporciona la referencia de voltaje con la que opera el microcontrolador. Un shield configurado correctamente puede leer el voltaje del pin IOREF y seleccionar la fuente de alimentación adecuada, o habilitar traductores de voltaje en las salidas para que funcionen con 5 V o 3,3 V.
Reinicio : Generalmente se utiliza para agregar un botón de reinicio a los escudos que bloquean el del tablero. [9]
Funciones especiales de los pines
Cada uno de los 14 pines digitales y 6 pines analógicos del Uno se pueden utilizar como entrada o salida, bajo control de software (utilizando las funciones pinMode(), digitalWrite() y digitalRead()). Operan a 5 voltios. Cada pin puede proporcionar o recibir 20 mA como condición de funcionamiento recomendada y tiene una resistencia pull-up interna (desconectada por defecto) de 20-50K ohm. No se debe superar un máximo de 40 mA 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 proporciona 10 bits de resolución (es decir, 1024 valores diferentes). De forma predeterminada, miden desde tierra hasta 5 voltios, aunque es posible cambiar el extremo superior del rango utilizando el pin AREF y la función analogReference(). [9]
Además, algunos pines tienen funciones especializadas:
Serie / UART : pines 0 (RX) y 1 (TX). Se utilizan para recibir (RX) y transmitir (TX) datos serie TTL . Estos pines están conectados a los pines correspondientes del chip serie USB a TTL ATmega8U2.
Interrupciones externas : pines 2 y 3. Estos pines se pueden configurar para activar una interrupción en un valor bajo, un flanco ascendente o descendente, o un cambio de valor.
PWM (modulación por ancho de pulso): pines 3, 5, 6, 9, 10 y 11. Puede proporcionar una salida PWM de 8 bits con la función analogWrite().
SPI (Interfaz periférica serial): pines 10 (SS), 11 (MOSI), 12 (MISO) y 13 (SCK). Estos pines admiten la comunicación SPI mediante la biblioteca SPI.
TWI (interfaz de dos cables) / I²C : pin SDA (A4) y pin SCL (A5). Admite comunicación TWI mediante la biblioteca Wire.
AREF (referencia analógica): Tensión de referencia para las entradas analógicas. [9]
Comunicación
El Arduino/Genuino Uno tiene una serie de funciones para comunicarse con un ordenador, otra placa Arduino/Genuino u otros microcontroladores. El ATmega328 proporciona comunicación serial UART TTL (5 V), que está disponible en los pines digitales 0 (RX) y 1 (TX). Un ATmega16U2 en la placa canaliza esta comunicación serial a través de USB y aparece como un puerto COM virtual para el software en el ordenador. El firmware 16U2 utiliza los controladores COM USB estándar y no se necesita ningún controlador externo. Sin embargo, en Windows, se requiere un archivo .inf. El software Arduino (IDE) incluye un monitor serial que permite enviar datos textuales simples hacia y desde la placa. Los LED RX y TX en la placa parpadearán cuando se estén transmitiendo datos a través del chip USB a serial y la conexión USB al ordenador (pero no para la comunicación serial en los pines 0 y 1). Una biblioteca SoftwareSerial permite la comunicación serial en cualquiera de los pines digitales del Uno. [9]
Reinicio automático (software)
En lugar de requerir que se presione físicamente el botón de reinicio antes de una carga, la placa Arduino/Genuino Uno está diseñada de manera que se pueda reiniciar mediante el 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 se activa esta línea (se pone a un nivel bajo), la línea de reinicio cae el tiempo suficiente para reiniciar el chip. [9]
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 a él desde el software (a través de USB). Durante el siguiente medio segundo aproximadamente, el cargador de arranque se ejecuta en el Uno. Si bien está programado para ignorar 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. [9]
Comparación de placas Arduino
La siguiente tabla compara las placas Arduino oficiales y tiene un diseño similar a la tabla del artículo Arduino Nano . La tabla está dividida con una barra oscura en dos grupos de microcontroladores de alto nivel: núcleos AVR de 8 bits (grupo superior) y núcleos ARM Cortex-M de 32 bits (grupo inferior). Aunque las placas de terceros tienen nombres de placa similares, no significa automáticamente que sean 100% idénticas a las placas Arduino oficiales. Las placas de terceros a menudo tienen un regulador de voltaje diferente / un chip USB a UART diferente / una máscara de soldadura de color diferente , y algunas también tienen un conector USB diferente o características adicionales. [19]
Notas de la tabla
Columna de grupo de tamaño de placa : agrupación simplificada de tamaño de dimensión de placa: Uno significa un tamaño similar al de las placas Arduino Uno R3 y Duemilanove (predecesora), Mega significa un tamaño similar al de las placas Arduino Mega 2560 R3 y Mega (predecesora) más largas. Esta tabla tiene un diseño similar a una tabla del artículo Arduino Nano .
Columna de pines/número de pieza de MCU : MCU significa microcontrolador . Toda la información de MCU en esta tabla se obtuvo de las hojas de datos oficiales de esta columna. El recuento de pines es útil para determinar la cantidad de funciones internas de MCU que están disponibles. Es posible que no todas las funciones de hardware de MCU estén disponibles en los pines del conector de protección porque el paquete de CI de MCU tiene más pines que los pines del conector de protección en la placa Arduino (*).
Columna de voltaje de E/S de MCU : los microcontroladores en las placas Arduino oficiales se alimentan a un voltaje fijo de 3,3 o 5 voltios , aunque algunas placas de terceros tienen un interruptor de selección de voltaje. El voltaje nominal del microcontrolador se indica entre paréntesis, aunque las placas Arduino no admiten este rango completo.
Columna de reloj MCU : MHz significa 10 6 Hertz . El MPU ATmega328P y el MCU ATmega4809 están clasificados para un máximo de 20 MHz, pero las placas Uno R3 y Uno WiFi R2 funcionan a 16 MHz. Las siguientes placas Arduino también tienen un cristal de 32,768 kHz: Uno WiFi R2, Uno R4 (TBD), Zero, Due, GIGA R1 WiFi.
Columnas de memoria de la MCU: KB significa 1024 bytes , MB significa 1024 2 bytes. La MCU R7FA4M1AB (placas Uno R4) contiene memoria flash de datos en lugar de memoria EEPROM.
Columna SRAM de MCU : el tamaño de la SRAM no incluye cachés ni buffers periféricos. ECC significa que la SRAM tiene verificación de código de corrección de errores, Par significa que la SRAM tiene verificación de paridad.
Columna USART/UART de MCU : los USART se pueden configurar mediante software para ser: UART / SPI /otros periféricos (varía según la MCU).
Columna Otros periféricos de bus de MCU : para el bus USB , "FS" significa velocidad completa (máximo de 12 Mbps), "HS" significa alta velocidad (máximo de 480 Mbps). Para el bus CAN , "A" significa CAN 2.0A, "B" significa CAN 2.0B, "FD" significa CAN-FD. Algunos buses requieren circuitos externos adicionales para funcionar.
Columna de temporizadores de MCU : los números de esta columna son la cantidad total de ancho de bit de cada temporizador ; por ejemplo, el ATmega328P tiene un temporizador de 16 bits y dos temporizadores de 8 bits. "WD" significa temporizador de vigilancia , "RT" significa contador/temporizador en tiempo real, "RC" significa reloj en tiempo real (seg/min/h). Los temporizadores SysTick de 24 bits dentro de los núcleos ARM no están incluidos en el total de 24 bits de esta columna. Las funciones PWM no están documentadas en esta tabla.
^ abc "Arduino UNO para principiantes: proyectos, programación y piezas". makerspaces.com . 7 de febrero de 2017 . Consultado el 4 de febrero de 2018 .
^ "Preguntas frecuentes sobre Arduino". 5 de abril de 2013. Archivado desde el original el 27 de noviembre de 2020. Consultado el 21 de febrero de 2018 .
^ ab "¿Qué es Arduino?". learn.sparkfun.com . Consultado el 4 de febrero de 2018 .
^ ab "Introducción a Arduino" (PDF) . princeton.edu . Archivado desde el original (PDF) el 3 de abril de 2018 . Consultado el 4 de febrero de 2018 .
^ "Arduino Nano". Tienda oficial de Arduino . Consultado el 7 de diciembre de 2022 .
^ "Arduino Leonardo con encabezados". Archivado desde el original el 15 de mayo de 2021.
^ "Versiones anteriores de IDE" . Consultado el 8 de febrero de 2023 .
^ "Placas Arduino antiguas" . Consultado el 8 de febrero de 2023 .
^ abcdefgh "Placa; Uno R3; Tienda". Arduino .
^ ab Hernando Barragán (1 de enero de 2016). "La historia no contada de Arduino". arduinohistory.github.io . Consultado el 6 de marzo de 2016 .
^ "¡Presentamos el Arduino UNO R4! - Noticias - SparkFun Electronics" www.sparkfun.com . Consultado el 7 de agosto de 2023 .
^ ab "MCU; ATmega328P; Docs". Microchip . Archivado desde el original el 27 de marzo de 2023.
^ "¿Qué es Arduino UNO? Guía de inicio rápido". www.rs-online.com . Consultado el 4 de agosto de 2021 .
^ "Uso del pin Vin en Arduino con un shield". Electrical Engineering Stack Exchange . Consultado el 20 de enero de 2024 .
^ abc "Placa; Uno R4 Minima; Documentación". Arduino . Archivado desde el original el 27 de junio de 2023.
^ abc "Placa; Uno R4 WiFi; Documentación". Arduino . Archivado desde el original el 27 de junio de 2023.
^ abc "MCU; R7FA4M1AB; Docs". Renesas . Archivado desde el original el 8 de mayo de 2023.
^ "Sistema de conexión I2C de Qwiic". SparkFun . Archivado desde el original el 7 de septiembre de 2023.
^ "Seeeduino v4.3 (UNO ATmega328P)". Seeed Studio . Archivado desde el original el 22 de noviembre de 2023.
^ "Placa; Uno R3; Documentación". Arduino . Archivado desde el original el 17 de mayo de 2023.
^ "Placa; Uno R3 SMD; Documentación". Arduino . Archivado desde el original el 8 de mayo de 2023.
^ "Placa; Uno R3 SMD; Tienda". Arduino .
^ "Placa; UNO WiFi R2; Documentación". Arduino . Archivado desde el original el 28 de marzo de 2023.
^ "Placa; Uno WiFi R2; Tienda". Arduino .
^ "MCU; ATmega4809; Docs". Microchip . Archivado desde el original el 6 de diciembre de 2022.
^ "Tablero; Leonardo; Docs". Arduino . Archivado desde el original el 5 de abril de 2023.
^ "Tablero; Leonardo; Tienda". Arduino .
^ "MCU; ATmega32U4; Docs". Microchip . Archivado desde el original el 5 de abril de 2023.
^ "Placa; Mega 2560 R3; Documentación". Arduino . Archivado desde el original el 21 de abril de 2023.
^ "Tablero; Mega 2560 R3; Tienda". Arduino .
^ "MCU; ATmeg2560; Docs". Microchip . Archivado desde el original el 1 de marzo de 2023.
^ "Tablero; Uno R4 Minima; Tienda". Arduino .
^ "Placa; Uno R4 WiFi; Tienda". Arduino .
^ "Placa; Cero; Documentos". Arduino . Archivado desde el original el 8 de mayo de 2023.
^ "Placa; Cero; Almacenar". Arduino .
^ "MCU; ATSAMD21G18; Docs". Microchip . Archivado desde el original el 1 de febrero de 2023.
^ "Tablero; Entrega; Documentos". Arduino . Archivado desde el original el 8 de mayo de 2023.
^ "Tablero; Vencimiento; Tienda". Arduino .
^ "MCU; ATSAM3X8E; Docs". Microchip . Archivado desde el original el 26 de octubre de 2022.
^ "Placa; GIGA R1 WiFi; Documentación". Arduino . Archivado desde el original el 14 de mayo de 2023.
^ "Placa; GIGA R1 WiFi; Tienda". Arduino .
^ "MCU; STM32H747XI; Docs". ST . Archivado desde el original el 11 de mayo de 2023.
Atribución:
Este artículo incorpora texto disponible bajo la licencia CC BY-SA 3.0.
Lectura adicional
Enlaces externos
Wikimedia Commons tiene medios relacionados con Arduino Uno .
Página web oficial de Arduino Uno
¿Cuál es la diferencia entre las placas UNO R3 y UNO R4?