// ------------------------------------------------------------------------------
// (| " Ajuste_Servo.ino                                                      "|)
// (| " Este sketch permite controlar el movimiento de ida y vuelta entre     "|)
// (| " ambos topes de giro, desde 0º a 180º a un servomotor cada 1,5 segundos"|)
// (| " y nos permite determinar el valor práctico del pulso mínimo y máximo, "|)
// (| " que soporte el servo a probar.                                        "|)
// (| " Trabajaremos específicamente con el MicroServo MG90S, tómelo en sus   "|)
// (| " manos y ajuste el valor de PULSOMIN y PULSOMAX hasta que sienta que   "|)
// (| " internamente el engranaje de salida choca con el tope, en ese punto   "|)
// (| " el servo vibrara un poco, ajuste los valores de tal forma que sienta  "|)
// (| " que internamente el servo toca el tope, pero sin hacer esfuerzo       "|)
// (| " mecánico.                                                             "|)
// (| "                                                                       "|)
// (| " El pin Signal o señal PWM del servomotor, debera estar conectado al   "|)
// (| " pin 7 de Arduino, puede ser Arduino UNO Rev3 o Arduino NANO.          "|)
// (| "                                                                       "|)
// (| " Este código de ejemplo es de dominio público.                         "|)
// (| "                                                                       "|)
// (| " Visita https://jorgechac.blogspot.com                                 "|)
// (| "                                                                       "|)
// (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32                   "|)
// (| " Whatsapp y Ventas NEQUI +573177295861                                 "|)
// (| " Bucaramanga - Colombia                                                "|)
// (| " Simulación https://wokwi.com/projects/339311028189790802              "|)
// (| " Descarga gratis este sketch en:                                       "|)
// (| " https://create.arduino.cc/editor/jorgechac/247d0075-365c-40b8-befc-3900582d707e/preview"|)
// -----------------------------------------------------------------------------------------------

#include <Servo.h>      // incluye libreria de Servo

Servo servoMotor;       // crea objeto

int PINSERVO = 7;       // pin 7 de Arduino conectado a señal del servo
int PULSOMIN = 570;     // pulso minimo en µseg ↓
int PULSOMAX = 1370;    // pulso maximo en µseg ↑

void setup()
{
  //Modifique los valores de PULSOMIN y PULSOMAX, según se explico en la
  //cabecera del sketch, para obtener posiciones exactas del Micro Servo.

  servoMotor.attach(PINSERVO, PULSOMIN, PULSOMAX); // inicializacion de servo
  servoMotor.write(0);                             // inicializa posicion
                                                   // del servo a 0 grados
}

void loop()
{
  servoMotor.write(0);      // ubica el servo a 0 grados
  delay(1500);              // espera de 1,5 seg.
  servoMotor.write(90);     // ubica el servo a 90 grados
  delay(1500);              // espera de 1,5 seg.
  servoMotor.write(180);    // ubica el servo a 180 grados
  delay(1500);              // espera de 1,5 seg.
  servoMotor.write(90);     // ubica el servo a 90 grados
  delay(1500);              // espera de 1,5 seg.
}