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.
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);
}

🎦 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

Los comentarios están cerrados.

Salir de la versión móvil