Este artículo te proporcionará toda la información necesaria sobre el pinout y la diferencia entre las placas NodeMCU ESP8266 y Arduino UNO.
He incluido un diagrama detallado de especificaciones de pines tanto del NodeMCU ESP8266 como del Arduino UNO.
Después de leer este artículo, aprenderás cómo usar la placa Arduino UNO y la ESP8266 con Arduino IDE y la diferencia técnica entre ambas placas.
Materiales
Componentes de hardware
Software
| Arduino IDE | Arduino IDE |
Makerguides.com participa en el Programa de Afiliados de Amazon Services LLC, un programa de publicidad para afiliados diseñado para proporcionar un medio para que los sitios obtengan comisiones por publicidad al anunciar y enlazar productos en Amazon.com.
¿Cuál es la diferencia entre NodeMCU y ESP8266?
El NodeMCU ESP8266 es un microcontrolador de 32 bits de bajo consumo con un procesador RISC Tensilica de 32 bits integrado que funciona a 160 MHz y cuenta con un módulo WiFi incorporado.
El Arduino UNO es la placa más popular entre principiantes. Arduino UNO está basado en el microcontrolador ATmega328P de 8 bits que funciona a una velocidad de reloj de 16 MHz.
El microcontrolador Arduino UNO funciona con lógica de 5V, y todos sus pines soportan 5V.
Incluye 2KB de RAM, 32KB de memoria flash para almacenar programas y 1 KB de EEPROM para guardar parámetros.
Especificaciones de NodeMCU ESP8266 y Arduino UNO
| Función | Descripción (NodeMCU ESP8266) | Descripción (Arduino UNO) |
| Microcontrolador | Tensilica 32-bit Xtensa LX106 | ATmega328P |
| Memoria Flash | 4 MB | 32 KB (0.5 KB se usan para el Bootloader) |
| SRAM | 128 KB | 2 KB |
| EEPROM | No disponible512 bytes (Software) | 1 KB |
| Velocidad de reloj | 80 MHz o 160 MHz | 16 MHz |
| Voltaje de funcionamiento | 3.3V DC | 5V DC |
| Voltaje de entrada | 7-12 DC | 6V-20V DC |
| Consumo de corriente | 15 µA – 400 mA | 45 mA – 80 mA |
| Corriente DC por pin I/O | 12 mA | 40 mA |
| Pines digitales I/O | 17 | 14 |
| Pines de entrada analógica | 1 | 6 |
| UARTs | 2 | 1 |
| SPI | 2 | 1 |
| I2C | 1 | 1 |
| PWM | 4 | 6 |
| WiFi | Sí | No |
| Bluetooth | No | No |
Comparativa de pines entre NodeMCU ESP8266 y Arduino UNO
Puedes consultar el NodeMCU ESP8266 Schematic diagrama para más detalles sobre los componentes presentes en la placa ESP8266.
El diagrama de pines del ESP8266 se muestra a continuación.

También puedes consultar el Arduino Uno Schematic diagrama para ver los detalles de los componentes presentes en la placa Arduino UNO.
El diagrama de pines del Arduino UNO se muestra a continuación.

Alimentación
Puedes suministrar un voltaje regulado de 5V DC para alimentar el ESP8266. Los circuitos reguladores internos convertirán estos 5V a 3.3V DC porque el NodeMCU ESP8266 funciona con lógica de 3.3V.
El VIN pin puede suministrar directamente al NodeMCU ESP8266 y sus periféricos una fuente de voltaje regulada de 5V.
Los pines 3.3V son la salida de un regulador de voltaje integrado en la placa.
Estos pines pueden usarse para alimentar componentes externos.

De forma similar, en Arduino UNO el voltaje de entrada (VIN) se usa para proporcionar una fuente de alimentación externa de 5V a 9V DC.
3.3V y 5V pines son la salida del regulador de voltaje integrado en la placa.
La corriente máxima que se puede extraer es de 50mA. GND representa las tierras de NodeMCU ESP8266 y Arduino UNO.

Pines de Entrada/Salida de Propósito General (GPIO)
NodeMCU ESP8266 tiene 17 pines GPIO que pueden configurarse como entrada o salida digital. También pueden usarse para varias funciones como I2C, SPI, UART, PWM de forma programática.
Cada GPIO digital puede configurarse con pull-up o pull-down interno, o dejarse en alta impedancia.
Cuando se configura como entrada, también puede ajustarse para disparar interrupciones por flanco o por nivel para generar interrupciones en la CPU.

