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 |
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 |
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