InicioTarjetas de DesarrolloArduinoControl de un Servomotor SG90 con el Sensor Push Button KY-004

Control de un Servomotor SG90 con el Sensor Push Button KY-004

En este tutorial utilizaremos el Sensor Push Button KY-004 para poder activar el servomotor SG90.

El servomotor SG90 nos es útil para proyectos en donde indicamos el ángulo que se requiere específicamente , en el caso de este dispositivo va de 0° a 180° (dextrógiro o levógiro).

Realizaremos la siguiente conexión entre los componentes, para lo cual requeriremos:

Diagrama de conexiones entre el KY-004 y dispositivos

Realizaremos las siguientes conexiones entre nuestros componentes y Arduino UNO:

Programación del código en Arduino IDE

Con el siguiente código podremos controlar el encendido del SG90 al presionar el push button:

#include <Servo.h>                        //Librería para poder utilizar el servo sg90
#include <SoftwareSerial.h>
Servo sg90;     //Nombramos al servo 
int ky04 = 8;   // Definimos el pin de detección de interrupción por medio del push button
int boton ;       // Variable botón en donde se reserva el valor del push button                                       // (0-presionado, 1-No es presionado)

void setup() {
  Serial.begin(9600);     // Se inicializa la comunicación a 9600 baudios
  pinMode(ky04,INPUT);  // Definimos al push como señal de entrada
  sg90.attach(10);          //Pin para la señal al servo-Pin10
  sg90.write(0);    //Siempre que se inicie el programa el servo tendrá un valor de 0°
  
}
void loop() { 

boton = digitalRead (ky04) ; //Se reserva el valor del push button a la variable botón

if (boton == LOW) {     //Si el botón es presionado se activara el servo comenzando con la //siguiente rutina
     for (int i = 0; i <= 180; i++) {   //sentido antihorario abre
            sg90.write(i);               //se dará el valor del ángulo de 0 a 180 incrementando
            delay(5);                   //realizara el movimiento mas rápido 10 milisegundo
            sg90.write(i);
            Serial.println(i);
}
      for (int i = 180; i > 0; i--) {   //sentido horario cierra
            sg90.write(i);               //se dará el valor del ángulo de 180 a 0 decrementando
            delay(20);                 //realizara el movimiento mas lento 50 milisegundo
            Serial.println(i);
}
}
else {                 //de lo contrario, si botón = HIGH, No es presionado
sg90.write(0);     //el servo tendrá un valor de 0°
}
}

Como podemos observar en el programa y en el siguiente video , el servomotor solo tendrá movilidad en 180°. El SG90 comenzara a moverse en cuanto pulsemos el KY-004; primero de forma incremental (sentido antihorario/levógiro) hasta que llegue al valor de 180 (como se muestra en el Monitor Serial) y posteriormente decrementara el valor de 180 hasta que llegue a 0 (sentido horario/dextrógiro).

Al modificar el delay (milisegundos) podemos observar como decrementa e incrementa de manera mas rápida y/o lenta , según nos convenga.

En este caso usamos el Sensor Push Button para activar nuestro sistema, aunque también lo podemos usar como interruptor o para activar otros sistemas

Te invitamos a que revises otros proyectos en donde podrían activarse con el KY-004:

Proyecto con Sensor Magnético KY-004 en Arduino

TUTORIALES RELACIONADOS