martes, 8 de enero de 2019

CONTROLANDO SERVOS

FELIZ AÑO A TODOS MIS ALUMNOS DE 4º DE ESO DE ROBÓTICA!!!

EMPEZAMOS A PROGRAMAR SERVOS PARA CREAR UNA GRÚA O GRAZO ROBÓTICO QUE FUNCIONE A VOLUNDAD.

Antes hemos visto cómo controlar un servomotor tanto en grados como en velocidad, recordais?


// Incluímos la librería para poder controlar el servo
#include <Servo.h> // Declaramos la variable para controlar el servo
Servo servoMotor;
void setup() {
  // Iniciamos el monitor serie para mostrar el resultado
  Serial.begin(9600);
  // Iniciamos el servo para que empiece a trabajar con el pin 9
  servoMotor.attach(9);
}
void loop() {
  
  // Desplazamos a la posición 0º
  servoMotor.write(0);
  // Esperamos 1 segundo
  delay(1000);
  
  // Desplazamos a la posición 90º
  servoMotor.write(90);
  // Esperamos 1 segundo
  delay(1000);
  
  // Desplazamos a la posición 180º
  servoMotor.write(180);
  // Esperamos 1 segundo
  delay(1000);
}

Conexion servomotor con Arduino

otra opción me permitía moverlo despacio o rápido:



// Incluímos la librería para poder controlar el servo
#include <Servo.h>
// Declaramos la variable para controlar el servo
Servo servoMotor;
void setup() {
  // Iniciamos el monitor serie para mostrar el resultado
  Serial.begin(9600);
  // Iniciamos el servo para que empiece a trabajar con el pin 9
  servoMotor.attach(9);
  // Inicializamos al ángulo 0 el servomotor
  servoMotor.write(0);
}
void loop() {
  // Vamos a tener dos bucles uno para mover en sentido positivo y otro en sentido negativo
  // Para el sentido positivo
  for (int i = 0; i <= 180; i++)
  {
    // Desplazamos al ángulo correspondiente
    servoMotor.write(i);
    // Hacemos una pausa de 25ms
    delay(25);
  }
  // Para el sentido negativo
  for (int i = 179; i > 0; i--)
  {
    // Desplazamos al ángulo correspondiente
    servoMotor.write(i);
    // Hacemos una pausa de 25ms
    delay(25);
  }
}

Ahora vamos a hacerlo un paso más allá:
LO VAMOS A MOVER EN TIEMPO REAL


#include <Servo.h>
Servo Servo; //Declaramos que queremos controlar un Servo, al cual le vamos a poner un nombre cualquiera
int pot = 0; //El pin análogo donde va conectado el Potenciómetro
int val; //El valor a leer por el puerto análogo
void setup()
{
Servo.attach(9); //El pin al cual conectaremos nuestro Servo
}
void loop()
{
val = analogRead(pot); //Aquí le decimos que lea el valor del potenciómetro, valor el cual oscila entre 0 y 1023
val = map(val, 0 ,1023, 0, 180); //Traduce la lectura análga (0, 1023) a grados (0°, 180°)
Servo.write(val); //Mueve el Servo según la lectura análoga
delay(15);
}
colores-ServoMotor

No hay comentarios:

Publicar un comentario