Diferencia entre revisiones de «NodeMCU»
De ArduWiki
(→Referencias externas) |
(→Ejemplo 1) |
||
(No se muestran 2 ediciones intermedias del mismo usuario) | |||
Línea 116: | 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 == |
Revisión actual del 17:03 18 sep 2019
Contenido
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
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
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
- ESP8266 datasheat - Espressif