Diferencia entre revisiones de «NodeMCU»

De ArduWiki
Saltar a: navegación, buscar
(Puerto serie)
(Ejemplo 1)
 
(No se muestran 13 ediciones intermedias del mismo usuario)
Línea 11: Línea 11:
 
|uC||Tensilica ESP8266
 
|uC||Tensilica ESP8266
 
|-
 
|-
|Bus||8 bits
+
|Bus||32 bits
 
|-
 
|-
|Velocidad||16Mhz
+
|Velocidad||80-160 MHz
 
|-
 
|-
|Memoria [[flash]]||32KB (0.5KB para arranque)
+
|Memoria [[flash]]||4MB (512KB normal)
 
|-
 
|-
 
|Memoria [[SRAM]]||2KB
 
|Memoria [[SRAM]]||2KB
Línea 27: Línea 27:
 
|Pines digitales||13 (6 PWM de 8 bits)
 
|Pines digitales||13 (6 PWM de 8 bits)
 
|-
 
|-
|Pines analógicos||1 (A0) de 10 bits
+
|Pines analógicos||1 (A0) de ADC de 10 bits
 
|-
 
|-
|Corriente por pines||20 mA
+
|Corriente por pines||12 mA
 
|-
 
|-
|[[LED_BUILTIN]]||D0
+
|WiFi||2.4 GHz, 802.11, max 5 simultaneas
 
|}
 
|}
  
 
== Pines ==
 
== Pines ==
 +
{|class="wikitable"
 +
|+Especificaciones técnicas
 +
!Pin!!GPIO!!Nombre
 +
|-
 +
|D0||16||Digital 0 (LED)
 +
|-
 +
|D1||5||Digital 1
 +
|-
 +
|D2||4||Digital 2
 +
|-
 +
|D3||0||Digital 3
 +
|-
 +
|D4||2||Digital 4 (LED ESP-12E)
 +
|-
 +
|D5||14||Digital 5
 +
|-
 +
|D6||12||Digital 6
 +
|-
 +
|D7||13||Digital 7
 +
|-
 +
|D8||15||Digital 8
 +
|-
 +
|D9||3||Digital 9
 +
|-
 +
|D10||1||Digital 10
 +
|-
 +
|VIN||+5V (USB)
 +
|-
 +
|3V||+3.3V
 +
|-
 +
|G||GND
 +
|}
  
 
== Pines digitales ==
 
== Pines digitales ==
 +
* Tenemos 11 pines de entrada/salida digital. Pero no te recomiendo usar los pines 6~11 porque están conectados a la memoria flash.
 +
 +
== PWM ==
 +
* ESP8266 tiene cuatro (4) salidas PWM.
 +
* El rango de frecuencia es de 100 Hz a 1 KHz.
  
 
== Pines analogicos ==
 
== Pines analogicos ==
 +
* El ESP8266 tiene un solo puerto análogo (A0) con ADC de 10 bits.
  
 
== LEDs ==
 
== LEDs ==
 +
* LED1: D4 y pertenece al ESP-12E.
 +
* LED2: D0 es de la propia placa, parpadea durante la carga de un programa
  
 
== Botones ==
 
== Botones ==
 
* Tiene dos botones: RST (reset) y FLASH, que permite activar el modo de carga de firmware.
 
* Tiene dos botones: RST (reset) y FLASH, que permite activar el modo de carga de firmware.
 
* Si usamos el [[IDE]] Arduino no son necesarios.
 
* Si usamos el [[IDE]] Arduino no son necesarios.
 +
;RST:Reset, reinicia la placa pero no borra código.
 +
;FLASH:Dejar estado de ejecución y pasar a estado de recibir código.
  
 
== Puerto serie ==
 
== Puerto serie ==
 
* El puerto serie esta en pin 1 (Rx) y pin 3 (Tx), están protegidos con resistencias de 470 ohms.
 
* El puerto serie esta en pin 1 (Rx) y pin 3 (Tx), están protegidos con resistencias de 470 ohms.
 +
;Rx0: GPIO 3
 +
;Tx0: GPIO 1
 +
;Rx1: GPIO 2
 +
;Tx1: GPIO 8
 +
 +
== I2c bus ==
 +
* Soporta i2c maestro y esclavo.
 +
* Frecuencia maxima 100 kHz
 +
;SCL: GPIO 14
 +
;SDA: GPIO 2
  
 
== Sintaxis ==
 
== Sintaxis ==
Línea 64: Línea 116:
  
 
== Ejemplo 1 ==
 
== Ejemplo 1 ==
 +
<syntaxhighlight lang="c++">
 +
#define LED_BUILTIN 2
 +
#define BUTTON_BUILTIN 0
 +
 +
void setup() {
 +
  pinMode(2, OUTPUT);
 +
  pinMode(0, INPUT);
 +
}
 +
 +
void loop() {
 +
  int estado = digitalRead(0);
 +
  digitalWrite(2, estado);
 +
}
 +
</syntaxhighlight>
  
 
== Ejemplo 2 ==
 
== Ejemplo 2 ==
 +
