Go Down

Topic: Motor de 360° (Read 2398 times) previous topic - next topic

vitro012

 
   Hola,
   Les Comento que estoy comenzando con Arduino,  tengo un Motor de 360°.
  Intente Controlarlo con la libreria <Servo.h>,  y la instrucción Servo.write(180).
  El motor gira de forma continua, algo que es bueno, sin embargo por  lo que tengo entendido,
el motor debería simplemente de ponerse en esa posición y no seguir girando.
No sé la manera de controlarlos es de otra forma.

   Me interesa que gire de forma continua, detenerlo, cambiar de sentido, y si es posible
el controlar la velocidad de giro.
 
Gracias.

Servo:  - Modelo: DS04-NFC
Arduino:  Mega

#include<Servo.h>
Servo servo1;

void Setup(){    servo1.attach(2) }


void loop(){
delay (500); 
servo1.write(25);
delay (1000);
servo1.write(180);
}





vitro012


Esto es lo que pude observar.   :smiley-eek:

La señal PWM sólo controla la velocidad del motor no la posición.
De 0º a 85º  Gira en sentido anti-horario, donde 0º es rápido y 85º Lento
De 95º a 180º Gira en sentido horario, donde 95º es Lento y 180º rápido.
Es decir, entre más cerca de 90º más lento o se detiene el motor.

Hice la prueba con 2 motores uno de ellos se detenía por completo en
90º, y el otro se detenía en 95º, hay que calibrar.



#include <Servo.h>

//Creamos Objetos de la clase servo
Servo servo1;
Servo servo2;

void setup(){
  //Indicamos en que Pines están conectados los servos
servo1.attach(3);
servo2.attach(4);
Serial.begin(9600);
}

void loop(){
Serial.println("INICIANDO....: ");
delay(5000);//retardo de 5 segundos
Serial.println("  velocidad Alta '0' ");
servo1.write(0);//iniciamos con una velocidad Alta
servo2.write(0);
delay(5000);//retardo de 5 segundos
//probamos si baja  la velocidad
Serial.println("  velocidad baja '85' ");
servo1.write(85);
servo2.write(85);
delay(5000);//retardo de 5 segundos
// Detenmos los Servos.
Serial.println("  Deteniendo motores '95' ");
servo1.write(90);
servo2.write(95);
delay(5000);//retardo de 5 segundos
//giramos en sentido opuesto
Serial.println("  Sentido Opuesto '100' ");
servo1.write(100);
servo2.write(100);
delay(5000);
Serial.println("  Sentido Opuesto '180' ");
Serial.println(" 180 ");
servo1.write(180);
servo2.write(180);
delay(5000);
}


Go Up