
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:
| Teclado | ESP32 |
| C4 | D15 |
| C3 | D2 |
| C2 | D4 |
| C1 | D16 |
| R4 | D17 |
| R3 | D5 |
| R2 | D18 |
| R1 | D19 |
- Conectamos la tierra (GND) del ESP32 al cátodo del Led.
- Conectamos el pin D21 del ESP32 al anodo del Led.
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
Ave que vuela, a la cazuela.