martes, 6 de septiembre de 2016

Uso del Servo Motor

En esta práctica, se utilizará conocerá la conexión y la programación requerida para usar un servo motor en el sistema de Arduino. Y también la conexión junto al Bluetooth.
Los materiales usados en esta práctica son:
  • Cables jumper macho-macho
  • Servo Motor HS-311
  •  Arduino UNO
  • Bateria 9V
  • Bluetooth HC 05 o HC 06
SERVO MOTOR HITEC HS311

ServoMotor HS-311
El servomotor HS-311 es el ideal para usos educativos, ya que este contiene tiene muchas características que solo se encuentran en servos más caros. Una circuito de calidad así como los engranes asegura la durabilidad del servo. Viene con varios accesorios y brazos para montarse. Este servo puede operar a 180°.
Solo opera hasta 180 grados
 Especificaciones:
Specs HS311 (https://www.servocity.com/hs-311-servo)


CONEXIÓN DEL SERVO MOTOR AL ARDUINO

La forma de conectar el Servo Motor al arduino es de la siguiente manera.
  • Cable rojo del servo motor es el positivo y va conectado al pin de 5V del arduino. En caso de estar ocupado, se puede puentear (conectar) el pin de 5V al protoboard para tener más salidas de 5V.
  • Cable negro del servo motor es el negativo puede ir conectado directamente al GND del Arduino o al protoboard donde tiene todas las GNDs referenciadas o puenteadas.
  • Cable amarillo del servo motor al PIN 9 del Arduino o a cualquiera de los PINs marcados como PWM (Pulse Width Modulation). Es por este cable donde se enviará la señal de control, programado anteriormente en el sistema Arduino, directamente al servo motor para que logre oscilar solo de 0º a 180º.

Conexión del ServoMotor con la tarjeta Arduino UNO

Emparejamiento de un dispositivo Bluetooth HC-05 con el servomotor HS311
en la tarjeta Arduino UNO
Programación:
La siguiente programación moverá al ServoMotor de 45 grados en 45 grados en intervalos de 1 segundo, donde cuando llegue a 180 grados (límite), volverá a la posición de 0 grados (inicial):

#include <Servo.h>

Servo myservo;  //crea un referencia al servo motor

int posi = 0;    //posición inicial del servo
int posiciones[] = {0, 45, 90, 135, 180};  //posiciones (en grados) para moverse
int nPosiciones = 5; //numero de posiciones disponibles

void setup()
{
  //control servo motor via pin 9
  myservo.attach(9, 650, 2350);
  Serial.begin(9600);
}

void loop()
{
  //cambiando de posiciones usando un "for"
  for(int i = 0; i < nPosiciones; i++)
  {        
    posi = posiciones[i];

    //Activa el Monitor Serie para ver la posicion en que está
    Serial.println("SETTING:");
    Serial.println(posi);

    //cambio de posicion del servo a una nueva
    myservo.write(posi);

    //espero 1 segundos
    delay(1000);
  }
}

No hay comentarios:

Publicar un comentario