¿Cómo controlar un Servo usando Arduino?La idea es que conectamos un potenciómetro a la tarjeta y un Servo. El trabajo del potenciómetro es controlar la posición del Servo a medida que lo rotamos.El potenciómetro está conectado al pin análogo 0 (A0) en la tarjeta, éste leerá el valor (valor el cual va de 0 a 1023) y lo traducirá en grados para controlar el Servo.Ahora, ¿cómo funciona una lectura análoga?El Servo necesita +5V para funcionar, el potenciómetro tiene tres pines el de la izquierda esta conectado a +5V el derecho a tierra y por último el central va al pin análogo 0 (A0). La manera que en traducimos el voltaje en posición es de esta manera. Ya sabiendo que el valor de cualquier sensor análogo va de 0 a 1023 y que el voltaje de salida es +5V lo que se hace es que dividimos esos 5 voltios en 1023 partes iguales, de manera que el pin análogo lee los valores de 0 a 1023, el código que cargamos en la tarjeta traduce esos valores de 0 a 1023 en grados (0° a 180°), ésta señal es luego enviada al pin 9 el cual tiene capacidad de PWM y envía esa señal regulada al microcontrolador del Servo la cual hace mover el Servo de derecha a izquierda.Necesitaremos:
- Arduino.
- Protoboard.
- Un potenciómetro de 100k Ohm.
- Un Servo standard de 180° 0 incluso de rotación continua (360°) y jugar con los valores del código para mover el Servo cuántos grados queramos y en la dirección que queramos.
- Cables.
/* CODIGO SERVO 002 */ #include <Servo.h> Servo miServo; // create servo object to control a servo int angulo=90; void setup()
{ miServo.attach(9); // attaches the servo on pin 9 to the servo object Serial.begin(9600); } void loop()
{ unsigned char comando=0; if(Serial.available()) { comando=Serial.read(); if(comando=='a') angulo+=10; else if(comando=='z') angulo-=10; angulo=constrain(angulo,0,180); }
miServo.write(angulo); Serial.print("Angulo: ");
Serial.println(angulo); delay(100); }

No hay comentarios:
Publicar un comentario