This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 1 voto(s) - 3 Media
  • 1
  • 2
  • 3
  • 4
  • 5
CONSULTA ROBOT DOS MOTORES CON SERVO PARA DIRECCION
#1
hola a todos .Tengo este programa con dos motores y un servo .Para mover los motores utilizo L238D Los motores funcionan bien pero el servo no responde ,hace como el intento de moverse pero nada mas.He echo este programa sin librerias por que prefiero hacerlo si .¿Alagien save decirme donde meto la pata.soy nuevo en el tema

int vel1=0;
int vel=250;
int velservo=250;
int servoPin=9;
int angulo;
int izq=170;
int cen=100;
int der=0;
int i=0;
float pausa;
                     
void setup()
{
pinMode (2,OUTPUT);
pinMode (4,OUTPUT);
pinMode (12,OUTPUT);
pinMode (13,OUTPUT);
pinMode (5,OUTPUT);
pinMode (3,OUTPUT);
 pinMode(servoPin, OUTPUT);     // Declaramos el pin digital 9 como salida
 digitalWrite(servoPin, LOW);   // Ponemos el pin digital 9 en LOW
}
void loop()
    
{
moverServo(servoPin,cen);

delay(velservo);
recto();
paro_motores();
moverServo(servoPin,der);
delay(velservo);
giro_derecha();
paro_motores();
moverServo(servoPin,cen);
delay(velservo);                       
atras();
paro_motores();
moverServo(servoPin,izq);
delay(velservo);  
giro_izqui(); 
}
     

void moverServo(int pin, int angulo) 
   // Recogemos las variables PIN y ANGULO en cada llamada 
{
 pausa = cen*2000.0/180.0 + 460;   // Calculamos el ancho del pulso aplicando la regla de tres
 digitalWrite(servoPin, HIGH);             // Ponemos el pin en HIGH 
 delayMicroseconds(pausa);            // Esperamos con el pin en HIGH durante el resultado de la regla de tres
 digitalWrite(servoPin, LOW);              // Y ponemos de nuevo el pin en LOW
 delayMicroseconds(2460-pausa);
}
void giro_derecha()

{
digitalWrite(12,LOW);//giro derecha paro solo motor a
digitalWrite(13,LOW);
analogWrite(11,vel1);//enable motor a patilla 
digitalWrite(2,HIGH);
digitalWrite(4,LOW);
analogWrite(3,vel);//enable motor dos
delay(5000);
}

void atras()
{
digitalWrite(12,HIGH);//Marcha adelante
digitalWrite(13,LOW);
analogWrite(11,vel);
digitalWrite(2,HIGH);
digitalWrite(4,LOW);
analogWrite(3,vel);
delay(5000);
}

void recto()
{
digitalWrite(12,LOW);//Marcha atras
digitalWrite(13,HIGH);
analogWrite(11,vel);
digitalWrite(2,LOW);
digitalWrite(4,HIGH);
analogWrite(3,vel);
delay(5000);
}

void giro_izqui()
{
digitalWrite(12,HIGH);//giro izquierda paro motor b
digitalWrite(13,LOW);
analogWrite(11,vel);
digitalWrite(2,LOW);
digitalWrite(4,LOW);
analogWrite(3,vel1);
delay(5000);  
}

void paro_motores()
{
digitalWrite(12,LOW);//paro motores
digitalWrite(13,LOW);
analogWrite(11,vel1);
digitalWrite(2,LOW);
digitalWrite(4,LOW);
analogWrite(3,vel1);
delay(5000);  
}
  Responder
#2
Yo te recomendaría utilizar la librería Servo.h, que ya viene incluida en el IDE de Arduino (aquí te dejo la información: https://www.arduino.cc/en/Reference/Servo). Otro problema puede ser la alimentación. ¿Los motores y los servos está alimentados por el Arduino? Te recomendarí hacerlo mediante una fuente externa. Poco más se me ocurre.
¡Un saludo!
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Arduino nano y servo de rotación continua Bear 2 299 04-03-2022, 08:07 PM
Último mensaje: Bear
  Funcionamiento incorrecto servo Bear 1 490 28-05-2021, 06:48 PM
Último mensaje: Bear
  DUDA Como ejecutar dos sketches a la vez? ocmonpa 4 1,018 23-01-2021, 02:27 PM
Último mensaje: ocmonpa
  CONSULTA ¿como uno dos codigos en un solo codigo? laurangcard 1 943 18-11-2020, 10:03 PM
Último mensaje: asesorplaza1
  APORTE Montaje Robot 2WD Arduino (DIY) kuadri 1 1,001 17-06-2020, 09:51 PM
Último mensaje: asesorplaza1