ESP8266 Entradas Salidas Digitales - pensactius/Tutoriales GitHub Wiki

(Información extraída de RANDOM NERD TUTORIALS)

ESP8266 Salidas Digitales

Antes de nada habrá que configurar el pin como Salida. Usaremos la función de Arduino pinMode() como se muestra:

pinMode(GPIO, OUTPUT);

Para controlar el valor de la salida digital usaremos la función digitalWrite(), que acepta como argumento, el GPIO que queremos controlar, y el estado, HIGH (1) o LOW (0).

digitalWrite(GPIO, STATE);

ESP8266 Entradas Digitales

Primero configuraremos el pin como entrada, usaremos la función pinMode():

pnMode(GPIO, INPUT);

Para leer una entrada digital, como un pulsador, usaremos la función digitalRead(), que acepta como argumento, el GPIO que queremos leer:

digitalRead(GPIO);

TODO: traducir GPIOs que se pueden usar

Proyecto de Ejemplo

Para ilustrar como funcionan las entradas y salidas digitales, montaremos un pequeño ejemplo con un pulsador y un LED. Leeremos el estado del pulsador y encenderemos el LED de forma acorde como se muestra en la figura.

Conexiones

Monta el circuito como se muestra a continuación. Conectaremos el LED al GPIO 5 (D1) y el pulsador al GPIO 4 (D2).

Lista de Componentes

Necesitarás los siguientes componentes para montar el circuito:

  • Una placa basada en ESP8266 (NodeMCU o WeMos D1 Mini)
  • LED
  • Resistencia de 220 o 330 Ohm
  • Resistencia de 10K Ohm
  • Protoboard
  • Cables de conexión

// Código original de: https://RandomNerdTutorials.com/esp8266-nodemcu-digital-inputs-outputs-arduino/

// Constantes para los pines a usar
const int buttonPin = 4;     // GPIO al que está conectado el pulsador
const int ledPin =  5;       // GPIO al que está conectado el LED

// variable para almacenar el estado del pulsador
int buttonState = 0;

void setup() {
  // Inicializa el pulsador como entrada
  pinMode(buttonPin, INPUT);
  // initializa el LED como salida
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // lee el estado del pulsador y lo almacena en la variable 'buttonState'
  buttonState = digitalRead(buttonPin);
  // comprueba si el pulsador está pulsado.
  // si lo está, el valor de buttonState será HIGH (1)
  if (buttonState == HIGH) {
    // enciende el LED
    digitalWrite(ledPin, HIGH);
  } else {
    // apaga el LED
    digitalWrite(ledPin, LOW);
  }
}