INTRODUCCIÓN
Un servomotor también llamado servo, es un motor electrónico como cualquier u otro motor DC con la diferencia que estos se pueden mover a un Angulo especifico normalmente de 0° a 180°, en la actualidad ya existen servomotores que giran a 360°, y que estos pueden ubicarse en un Angulo especifico, a través de un control que se realiza, además, tiene la capacidad de mantenerse en una posición durante el tiempo que se requiere. Así mismo estos servos podemos controlar la velocidad y posición de acuerdo a las necesidades requeridas.
CARACTERÍSTICAS
Este motor es un motor especial ya que dentro de ella existe un circuito de control, un potenciómetro y un conjunto de engranajes; las cuales no permiten el giro mayor a 180° o 360° según sea caso.
FUNCIONAMIENTO
Este servomotor funciona por un ancho de pulso (PWM) el cual nos permite el control adecuado y eficaz. La mayoría de ellos trabajan a 50Hz, así la señal PWM tendrá de un periodo de 20 ms. La parte del circuito interno que tiene el servomotor recibe señales específicas para la una ubicación de una posición; es decir, para girar a 0° requerimos 700us, para girar a 90° necesitamos 1500us y finalmente para lograr girar a 180° se requiere 2300us.
CÓDIGO ARDUINO
/* CREADO POR :{==[=======>>>> ELECTROALL <<<<<=======]==} INSTAGRAM : https://www.instagram.com/carlos_j_fuentess/ ó @carlos_j_fuentess FACEBOOK : https://web.facebook.com/ELECTROALL.ELECTRONICA/?_rdc=1&_rdr PÁGINA WEB : https://www.electroallweb.com/ YOUTUBE : https://www.youtube.com/c/ELECTROALL ________________________________________________________ {==[=======> (SERVOMOTOR) <=======]==} ________________________________________________________ */ int servo =7; void setup() { pinMode (servo, OUTPUT); Serial.begin(9600); } void loop() { // {==[=======> (180°) <=======]==} for (int Hz =0; Hz < 50 ;Hz++){ // repetimos la instruccion 50 veces digitalWrite (servo,HIGH); delayMicroseconds(2300); // llevamos a 180° digitalWrite (servo,LOW); delay(18); Serial.println(Hz); } delay(2000); // retardo // {==[=======> (90°) <=======]==} for (int Hz =0; Hz < 50 ;Hz++){ // repetimos la instruccion 50 veces digitalWrite (servo,HIGH); delayMicroseconds(1500); // llevamos a 90° digitalWrite (servo,LOW); delay(19); Serial.println(Hz); } delay(2000); // {==[=======> (0°) <=======]==} for (int Hz =0; Hz < 50 ;Hz++){ // repetimos la instruccion 50 veces digitalWrite (servo,HIGH); delayMicroseconds(700); // llevamos a 0° digitalWrite (servo,LOW); delay(20); Serial.println(Hz); } delay(2000); }