10. Esp32 servo 2 botones

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

Girar servo en ESP32 con dos pulsadores
Girar servo en ESP32 con dos pulsadores

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

Girar servo en ESP32 con dos pulsadores
Girar servo en ESP32 con dos pulsadores

🎦 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 >>

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. :)