Arduino Uno tiene 14 pines de entrada/salida digital, de los cuales seis pueden usarse como salidas PWM y seis pines de entrada analógica.
En el código de Arduino, puedes usar la función pinMode(pin, direction) para establecer la dirección del pin como entrada o salida, digitalRead(pin, value) para leer el valor en el pin digital, y digitalWrite(pin, value) para escribir el valor digital en el pin.

Pin analógico
NodeMCU ESP8266 tiene un pin analógico (A0). Arduino UNO tiene seis pines analógicos (A0 – A5).
Se utilizan para proporcionar entrada analógica en el rango de 0-5V.
Ambas placas tienen un ADC de resolución de 10 bits, lo que significa que obtendrás valores entre 0 y 1023.
En el código de Arduino, puedes usar la función analogRead() para leer valores de los pines analógicos y analogWrite() para escribir en los pines analógicos.
Pines de Interfaz Periférica Serial (SPI)
NodeMCU ESP8266 tiene dos interfaces SPI (SPI y HSPI). Ambas soportan operaciones Master y Slave.
El reloj en modo Master puede configurarse hasta 80 MHz, mientras que en modo Slave llega hasta 20 MHz. Solo el Master puede generar el ciclo de reloj.
HSPI_CLK – GPIO14, HSPI_MISO – GPIO12, HSPI_MOSI – GPIO13, HSPI_CS – GPIO15 son los pines usados para comunicación SPI.
SCLK–GPIO6, MISO–GPIO7, MOSI – GPIO8, CS – GPIO11 no están disponibles en la placa para el usuario.

Arduino Uno tiene una interfaz de comunicación SPI. Los pines 10 (SS), 11 (MOSI), 12 (MISO) y 13 (SCK).

Puedes consultar el SPI library para ejemplos de comunicación SPI.
Pines I2C
En NodeMCU ESP8266, GPIO4 y GPIO5 pueden usarse como SDA y SCL para la interfaz I2C.
La frecuencia de reloj es de hasta 100 kHz como máximo. No tiene funciones alternativas.
Arduino UNO tiene una interfaz de comunicación I2C. El pin A4 (SDA) y A5 (SCL) se usan para la interfaz I2C.
Puedes consultar el wire library para ejemplos de comunicación I2C.
Pines de Receptor/Transmisor Asíncrono Universal (UART)
NodeMCU ESP8266 tiene dos UARTs hardware (UART0 y UART1) con velocidades de hasta 115200 baudios y puede comunicarse hasta 4.5 Mbps.
- UART0 TX – GPIO1, UART0 RX – GPIO3
- UART1 TX – GPIO15, UART1 RX – GPIO13
- UART2 TX – GPIO2, UART2 RX – GPIO8 (No disponible).
Arduino Uno tiene un UART para comunicación serie, y puedes usar los pines 0 (RX) y 1 (TX) con la velocidad de baudios que elijas.
Puedes usar el serial library para UART. También puedes usar la Software Serial librería para configurar cualquier pin GPIO como Tx y Rx para comunicación UART.
Pines de interrupción
Todos los pines GPIO excepto el GPIO16 soportan interrupciones en NodeMCU ESP8266.
En Arduino Uno, los pines 2 y 3 pueden configurarse para disparar una interrupción por valor bajo, flanco ascendente o descendente, o cambio de valor.
Usa attach interrupt para asociar una interrupción a los pines mencionados.
Pines de Modulación por Ancho de Pulso (PWM)
La placa NodeMCU ESP8266 tiene cuatro canales de PWM.
La salida PWM puede implementarse por software y usarse para controlar motores digitales y LEDs. El rango de frecuencia PWM es ajustable de 1000 μs a 10000 μs.
En Arduino UNO, los pines 3, 5, 6, 9, 10 y 11 proporcionan salida PWM usando pines de entrada analógica, cada uno con una resolución de 10 bits, es decir, 0 a 1023 valores diferentes.
Pines SDIO
El NodeMCU ESP8266 cuenta con una interfaz SDIO (Secure Digital Input/Output), que se usa para conectar tarjetas SD directamente.
También soporta SDIO v1.1 de 4 bits a 25 MHz y SDIO v2.0 de 4 bits a 50 MHz.
El pin SDIO no está disponible en Arduino UNO.
Pines de control
Pin EN – El chip NodeMCU ESP8266 se habilita cuando el pin EN está en ALTO. Si está en BAJO, el chip funciona con el mínimo consumo de energía.
Pin WAKE – El pin WAKE se usa para despertar el chip del deep sleep. Los pines EN y WAKE no están disponibles en Arduino UNO.
Pin RST – El pin RST se usa para reiniciar el chip ESP8266 y el microcontrolador de Arduino UNO.
CONECTOR ICSP
Arduino Uno tiene un conector hembra ICSP. La programación serie en circuito (ICSP) permite programar el Arduino UNO sin desconectarlo del circuito.
Arduino UNO ha desarrollado sus propios conectores de programación serie en circuito.
Hay seis pines ICSP (MISO, MOSI, SCK, VCC, GND, Reset) disponibles en la placa Arduino Uno que pueden conectarse a un programador mediante un cable de programación.

