Go Down

Topic: problemas con circuito (Read 202 times) previous topic - next topic

Grsn_Chml

Oct 15, 2018, 07:18 pm Last Edit: Oct 15, 2018, 07:26 pm by Grsn_Chml
Saludos!
Antes que todo, gracias por tomar de tu tiempo al leer esto,
he estado teniendo problemas con un circuito que tengo, el cual tendo 2 reguladores 7806 y el 7805, el 7806 me sirve para alimentar un servomotor que quiero alimentar con 6v para que pueda hacer mas fuerza, y el 7805 es para alimentar el arduino nano, ademas utilizo un potenciometro que conecto a la entrada A0, el cual cuando gira, hace que gire el servomotor pero con escalas, por ejemplo cuando arduino mide el potenciometro en 200, el servo va a 50º, y asi mide 400 el servo va a 70º, pero todo eso se hace siempre y cuando el reley de 24v le deje ir el pulso, osea que todo el circuito debe de trabajar a 24v, y el rele sirve como un pulsador el cual deja pasar el pulso de 5v al arduino y tiene una resistencia de 1k que va a tierra,







mi codigo en arduino es este

Code: [Select]
#include <Servo.h> // Incluimos la biblioteca Servo

Servo servo_1;  // Definimos los servos que vamos a utilizar

int potenciometro_1 = A0;  // Pin usado para conectar el potenciómeto
int valorPotenciometro;    // Esta variable definirá la posición del servo
int botonDescanso=4;
int valorAumenta=0;

void setup()
{
  servo_1.attach(9);
  
  pinMode(botonDescanso, INPUT);
}

void loop()
{
  valorPotenciometro = analogRead(potenciometro_1);
  
  /*valor_potenciometro_1 = map(valor_potenciometro_1, 0, 1023, 0, 180);  */

  if(digitalRead(botonDescanso) ==  HIGH)
  {
    Velocidades(valorPotenciometro);
    valorAumenta=0;
  }
  else
  {
     valorAumenta+=5;
    if(valorAumenta>=1000)
    {
      valorAumenta=0;
      servo_1.write(140);
    }
  }
}

void Velocidades(int velocidad)
{
  if(velocidad >= 500 && velocidad < 550)// VELOCIDAD 1
  {
    servo_1.write(1);
  }
  else if(velocidad >= 550 && velocidad < 600)// VELOCIDAD 2
  {
    servo_1.write(30);
  }
  else if(velocidad >= 600 && velocidad < 650)// VELOCIDAD 3
  {
    servo_1.write(45);
  }
  else if(velocidad >= 650 && velocidad < 700)// VELOCIDAD 4
  {
    servo_1.write(60);
  }
  else if(velocidad >= 700 && velocidad < 750)// VELOCIDAD 5
  {
    servo_1.write(75);
  }
  else if(velocidad >= 750 && velocidad < 800)// VELOCIDAD 6
  {
    servo_1.write(90);
  }
  else if(velocidad >= 800 && velocidad < 850)// VELOCIDAD 7
  {
    servo_1.write(105);
  }
  else if(velocidad >= 850 && velocidad < 900)// VELOCIDAD 8
  {
    servo_1.write(120);
  }
  else if(velocidad >= 900 && velocidad < 950)// VELOCIDAD 9
  {
    servo_1.write(135);
  }
  else if(velocidad >= 950 && velocidad < 1000)// VELOCIDAD 10
  {
    servo_1.write(160);
  }
  else if(velocidad >= 1000)// VELOCIDAD 10
  {
    servo_1.write(160);
  }
  else
  {
    servo_1.write(1);
  }
}



el problema esta en que el circuito me falla, o se queman los reguladores de la nada cuando tengo que ensamblar todo, o el arduino funciona bien y despues de unos minutos deja de funcionar, o no va bien desde el principio

como veras, he puesto un diodo donde dice signal servo, para que no retorne ningún tipo de corriente que me vaya a quemar el arduino, (cosa que ya me paso)

muchas gracias por leer y espero su pronta respuesta, muchas gracias por todo

Pablo_Lucini

Ante todo tenés que ponerle disipadores a los reguladores de tensión. Si estás alimentando con 24vcc fijate que la potencia disipada en el 7806 es de (24v-6v)*Iservo. Son integrados que suelen calentar demasiado, especialmente cuando tenés mucha diferencia de tensión entre la entrada y la salida.
 

Grsn_Chml

#2
Oct 15, 2018, 07:52 pm Last Edit: Oct 15, 2018, 07:53 pm by Grsn_Chml
Ante todo tenés que ponerle disipadores a los reguladores de tensión. Si estás alimentando con 24vcc fijate que la potencia disipada en el 7806 es de (24v-6v)*Iservo. Son integrados que suelen calentar demasiado, especialmente cuando tenés mucha diferencia de tensión entre la entrada y la salida.
  
muchas gracias por la respuesta, y pues si les tengo 2 disipadores, uno para cada uno, son como de 4cm de ancho por 6cm de largo, y 1.5cm de profundida los cuales tienen canales de ventilacion, lo que pensaba tal vez, poner un regulador 7815, para que me lo regule a 15v y no me cargue mucho todos los reguladores, pero no se si hacerlo o hacer otra cosa diferente

Pablo_Lucini

Todo depende de los consumos que tengas. ¿ Cuánta corriente circula por cada regulador ? A partir de ese dato podés calcular la potencia que disipa cada uno. Tenés un diodo puesto en la bobina del relé para apagar el transitorio ? Sino ponele un 1N4148 en antiparalelo a la bobina, no sea cosa que te esté quemando el integrado. Con qué estás alimentando la placa?

GO_zalo

Lo del Dido en antiparalelo no tiene sentido por qué en este caso el relé no está siendo controlado por el Arduino, sino que si te miras el diagrama que ha puesto, es el relé que controla una entrada

No sé por que usas este relé, quizás hay una solución mejor si das más detalles te podríamos ayudar

Pero por otro lado veo que estás alimentado el Arduino a 5v por la entrada vin

Eso no es correcto tienen que ser mínimo 7v en ese pin o alimentalo todo por la entrada de 5v

Por otro lado para evitar el calentamiento de los 7805 te recomiebdo sustituirlos por unos como estos R-78 que son reemplazo directo del 7805 y no se calientan en absoluto


tauro0221

Hi,
Una sugerencia como estas usando el Vin del NANO y este require un voltaje de 6 a 9 voltios cambia el regulador de 5 voltios que alementa al NANO por un LM7808 y el problema esta resuelto. La resistencia enonces la puedes conectar a la salida del NANO de 5 voltios.

Go Up