Go Down

Topic: Problemas con servos (Read 3467 times) previous topic - next topic

jvazquez

Hola a todos!

Estoy haciendo un vehiculo explorador que tiene una base metalica con dos motores DC en la parte trasera y un servo en la parte delantera con una rueda central que hace que gire hacia el lado derecho/izquierdo o no gire y se quede de manera central. Con el tema de las ruedas traseras no tengo ningun problema porque cuando quiero que gire hacia un lado o hacia otro, le bajo la velocidad con la sentencia "analogwrite(motorX, valor)". El problema esta con el servo, que cuando mano la señal para que gire en un sentido u otro, se bloquea todo el codigo. El codigo que llevo incorporado es uno para el GPS+SD+ultrasonido, mas el que he comentado de controlar la velocidad. He probado con alimentaciones externas para cada cosa y sigue sin ir, y problema de programacion no es porque siempre pasa cuando introduzco el attach para el servo.

Muchas gracias chicos!

Javier

Cheyenne

Recuerda que al usar la librería servo se deshabilita el pwm en los pins 9 y 10. En la Arduino Mega los pins que se deshabilitan son el 11 y 12. No sé si la cosa puede venir por aquí.
http://cuadricopterodiyarduino.blogspot.com/

jvazquez


Recuerda que al usar la librería servo se deshabilita el pwm en los pins 9 y 10. En la Arduino Mega los pins que se deshabilitan son el 11 y 12. No sé si la cosa puede venir por aquí.


Hola Cheyenne, estoy utilizando la Arduino Mega para Android. Utilizo los pines 5 y 6 porque tengo dos pero solo utilizo un servo porque como el problema no lo soluciono... Pero vaya uso el 5 o el 6.

jvazquez

Hola a todos de nuevo!

Mirad he borrado todo el codigo y estoy trabajando con dos servos exclusivamente, a ver si analizando el problema asi, se puede solucionar. Quiero poner dos servos a 90 grados, pero que no se muevan como me esta ocurriendo. El codigo es el siguiente:

#include <Servo.h>

int direccion = 6;
int radar = 5;
Servo servoDireccion, servoRadar;
void setup()
{
  servoDireccion.attach(direccion);
  servoRadar.attach(radar);
}

void loop()
{
  servoDireccion.write(90);
  delay(100);
  servoRadar.write(90);
  delay(100);
}

Como se puede observar los dos servos tendrian que estar a 90 grados y bien quietecitos, pues lo unico que hacen es coger y moverse como si un garbanzon esta en la boca de un viejo...

luvbotg

Buenas, te comento que he probado tu sketch en un arduino UNO con dos servos 9g y funcionaron correctamente, inclusive le agregué unas lineas mas para que cargue otros ángulos y funciono correctamente en todos los casos. Saludos

Jppv

Hola amigo, a mi me dieron problemas unos servos en una conexion, y el problema estaba en que generaban induccion los motores provocando ruido, entonces prueba poniendo unos diodos para que el voltaje que se genera no regrese.
Y un capacitor de 470 micro faradios en paralelo con la fuente, ten cuidado al conectarlo si es electrolitico, porque puede explotar si le inviertes la polaridad.

daniel_06

!Hola a todos¡

Perdon la interrupcion yo tengo un problema con un servo, cergo el codigo a la placa sin errrores pero el servo no se mueve, hace algún ruido extraño como si intentara moverse pero no lo hace y comienza a calentarse demasiado, soy nuevo en ello, quiero hacer un proyecto de minirobotica. Agradesco cualquier ayuda.
Gracias¡

_jose_

!Hola a todos¡

Perdon la interrupcion yo tengo un problema con un servo, cergo el codigo a la placa sin errrores pero el servo no se mueve, hace algún ruido extraño como si intentara moverse pero no lo hace y comienza a calentarse demasiado, soy nuevo en ello, quiero hacer un proyecto de minirobotica. Agradesco cualquier ayuda.
Gracias¡
Este post tiene mas de un año,crea un nuevo post con el titulo adecuado a tu problema,posteando el codigo que has hecho y si es posible algun esquema de conexiones.

ceaer

Buenas noches, espero que alguien me pueda ayudar con este programa

#include <Servo.h>               // Incluye la libreria Servo

Servo servo1;
Servo servo2; // Crea el objeto servo1 con las caracteristicas de Servo
Servo servo3;
int estado=0;

void setup()
{
  servo2.attach(12);
  servo3.attach(13);
  servo1.attach(2);    // Asocia el servo1 al pin 3, define el min y max del ancho del pulso 
 
  Serial.begin(9600);
}
 
void loop()
{   
    {
 if(Serial.available()>0){
 estado = Serial.read();
 }

 digitalWrite(3,0);
  if (estado =='1')
  {          // si se oprimio el botón  de la derecho
    servo1.write(90);
    delay(15);
    servo2.write(90);   
    delay(15);// Espera 15 mili segundos a que el servo llegue a la


   } 
  if (estado =='2') {          // si se oprimió el pulsador de la izquierda
    servo1.write(0);
    delay(15);
    servo2.write(0); // Gira el servo a 0 grados 
    delay(15);// Espera 15 mili segundos a que el servo llegue a la posición
   } 

  }
    }

quiero mover 2 servos, pero cuando energizo el arduino uno de los servos se activa solo. ¿Cual es el problema?. Espero que me puedan ayudar. Gracias

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy