Girar servo en ESP32 con dos pulsadores
En este tutorial haremos Girar servo en ESP32 con dos pulsadores, las reglas son estas
- Si presionamos el pulsador1 giramos el servomotor 180 grados
- Si presionamos el pulsador2 giramos el servomotor 0 grados.
Requerimientos:
- 1 Servomotor.
- 2 Pulsadores.
- 2 Resistencias de 330 Ω.
Conexiones:
- Conectamos los dos pulsadores a tierra a través de una resistencia y al otro punto les pasamos VIN.
- Conectamos el pulsador 1 al pin D4 del ESP32.
- Conectamos el pulsador 2 al pin D5 del ESP32.
- Conectamos el cable Rojo del servo a VIN del ESP32.
- Conectamos el cable Café del servo a GND del ESP32.
- Conectamos el cable Naranja del servo al pin D2 del ESP32.
Código y diagrama: https://wokwi.com/projects/343292892433875538
Código:
#include <ESP32Servo.h> //Instanciamos el servomotor Servo servo; //Declaramos el pin del pulsador 1 int pinPulsador1 = 4; //Declaramos el pin del pulsador 2 int pinPulsador2 = 5; //Declaramos e pin del servo int pinServo = 2; void setup() { Serial.begin(115200); //Configuramos ESP32 para que resiba la pulsasiones del pulsador 1 pinMode(pinPulsador1, INPUT); //Configuramos ESP32 para que resiba la pulsasiones del pulsador 2 pinMode(pinPulsador2, INPUT); //Configuramos el servo servo.attach(pinServo, 500, 2500); } //Inicilizamos la posicion del servo int posServo = 0; void loop() { //Si se preciona el pulsador1 if (digitalRead(pinPulsador1) == HIGH) { //Movemos el servo 180 grados //servo.write(180); moverServo(180); delay(1000); } //Si se preciona el pulsador1 if (digitalRead(pinPulsador2) == HIGH) { //Movemos el servo 0 grados //servo.write(0); moverServo(0); delay(1000); } delay(20); } //Funcion que mueve el servo void moverServo(int posFinal) { if (posServo < posFinal) { //Ciclo que posicionara el servo desde posServo hsta posFinal grados for (int pos = posServo; pos <= posFinal; pos += 1) { //Movemos el servo a los grados que le entreguemos servo.write(pos); //Esperamos 15 milisegundos delay(15); } } else { //Ciclo que posicionara el servo desde posServo hsta posFinal grados for (int pos = posFinal; pos >= posServo ; pos -= 1) { //Movemos el servo a los grados que le entreguemos servo.write(pos); //Esperamos 15 milisegundos delay(15); } } }
🎦 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_CpMeEKTofxs7iottRxJ5YPM7BOcc
<<Anterior tutorial Siguiente tutorial >>