Go Down

Topic: [SOLUCIONADO] Sensor Ultrasónico PING))) y dos Servos de 360 Grados. (Read 4908 times) previous topic - next topic

royyyyy

#15
Oct 15, 2011, 03:48 pm Last Edit: Oct 15, 2011, 03:51 pm by royyyyy Reason: 1
Pues listo. Está solucionado.

Gracias a esto:
Quote

Una cosa tonta, ¿cómo alimentas los servos? Ten en cuenta que no se pueden alimentar directamente desde el Arduino, tienes que ponerles una fuente externa.

ya he resuelto el problema. He alimentado el segundo servo con 4 pilas de 1'5V, he conectado masa a Arduino y he probado el código del que partía desde un principio, con la función que tomaba como parámetros dos objetos Servos.

El código final es el siguiente:
Code: [Select]


#include <Servo.h>

//Declaramos dos objetos Servo, uno por cada motor
Servo servo1;
Servo servo2;

//pingPin = 7 para el PING)))
const int pingPin = 7;
long duration, cm;

void setup()
{
 Serial.begin(9600);
 pinMode(13, OUTPUT);
 servo1.attach(3);
 servo2.attach(5);
}

void loop()
{
 //Este código del ejemplo PING del soft de Arduino 0022
 pinMode(pingPin, OUTPUT);
 digitalWrite(pingPin, LOW);
 delayMicroseconds(2);
 digitalWrite(pingPin, HIGH);
 delayMicroseconds(5);

 digitalWrite(pingPin, LOW);
 pinMode(pingPin, INPUT);
 duration = pulseIn(pingPin, HIGH);

 cm = microsecondsToCentimeters(duration);
 
 //Esta función hace girar los dos servos
 servoDos(servo1, servo2);
 
 Serial.print(cm);
 Serial.print("cm");
 Serial.println();
 
 delay(150);
}

void servoDos(Servo ser1, Servo ser2)
{
 if(cm >= 20)
 {
   ser1.write(0);
   ser2.write(180);
 }
 if(cm <= 20)
 {
    ser1.write(180);
    ser2.write(0);
 }
}

long microsecondsToCentimeters(long microseconds)
{
 return microseconds / 29 / 2;
}



Así que nada, muchas gracias por haberme ayudado, Cheyenne, "ere un maquina pixa"!!!

Cheyenne

Me alegro que lo hayas solucionado. Indicas que alimentas el segundo servo con las pilas, te recomiendo altamente que alimentes con las pilas los dos servos, no tienes ninguna necesidad de apurar con consumos al mega.

Por último decir que probaré tu código ya que con la librería servo a mí nunca me funcionó de manera suave.
http://cuadricopterodiyarduino.blogspot.com/

royyyyy

Ok, lo haré así, en la próxima revisión y montaje del bot alimentaré los dos servos con las pilas y la placa con una pila de petaca de 9V, por la entrada de corriente que está al lado de la entrada USB...

Tal y como lo tengo ahora, con el código que puse esto es lo que tengo: http://youtu.be/7DTLkvh5Uo4

Está mu cutre aún pero espero a solventar todos los problemas para terminar el montaje.

Un saludo.

Go Up