Diferencia entre revisiones de «NodeMCU»
De ArduWiki
(→LEDs) |
(→Ejemplo 1) |
||
(No se muestran 10 ediciones intermedias del mismo usuario) | |||
Línea 11: | Línea 11: | ||
|uC||Tensilica ESP8266 | |uC||Tensilica ESP8266 | ||
|- | |- | ||
− | |Bus|| | + | |Bus||32 bits |
|- | |- | ||
− | |Velocidad|| | + | |Velocidad||80-160 MHz |
|- | |- | ||
− | |Memoria [[flash]]|| | + | |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|| | + | |Corriente por pines||12 mA |
|- | |- | ||
− | | | + | |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. | * 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) de 10 bits. | + | * El ESP8266 tiene un solo puerto análogo (A0) con ADC de 10 bits. |
== LEDs == | == LEDs == | ||
Línea 49: | Línea 85: | ||
* 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 68: | 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 77: | 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 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