Truco de Magia en ESP32

Truco de Magia en ESP32

Ya tenemos los conocimientos suficientes para comenzar a crear nuestros primeros trucos de magia, este truco de magia en ESP32 trata de hacer un efecto con gotas de lluvia (o del fregadero en este caso) y hacer que en lugar de caer floten o incluso que suban. Solo seguiremos estos pasos:

  • Conectaremos un teclado matricial 4×4 y un led ultrabrillante al ESP32.
  • Declaramos la variable retraso con el valor de 100 (milisegundos).
  • Al presionar una tecla de la parte superior del teclado aumentamos en 10 milisegundo el retraso.
  • Al presionar una tecla de la parte inferior del teclado disminuimos en 10 milisegundo el retraso.

Requerimientos:

  • ESP32.
  • LED ultrabrillante.
  • Teclado matricial de 4x4.

Conexiones:

TecladoESP32
C4D15
C3D2
C2D4
C1D16
R4D17
R3D5
R2D18
R1D19
  • Conectamos la tierra (GND) del ESP32 al cátodo del Led.
  • Conectamos el pin D21 del ESP32 al anodo del Led.
Truco de Magia en ESP32
Diagrama de Truco de Magia en ESP32

Código del Truco de Magia en ESP32

/*
Truco de Magia en ESP32
*/
// importa libreria Keypad
#include <Keypad.h>
// define numero de filas
const uint8_t ROWS = 4;
// define numero de columnas
const uint8_t COLS = 4;
// define la distribucion de teclas
char keys[ROWS][COLS] = {
  { '1', '2', '3', 'A' },
  { '4', '5', '6', 'B' },
  { '7', '8', '9', 'C' },
  { '*', '0', '#', 'D' }
};
// pines correspondientes a las filas
uint8_t colPins[COLS] = { 16, 4, 2, 15 };
// pines correspondientes a las columnas
uint8_t rowPins[ROWS] = { 19, 18, 5, 17 };
// crea objeto con los prametros creados previamente
Keypad teclado = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
//Declaramos el pin del zumbador
int pinLed=21;
//Variable que retrasara el encendido del led
int retraso=100;
void setup() {
  Serial.begin(115200);
  //Declaramos el pin del led como salida
  pinMode(pinLed,OUTPUT);
}

void loop() {
  //Recibimos la tecla precionada
  char key=teclado.getKey();
  //Si si se preciono una tecla
  if(key){
    //Validamos que la tecla sea de la arte superior del teclado
    if(key=='1' || key=='2' || key=='3' || key=='A' || key=='4' || key=='5' || key=='6' || key=='B'){
      //Aumentamos en 10 milisegundos el retraso
      retraso=retraso+10;
    }
    //En caso contrario (osea que la tecla es de la parte inferior)
    else{
      //Disminuimos en 10 milisegundos el retraso
      retraso=retraso-10;
    }
  }
  //Solo si el retraso es mayor a 0
  if(retraso>0){
    //Encendemos el pin
    digitalWrite(pinLed,HIGH);
    //Esperamos el tiempo del retraso
    delay(retraso);
    //Apagamos el pin
    digitalWrite(pinLed,LOW);
    //Esperamos el tiempo del retraso
    delay(retraso);
  }
  Serial.println(retraso);
}

23 magia

🎦 Este curso: https://www.youtube.com/watch?v=VuJkqL2Ys3Y&list=PLCTD_CpMeEKTvjzabAvLGHakg-ql6t0q6&ab_channel=ProgramadorNovato

🎦 Curso de Arduino: https://www.youtube.com/watch?v=oGinJt9aALc&list=PLCTD_CpMeEKSqw3Nh7rA9aXUAzbPIPkdv&ab_channel=ProgramadorNovato

🎦 [CURSO] C++ DE 0 A HEROE: https://www.youtube.com/watch?v=APN8aCyPvww&list=PLCTD_CpMeEKTofxs7iottRxJ5YPM7BOc

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

En Programador Novato vivimos de los anuncios, hemos detectado que está utilizando extensiones para bloquear anuncios. Ayudanos deshabilitando tu bloqueador de anuncios. :)