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:



