¿Cómo escribir código para NodeMCU ESP8266?
Existen varias plataformas de desarrollo que puedes usar para programar el NodeMCU ESP8266.
Puedes desarrollar firmware para NodeMCU ESP8266 usando Arduino IDE.
Sigue los pasos a continuación para configurar Arduino IDE para NodeMCU ESP8266.
Paso 1: Primero descarga Arduino IDE Software
Paso 2: Abre Arduino IDE y ve a File > Preference.

Paso 3: En la ventana de Preferencias, copia y pega el siguiente enlace en Additional Boards Manager URLs.
Ten en cuenta que si quieres añadir otro enlace, puedes poner una coma y luego pegar el otro enlace. http://arduino.esp8266.com/stable/package_esp8266com_index.json

Paso 4: Ahora cierra la ventana de Preferencias y ve a Tools > Board > Boards Manager

Paso 5: En la ventana Boards Manager, escribe ESP8266 en la caja de búsqueda. ESP8266 aparecerá en los resultados. Ahora selecciona la última versión de la placa y haz clic en instalar.

Paso 6: Después de completar la instalación de la placa, abre Tools > Board > y selecciona NodeMCU ESP8266 1.0 (ESP-12E Module).
Para seleccionar el puerto, ve a Tools > Port y selecciona el puerto COM del ESP8266.

Paso 7: En el menú File, ve a Example y abre el ejemplo Blink.

Paso 8: Haz clic en Verify code y luego súbelo a tu placa.

¿Cómo escribir código para Arduino Uno?
Puedes escribir el firmware para Arduino Uno con el conocido Arduino IDE.
Puedes desarrollar muchísimas aplicaciones en Arduino Uno usando Arduino IDE en C++.
Paso 1: Primero, descarga Arduino IDE
Si no entiendes las instrucciones, también puedes ver la imagen y seguir los pasos.
Paso 2: Abre Arduino IDE y ve a Tools > Board > Arduino AVR Boards > Selecciona Arduino Uno.
Para seleccionar el puerto, ve a Tools > Port y selecciona el puerto COM del Arduino UNO.

Paso 3: En el menú File, ve a Example y abre el ejemplo Blink.

Paso 4: Haz clic en Verify code y luego súbelo a tu placa.

¿Cuáles son las ventajas de NodeMCU?
- El NodeMCU ESP8266 es un dispositivo de bajo consumo y bajo coste, ideal para aplicaciones embebidas.
- Incluye un módulo WiFi integrado, lo que lo hace perfecto para aplicaciones de Internet de las Cosas (IoT).
- NodeMCU ESP8266 también es compatible con FreeRTOS, lo que permite al programador diseñar tareas en paralelo para la placa.
- Mejor memoria y procesamiento que Arduino UNO.
- La placa ESP8266 es compatible con protoboard y también adecuada para colocar en una placa de circuito impreso (PCB).
- Fácil de programar usando Arduino IDE y software de código abierto.
¿Cuáles son las ventajas de Arduino Uno?
- Arduino UNO es una placa económica y la más popular para principiantes.
- El hardware y software de código abierto también ofrecen un gran soporte de la comunidad.
- Arduino UNO tiene más pines analógicos en comparación con el ESP8266.
¿Es mejor el ESP8266 que el Arduino UNO?
Si comparas rendimiento, coste, consumo y funcionalidad, el ESP8266 es mucho mejor que el Arduino UNO.
NodeMCU ESP8266 soporta WiFi para servidores web, y puede configurarse en modo STA o AP.
Puedes actualizar el firmware del ESP8266 de forma inalámbrica (OTA).
Gracias a FreeRTOS, puedes ejecutar tareas en paralelo en el ESP8266.
La única desventaja del ESP8266 es que solo tiene un pin analógico integrado, por lo que no puedes conectar más de una interfaz analógica con el ESP8266 integrado.
Conclusión
En mi opinión, solo hay unos pocos casos en los que no deberías elegir una placa basada en NodeMCU ESP8266.
Las placas basadas en NodeMCU ESP8266 tienen bajo consumo, mucha memoria y Wi-Fi integrado.
Sin embargo, si eres principiante y quieres ejemplos listos para todo, deberías optar por Arduino UNO. Tiene un gran soporte de la comunidad.
Si tienes alguna pregunta o sugerencia, o crees que falta algo en este tutorial, por favor deja un comentario abajo.


