Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
proyecto Arduino ayuda por favor
#1
Buenos días a todos.
Estoy haciendo el proyecto de un robot con un arduino ethernet y dos servos. Tengo un código el cual creo que es correcto pero al conectar-lo todo los motores no giran y hacen ruidos extraños. y si desconecto uno de ellos, el otro funciona correctamente. A ver si sabéis porque me pasa y como podría solucionarlo. Muchas gracias.


Archivos adjuntos Miniatura(s)
       
Citar
#2
Yo lo primero que veo es que en servo.write(); le estas metiendo un valor equivocado si quieres meter microsegundos debes poner servo.writeMicroseconds(); si pones servo . write(); el valor es en ángulo de 0 a 180
Y para poner dos servos te recomiendo que los alimentes a parte, el arduíno puede no tener chicha para mover varios servos
Cuando un hombre planta un árbol bajo cuya sombra sabe que no se sentará ha comenzado a comprender el sentido de la vida... o lo que es lo mismo... comparte!!!
Citar
#3
Totalmente deacuerdo con Diego.

Siempre tengo la costumbre de limitar las cargas todo lo que puedo sobre los pines de arduino y utilizar una fuente alimentación auxiliar, y no solo por la potencia de los pines de arduino que ya de por si es muy limitada, tambien para evitar cualquier tipo de ruido que pueda inducirse en otros pines, hay que evitar los ruidos con nuestro arduino que dan muuuuchos problemas, a nivel laboratorio no, pero cuando salen a una instalación real pues.....
Citar
#4
+1 A lo de la alimentación externa.
Citar
#5
Gracias por la ayuda la verdad no se me havia ocurrido alimentarlos con una fuente externa. Por otra parte pongo write(1000) para regular la velocidad, asi consigues que vaya a maxima velocidad en un sentido. Si pones write (1500) se para i si pones write (2000) va a maxima velocidad en sentido opuesto.
Citar
#6
Esto es lo que pone el la explicación de servo.write() en la página de arduino
Código:
write()
Description

Writes a value to the servo, controlling the shaft accordingly. On a standard servo, this will set the angle of the shaft (in degrees), moving the shaft to that orientation. On a continuous rotation servo, this will set the speed of the servo (with 0 being full-speed in one direction, 180 being full speed in the other, and a value near 90 being no movement).

Syntax

servo.write(angle)

Parameters

servo: a variable of type Servo

angle: the value to write to the servo, from 0 to 180
si poniendo 1000,1500 o 2000 te funciona yo lo achacaría a la casualidad, normalmente y hasta donde yo entiendo, una variable de 8 bit's por ejemplo puede albergar un valor de 0 a 255, si tienes 255 y le sumas cinco podrías esperar tener un valor de "260" y en realidad tendrás un valor de "5", no se de que tipo es la variable que guarda el parámetro que le envías a la función, pero probablemente ese desbordamiento te esté dando un valor que de casualidad se aproxime al valor que te hace mover los servos correctamente.
Es una conjetura/opinión :roll: pero yo probaría a meterle 0,90 y 180 en vez de 1000,1500 o 2000
Cuando un hombre planta un árbol bajo cuya sombra sabe que no se sentará ha comenzado a comprender el sentido de la vida... o lo que es lo mismo... comparte!!!
Citar
#7
De momento lo dejaré asi, ya que así es como me enseñaron a hacerlo y me funcionsa bien. pero gracias de todos modos.
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Ayuda con drivers arduino msa 32 10,492 28-03-2018, 10:37 AM
Último mensaje: superkuko
  ayuda en coneccion de java con arduino claudiohnavarro 0 425 26-04-2017, 07:02 PM
Último mensaje: claudiohnavarro
  Proyecto sckay 46 3,535 23-11-2015, 04:17 PM
Último mensaje: Iván
  Proyecto tablet pc con arduino crivi01 3 855 23-10-2015, 08:13 PM
Último mensaje: jukillo
  Ayuda con robot arduino Qar2015 0 613 11-10-2015, 04:19 AM
Último mensaje: Qar2015