|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

NodeMCU en español
NodeMCU - Juan Antonio Villalpando

-- Tutorial de NodeMCU en español --

Volver al índice del tutorial NodeMCU

____________________________

220.- Wemos D1 R32 ESP32. Interrupción.

________________________________
- Interrupción con pulsadores.

- Tenemos dos pulsadores, uno en el terminal IO12 y otro en el IO14. También utilizaremos el LED2.

- No pondremos resistencias en los pulsadores, ya que utilizaremos PULLUP: pinMode(pulsador, INPUT_PULLUP);

- Observa cómo ponemos al terminal 12 y 14 en alto sin utilizar resistencia: INPUT_PULLUP

Interrupcion_1.ino

// Juan A. Villalpando.
// KIO4.COM
// Interrupciones con Pulsadores.

const int LED2 = 2;
const int pulsador12 = 12;
const int pulsador14 = 14;

// Funciones cuando se producen las interrupciones.
void IRAM_ATTR pulso_el_12() {
  digitalWrite(LED2, HIGH);
}

void IRAM_ATTR pulso_el_14() {
  digitalWrite(LED2, LOW);
}

void setup() {
  pinMode(pulsador12, INPUT_PULLUP);
  pinMode(pulsador14, INPUT_PULLUP);
  pinMode(LED2, OUTPUT);
  
  attachInterrupt(digitalPinToInterrupt(pulsador12), pulso_el_12, RISING);
  attachInterrupt(digitalPinToInterrupt(pulsador14), pulso_el_14, RISING);
}

void loop() {}

- Observa cómo declaramos la interrupción:

attachInterrupt(digitalPinToInterrupt(pulsador12), pulso_el_12, RISING);

- Indica que la interrupción se ejecutará cuando se active el terminal pulsador, que en este caso es el 12, y ejecutará la función pulsado.

- RISING en la subida de 0 a 1. Si ponemos FALLING será en la bajada de 1 a 0.

- Fíjate que no hay código en el loop.

- El chequeo del toque se hace por interrupción.

- Para chequear los toques se utiliza: touchAttachInterrupt

- Para chequear pulsadores se utiliza: attachInterrupt

___________________________________________________________

- Otro ejemplo.

- Colocamos un pulsador en el terminal 12 y utilizamos el LED2.

Al pulsar el pulsador, se dispara una interrupción.

- Comienza a contar un temporizador.

- Mientras esté contando, el LED2 está encendido durante 5 segundos, en este ejemplo.

- Observa cómo ponemos al terminal 12 en alto sin utilizar resistencia. INPUT_PULLUP

- Observa cómo declaramos la interrupción:

attachInterrupt(digitalPinToInterrupt(pulsador), pulsado, RISING);

- Indica que la interrupción se ejecutará cuando se active el terminal pulsador, que en este caso es el 12, y ejecutará la función pulsado.

- RISING en la subida de 0 a 1. Si ponemos FALLING será en la bajada de 1 a 0.

- La función que se realiza en la interrupción es:

void IRAM_ATTR pulsado() {

________________________________
- Código.

Interrupcion_2.ino

#define Tiempo 5000 // En milisegundos.
const int LED2 = 2;
const int pulsador12 = 12;

unsigned long now = millis();
unsigned long tic = 0;
boolean comienzo = false;

// Función cuando se produce la interrupción.
void IRAM_ATTR pulsado() {
  digitalWrite(LED2, HIGH);
  comienzo = true;
  tic = millis();
}

void setup() {
  Serial.begin(115200);  
  pinMode(pulsador12, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(pulsador12), pulsado, RISING);

  pinMode(LED2, OUTPUT);
  digitalWrite(LED2, LOW);
}

void loop() {
  now = millis();
  if(comienzo && (now - tic > (Tiempo))) {
    digitalWrite(LED2, LOW);
    comienzo = false;
  }
}

_______________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información