<syntaxhighlight lang="c++">
 +
void setup() {
 +
  pinMode(D2, OUTPUT);
 +
}
 +
 +
void loop() {
 +
  //El LED tiene una resistencia pull-up, por eso se enciende con LOW
 +
  digitalWrite(D2, LOW);
 +
  delay(1000); //Esperar un segundo
 +
  //Apagar el LED
 +
  digitalWrite(D2, HIGH);
 +
  delay(1000); //Esperar un segundo
 +
}
 +
</syntaxhighlight>
  
 
== Vea tambien ==
 
== Vea tambien ==
Línea 73: Línea 153:
  
 
== Referencias externas ==
 
== Referencias externas ==
 +
* [https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf ESP8266 datasheat] - Espressif
 +
 
[[Category:Placas]]
 
[[Category:Placas]]

Revisión actual del 13:03 18 sep 2019

Descripción

NodeMCU integra el ESP8266 con un modulo WiFi (ESP-12E). Este módulo tiene, además del microprocesador (Tensilica), una antena PCB, un LED conectado al GPIO2 y una memoria flash de 16 Mbit (= 4 MB). Es un proyecto de código abierto, el firmware y el diseño hardware esta disponible en GitHub.

Cuando fue presentada, no existía la integración de ESP8266 con el entorno de IDE de Arduino. No usaba un lenguaje compilado sino uno interpretado llamado LUA. Como todas las placas que usan ESP8266, se les puede cargar cualquier firmware. Puede usarse desde el propio de NodeMCU con lenguaje LUA, a MicroPython. También se puede usar como una placa de Arduino, donde nosotros hacemos el firmware desde cero.

Caracteristicas

Especificaciones técnicas
Parámetro Valor
uC Tensilica ESP8266
Bus 32 bits
Velocidad 80-160 MHz
Memoria flash 4MB (512KB normal)
Memoria SRAM 2KB
Memoria EEPROM 1KB
Alimentación 5V (USB)
Entrada 3V3
Pines digitales 13 (6 PWM de 8 bits)
Pines analógicos 1 (A0) de ADC de 10 bits
Corriente por pines 12 mA
WiFi 2.4 GHz, 802.11, max 5 simultaneas

Pines

Especificaciones técnicas
Pin GPIO Nombre
D0 16 Digital 0 (LED)
D1 5 Digital 1
D2 4 Digital 2
D3 0 Digital 3
D4 2 Digital 4 (LED ESP-12E)
D5 14 Digital 5
D6 12 Digital 6
D7 13 Digital 7
D8 15 Digital 8
D9 3 Digital 9
D10 1 Digital 10
VIN +5V (USB)
3V +3.3V
G GND

Pines digitales

  • Tenemos 11 pines de entrada/salida digital. Pero no te recomiendo usar los pines 6~11 porque están conectados a la memoria flash.

PWM

  • ESP8266 tiene cuatro (4) salidas PWM.
  • El rango de frecuencia es de 100 Hz a 1 KHz.

Pines analogicos

  • El ESP8266 tiene un solo puerto análogo (A0) con ADC de 10 bits.

LEDs

  • LED1: D4 y pertenece al ESP-12E.
  • LED2: D0 es de la propia placa, parpadea durante la carga de un programa

Botones

  • Tiene dos botones: RST (reset) y FLASH, que permite activar el modo de carga de firmware.
  • Si usamos el IDE Arduino no son necesarios.
RST
Reset, reinicia la placa pero no borra código.
FLASH
Dejar estado de ejecución y pasar a estado de recibir código.

Puerto serie

  • El puerto serie esta en pin 1 (Rx) y pin 3 (Tx), están protegidos con resistencias de 470 ohms.
Rx0
GPIO 3
Tx0
GPIO 1
Rx1
GPIO 2
Tx1
GPIO 8

I2c bus

  • Soporta i2c maestro y esclavo.
  • Frecuencia maxima 100 kHz
SCL
GPIO 14
SDA
GPIO 2

Sintaxis

WiFi.mode(WIFI_STA);               //Modo cliente WiFi
WiFi.begin(ssid, clave);

Ventajas

  • Bajo precio, mucho menor que Arduino
  • WiFi incorporado

Desventajas

  • No muy intuitivo las referencias entre numero de pin y puerto GPIO.
  • Alimantacion de 3.3 V

Ejemplo 1

#define LED_BUILTIN 2
#define BUTTON_BUILTIN 0 
 
void setup() { 
   pinMode(2, OUTPUT);
   pinMode(0, INPUT);
} 
 
void loop() {
   int estado = digitalRead(0); 
   digitalWrite(2, estado); 
}

Ejemplo 2

void setup() {
   pinMode(D2, OUTPUT);
}
 
void loop() {
   //El LED tiene una resistencia pull-up, por eso se enciende con LOW
   digitalWrite(D2, LOW);
   delay(1000); //Esperar un segundo
   //Apagar el LED
   digitalWrite(D2, HIGH);
   delay(1000); //Esperar un segundo
}

Vea tambien

Referencias externas