Skip to Content

Comparação entre NodeMCU ESP8266 e Arduino UNO

Comparação entre NodeMCU ESP8266 e Arduino UNO

Este artigo fornece todas as informações necessárias sobre o pinout e as diferenças entre as placas NodeMCU ESP8266 e Arduino UNO.

Incluí um diagrama detalhado das especificações dos pinos do NodeMCU ESP8266 e do Arduino UNO.

Depois de ler este artigo, vai aprender como usar o Arduino UNO e a placa ESP8266 com o Arduino IDE, bem como as diferenças técnicas entre as duas placas.

Materiais necessários

Componentes de hardware

Arduino Uno Rev3 Amazon
NodeMCU ESP8266 Amazon

Software

Arduino IDE Arduino IDE

A Makerguides.com é participante do Programa de Associados da Amazon Services LLC, um programa de publicidade de afiliados concebido para fornecer um meio de sites obterem taxas de publicidade ao publicitar e linkar para produtos na Amazon.com.

Qual é a diferença entre o NodeMCU e o ESP8266?

O NodeMCU ESP8266 é um microcontrolador de 32 bits de baixo consumo, com um processador Tensilica RISC de 32 bits integrado que funciona a 160 MHz e inclui um módulo WiFi embutido.

O Arduino UNO é a placa mais popular entre iniciantes. O Arduino UNO é baseado no microcontrolador ATmega328P de 8 bits, que funciona a 16 MHz.

O microcontrolador do Arduino UNO opera com lógica de 5V, e todos os pinos suportam 5V.

Vem com 2KB de RAM, 32KB de memória flash para armazenar programas e 1 KB de EEPROM para guardar parâmetros.

Especificações do NodeMCU ESP8266 e Arduino UNO

Função Descrição  (NodeMCU ESP8266) Descrição  (Arduino UNO)
Microcontrolador Tensilica 32-bit Xtensa LX106 ATmega328P
Memória Flash 4 MB 32 KB (0.5 KB é usado para o Bootloader)
SRAM 128 KB 2 KB
EEPROM Não disponível512 bytes (Software) 1 KB
Velocidade do CLOCK 80 MHz ou 160 MHz 16 MHz
Tensão de funcionamento 3.3V DC 5V DC
Tensão de entrada 7-12 DC 6V-20V DC
Consumo de corrente 15 µA – 400 mA 45 mA – 80 mA
Corrente DC por pino I/O 12 mA 40 mA
Pinos digitais I/O 17 14
Pinos de entrada analógica 1 6
UARTs 2 1
SPI 2 1
I2C 1 1
PWM 4 6
WiFi Sim Não
Bluetooth Não Não

Comparação de pinos do NodeMCU ESP8266 e Arduino UNO

Pode consultar o diagrama NodeMCU ESP8266 Schematic para mais detalhes sobre os componentes presentes na placa ESP8266.

O diagrama de pinos do ESP8266 está apresentado abaixo.

Pin Diagram of ESP8266
Diagrama de pinos do ESP8266

Também pode consultar o diagrama Arduino Uno Schematic para detalhes dos componentes presentes na placa Arduino UNO.

O diagrama de pinos do Arduino UNO está apresentado abaixo.

Pin Diagram of Arduino UNO
Diagrama de pinos do Arduino UNO

Alimentação

Pode fornecer uma tensão regulada de 5V DC para alimentar o ESP8266. Os circuitos reguladores internos convertem estes 5V para 3.3V DC, pois o NodeMCU ESP8266 funciona com lógica de 3.3V. 

O pino VIN pode fornecer diretamente ao NodeMCU ESP8266 e aos seus periféricos uma fonte de 5V regulada.

Os pinos 3.3V são a saída do regulador de tensão integrado na placa.

Estes pinos podem ser usados para alimentar componentes externos.

