Problemas con servos

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

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

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

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.

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

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

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.

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

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¡

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.

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