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