Power Supply of ESP8266 (NodeMCU ESP8266 Vs. Arduino UNO Board_
Pinos de alimentação

Da mesma forma, no Arduino UNO, a tensão de entrada (VIN) é usada para fornecer alimentação externa de 5V a 9V DC.

3.3V e 5V pinos são a saída do regulador de tensão integrado na placa.

A corrente máxima é de 50mA. GND representa as massas do NodeMCU ESP8266 e do Arduino UNO.

Power Supply of Arduino UNO (NodeMCU ESP8266 Vs. Arduino UNO Board)
Pinos de alimentação

Pino de Entrada/Saída de Uso Geral (GPIO)

O NodeMCU ESP8266 tem 17 pinos GPIO que podem ser configurados como entrada ou saída digital. Também podem ser usados para várias funções como I2C, SPI, UART, PWM por software.

Cada GPIO digital pode ser configurado com pull-up ou pull-down interno, ou definido para alta impedância.

Quando configurado como entrada, pode ser definido para edge-trigger ou level-trigger para gerar interrupções no CPU.

General Purpose Input Output (GPIO) Pin of ESP8266 (NodeMCU ESP8266 Vs. Arduino UNO Board)
Pinos GPIO

O Arduino Uno tem 14 pinos digitais de entrada/saída, dos quais seis podem ser usados como saídas PWM, e seis pinos de entrada analógica.

No código Arduino, pode usar a função pinMode(pin, direction) para definir a direção do pino, digitalRead(pin, value) para ler o valor do pino digital, e digitalWrite(pin, value) para escrever um valor digital no pino.

General Purpose Input Output (GPIO) Pin of Arduino UNO (NodeMCU ESP8266 Vs. Arduino UNO Board)
Pinos GPIO

Pino Analógico

O NodeMCU ESP8266 tem um pino analógico (A0). O Arduino UNO tem seis pinos analógicos (A0 – A5).

São usados para fornecer entrada analógica no intervalo de 0-5V.

Ambas as placas têm um ADC de 10 bits de resolução, o que significa que irá obter valores entre 0 e 1023.

No código Arduino, pode usar a função analogRead() para ler valores dos pinos analógicos e analogWrite() para escrever nos pinos analógicos.

Pino de Interface Serial Periférica (SPI)

Existem duas interfaces SPI no NodeMCU ESP8266 (SPI e HSPI). Ambas suportam operações Master e Slave.

O clock em modo Master pode ser configurado até 80 MHz, enquanto em modo Slave vai até 20 MHz. Apenas o Master pode gerar ciclos de clock.

Os pinos HSPI_CLK – GPIO14, HSPI_MISO – GPIO12, HSPI_MOSI – GPIO13, HSPI_CS – GPIO15 são usados para comunicação SPI.

Os pinos SCLK–GPIO6, MISO–GPIO7, MOSI – GPIO8, CS – GPIO11 não estão disponíveis na placa para o utilizador.

Serial Peripheral Interface (SPI) Pin of ESP8266
Pinos SPI

O Arduino Uno tem uma interface de comunicação SPI. Pino número 10 (SS), 11 (MOSI), 12 (MISO) e 13 (SCK).

Serial Peripheral Interface (SPI) Pin of Arduino UNO
Pinos SPI

Pode consultar o SPI library para exemplos de comunicação SPI.

Pino I2C

No NodeMCU ESP8266, os GPIO4 e GPIO5 podem ser usados como SDA e SCL para a interface I2C.

A frequência de clock é de 100 kHz no máximo. Não tem funções alternativas.

O Arduino UNO tem uma interface de comunicação I2C. O pino A4 (SDA) e A5 (SCL) são usados para a interface I2C.

Pode consultar o wire library para exemplos de comunicação I2C.

Pino UART (Universal Asynchronous Receiver Transmitter)

O NodeMCU ESP8266 tem dois UARTs de hardware (UART0 e UART1) com taxas até 115200 e pode comunicar até 4.5 Mbps.

  • UART0 TX – GPIO1, UART0 RX – GPIO3
  • UART1 TX – GPIO15, UART1 RX – GPIO13
  • UART2 TX – GPIO2, UART2 RX – GPIO8 (Não disponível).

O Arduino Uno tem um UART para comunicação série, e pode usar os pinos 0 (RX) e 1 (TX) com a taxa de transmissão especificada.

Pode usar o serial library para UART. Também pode usar a biblioteca Software Serial para definir qualquer pino GPIO como Tx e Rx para comunicação UART.

Pinos de Interrupção

Todos os pinos GPIO, exceto o GPIO16, suportam interrupções no NodeMCU ESP8266.

Os pinos 2 e 3 do Arduino Uno podem ser configurados para disparar uma interrupção em valor baixo, numa subida ou descida de sinal, ou numa alteração de valor.

Use attach interrupt para associar interrupções aos pinos mencionados.

Pinos de Modulação por Largura de Pulso (PWM)

A placa NodeMCU ESP8266 tem quatro canais de PWM.

A saída PWM pode ser implementada por software e usada para controlar motores digitais e LEDs. A frequência PWM é ajustável de 1000 μs a 10000 μs.

Os pinos 3, 5, 6, 9, 10 e 11 do Arduino UNO fornecem saída PWM usando pinos de entrada analógica, cada um com resolução de 10 bits, ou seja, 0 a 1023 valores diferentes.

Pinos SDIO

O NodeMCU ESP8266 possui uma interface SDIO (Secure Digital Input/Output), que permite ligar cartões SD diretamente.

Suporta SDIO v1.1 de 4 bits a 25 MHz e SDIO v2.0 de 4 bits a 50 MHz.

O pino SDIO não está disponível no Arduino UNO.

Pinos de CONTROLO

Pino EN – O chip NodeMCU ESP8266 é ativado quando o pino EN está em nível ALTO. Quando está em nível BAIXO, o chip funciona com consumo mínimo de energia.

Pino WAKE – O pino WAKE é usado para acordar o chip do deep sleep. Os pinos EN e WAKE não estão disponíveis no Arduino UNO.

Pino RST – O pino RST é usado para reiniciar o chip ESP8266 e o MCU do Arduino UNO.

CONECTOR ICSP

O Arduino Uno tem um conector fêmea ICSP. A programação em circuito (ICSP) permite programar o Arduino UNO sem o desligar do circuito.

O Arduino UNO desenvolveu os seus próprios conectores de programação ICSP.

Existem seis pinos ICSP (MISO, MOSI, SCK, VCC, Ground, Reset) disponíveis na placa Arduino Uno que podem ser ligados a um programador através de um cabo de programação.

ICSP Header
Conector ICSP

Como escrever código para o NodeMCU ESP8266?

Existem várias plataformas de desenvolvimento que podem ser usadas para programar o NodeMCU ESP8266.

Pode desenvolver firmware para o NodeMCU ESP8266 usando o Arduino IDE.

Siga os passos abaixo para configurar o Arduino IDE para o NodeMCU ESP8266.

Passo 1: Primeiro, faça o download do Arduino IDE Software

Passo 2: Abra o Arduino IDE e vá a Ficheiro > Preferências.

Open Arduino IDE and Go to File > Preference

Passo 3: Na janela de Preferências, copie e cole o link abaixo em URLs Adicionais para o Gestor de Placas.

Note que, se quiser adicionar outro link, pode colocar uma vírgula e colar outro link a seguir. http://arduino.esp8266.com/stable/package_esp8266com_index.json

copy-paste the below link in Additional Boards Manager URLs

Passo 4: Agora feche a janela de Preferências e vá a Ferramentas > Placa > Gestor de Placas

Now close the Preference window and go to Tools

Passo 5: Na janela do Gestor de Placas, escreva ESP8266 na caixa de pesquisa. O ESP8266 aparecerá nos resultados. Agora, selecione a versão mais recente da placa e clique em instalar.

Boards Manager window

Passo 6: Após a instalação da placa, abra Ferramentas > Placa > e selecione NodeMCU ESP8266 1.0 (ESP-12E Module).

Para selecionar a Porta, vá a Ferramentas > Porta e selecione a porta COM do ESP8266.

After installation of the board is complete

Passo 7: No menu Ficheiro, vá a Exemplos e abra o exemplo Blink.

In the File menu, go to Example and then open Blink example

Passo 8: Clique em Verificar código e depois faça upload para a sua placa.

Click on Verify code and then upload it on your board

Como escrever código para o Arduino Uno?

Pode escrever código de firmware para o Arduino Uno com o conhecido Arduino IDE.

Pode desenvolver muito mais aplicações no Arduino Uno usando o Arduino IDE em C++.

Passo 1: Primeiro, faça o download do Arduino IDE

Se não perceber as instruções, veja também a imagem e siga os passos.

Passo 2: Abra o Arduino IDE e vá a Ferramentas > Placa > Arduino AVR Boards > Selecione Arduino Uno.

Para selecionar a Porta, vá a Ferramentas > Porta e selecione a porta COM do Arduino UNO.

Open Arduino IDE and Go to Tools

Passo 3: No menu Ficheiro, vá a Exemplos e abra o exemplo Blink.

In the File menu, go to Example and then open Blink example

Passo 4: Clique em Verificar código e depois faça upload para a sua placa.

Click on Verify code and then upload it on your board

Quais são as vantagens do NodeMCU?

  • O NodeMCU ESP8266 é um dispositivo de baixo consumo e baixo custo, ideal para aplicações embutidas.
  • Vem com um módulo WiFi integrado, tornando-o adequado para aplicações de Internet das Coisas (IoT).
  • O NodeMCU ESP8266 também suporta FreeRTOS, permitindo ao programador criar tarefas paralelas para a placa.
  • Melhor memória e processamento do que o Arduino UNO.
  • A placa ESP8266 é compatível com breadboard e também adequada para montagem em PCB (Placa de Circuito Impresso).
  • Fácil de programar usando o Arduino IDE e software open-source.

Quais são as vantagens do Arduino Uno?

  • O Arduino UNO é uma placa económica e a mais popular para iniciantes.
  • O hardware e software open-source também oferecem grande apoio da comunidade.
  • O Arduino UNO tem mais pinos analógicos comparado ao ESP8266.

O ESP8266 é melhor do que o Arduino UNO?

Se comparar desempenho, custo, consumo e funcionalidades, o ESP8266 é muito superior ao Arduino UNO.

O NodeMCU ESP8266 suporta WiFi para servidores web, podendo ser configurado em modo STA ou AP.

Pode atualizar o firmware do ESP8266 remotamente (OTA).

Graças ao FreeRTOS, pode executar tarefas paralelas no ESP8266.

A única desvantagem do ESP8266 é ter apenas um pino analógico integrado, por isso não pode ligar mais do que uma interface analógica ao ESP8266 de origem.

Conclusão

Na minha opinião, há poucos casos em que não deve optar por uma placa baseada em NodeMCU ESP8266.

As placas baseadas em NodeMCU ESP8266 têm baixo consumo, muita memória e Wi-Fi integrado.

No entanto, se é iniciante e quer exemplos prontos para tudo, deve escolher o Arduino UNO. Tem um grande apoio da comunidade.

Se tiver dúvidas ou sugestões, ou se acha que falta algo neste tutorial, deixe um comentário abaixo.