Go Down

Topic: Problema con alimentación de un circuito (Read 263 times) previous topic - next topic

pepepotero

Apr 16, 2018, 08:12 pm Last Edit: Apr 16, 2018, 08:42 pm by pepepotero
Hola

Tengo un monaje que consta de 2 arduinos pro mini, una pantalla LCD 16x2, una placa de control de motores con 2 L293D que controla 3 motores 12V CC, y un servo.

La alimentación la realizo con un transformador de 220 12V 2A. Con los 12V alimento directamente los motores y un L7805 que me proporciona los 5V para el resto de componente.

Con los 5V alimento los 2 arduinos a través del pin VCC, la pantalla, la placa con los 2 L293D y el servo. El control del servo está conectado al pin 9 de uno de los arduinos (para las pruebas lo tengo sin carga alguna).

Funciona todo perfectamente hasta que tengo que accionar el servo, en ese momento, el sistema se viene abajo y se reinician ambos arduinos y algunas veces se vuelven locos hasta que quito la alimentación y despues de unos segundos la vuelvo a poner y vuelve a funcionar todo de nuevo hasta que se acciona el servo.

Lo curioso es que si alguno de los arduinos está conectado al USB, todo el sistema funciona perfectamente, incluido el servo. Lo cual me puede dar una pista de que falta corriente.

Si mis calculos no me han fallado el consumo total del montaje es menor de 2A, y cuando se acciona el servo, los motores no están funcionando, sólo los arduinos y la pantalla. No alimento ningun componente desde ninguna salida de arduino, todos directamente de la salida del 7805 (excepto los motores que van a 12V).

La libreria que uso para el control del servo es la normal de arduino

y el accionamiento es con el siguiente código, que creo que no tiene mucho misterio:

Code: [Select]
void servoAlter()
{
 lcd.clear();
 // Todos los delay son para pruebas
 servo1.attach(PINSERVO); //El attach está en esta rutina porque en el setup() cuelga el arduino.
 delay(200);
 for (byte n=0; n < oscilaciones; n++)
 {
 // Hace ciclos para cada movimiento
 servo1.write(180);
 delay(200);
 servo1.write(90);
 delay(200);
 }
 //servo1.write(135); //Vuelve a una posición inicial
 servo1.detach();
}




He probado con varias fuentes de alimentación y ocurre lo mismo con todas.

La placa con los L293D sólo tiene esos componentes (2 x L293D).

¿sabria alguien decirme que puede estar pasando?

Muchas gracias de antemano.

Edito para aclarar sobre el servo. Montaje probado con varios servos Tower Pro SG90.


navigtoor

Pues tal vez tenga que ver con la variante del 7805 que estés usando. Hay varias y no toso son capaces de servir la misma corriente:

78xx (sin letra): 1 amperio, TO220
78Lxx: 0,1 A, TO92
78Mxx: 0,5 A
78Sxx: 2 A
78Txx: 3 A
78Hxx: 5 A (híbrido)
78Pxx: 10 A (híbrido).

Un saludo.

tauro0221

Hi,
Una prueba sencilla es la de leer el voltaje cuando esto ocurre. Puedes incluir el circuito de como esta installado el LM7805. Le tienes condesadores de filtros a la salida de este? Creo que 2 amperios no son suficientes  para toda esa carga aunque tu dices que calculastes los amperios que usas. Mi sugerencia es de tener dos fuentes de alimentacion una para los motores y el servo y otro para al arduino y la pantalla. En esa forma estaras aislando el arduino de los motores y el servo. Los motores  y los servos generan mucha inteferencia o ruido cuando estan operando.

pepepotero

Antes de nada agradecer vuestras respuestas.

Navigatoor,

El regulador es un L7805CV, que si no me equivoco en su datasheet soporta 1,5A. Le he puesto un disipador de calor.

Tauro0221,
Si, tiene un condensador de 100uf a la salida del regulador. En la entrada creo que no es necesario ya que la alimentación está regulada. El montaje inicial fue con una placa reguladora de tensión In 12V y salida de 3,3V y 5V para protoboard, pero según su datasheet sólo podía proporcionar 750mA, por lo que decidí montar el L7805 hasta 1A.

Midiendo intensidad, justo antes de accionar el servo, el multímetro me muestra 240-250mA, lo cual es coherente con mis cálculos, y teniendo en cuenta que el servo en vacío puede llegar a consumir (según alguna página que he mirado) unos 500mA, el consumo total sería de unos 750mA (menor que 2A). No puedo medirlo porque en el momento de accionar el servo el multímetro marca 300mA y luego cero. El sistema se reinicia y vuelve a marcar 240- 250mA.

Como bien dices, la solución pasaría por 2 alimentaciones, una de 5V para los arduino y componentes, y otra para los motores y servo, pero esa era la última opción, por eso lancé la pregunta aquí, por si podía encontrar una solución sin 2 alimentaciones.

Muchas gracias



tauro0221

Hi,
Aqui tienes que tener en consideracion que cuando usas una carga inductiva esta al principio te va aumentar la corriente por unos segundos especialment motores ya que son inductivos. Al arrancar los motores estos van aumentar la corriente temporeramente. Podrias aumentar el condensador de salida por uno de 1000uf y mira a ver si esto mejora. Esto te ayudara a suplir la carga initiar al prender los motores. Para mi lo ideal seria lo que te propuse al principio de dos fuentes de energia una para los 12 voltios y la otra para los 5 voltios.  Otra cosa es que puedes anadir un condesador a la salida del regulador pues el proposito del condesador es almacenar energia para cuando la necesitas.

mermelado

O he leido mal, o dice que los motores no se alimentan de los 5, sino de los 12v. de ser así, puede que aumentar capacidad e intensidad en la linea de 5 voltios sea inútil.

surbyte

Los motores tienen especificaciones. Nosotros desde aca no las vemos.
Tu no las posteas asi que tenemos que hacer suposiciones.

Sabrás tu si se puede o no conectar a 12V. El L293D si puede manejar esa tensión pero quien decide es el moto.
Si es de 6V y lo conectas a 12 seguro lo quemas.


Tan simple como eso.

pepepotero

Hola de nuevo
Tauro0221,
Al final te he hecho caso y he colocado otra alimentación de 5V y ya está todo funcionando perfectamente. No es lo que pretendía pero veo que es lo más práctico. Por lo menos he aprendido algo de vuestra ayuda.

Mermelado,
Efectivamente, de la alimentación de 12v saco una linea directa a los motores y otra para el L7805, tal vez tengas toda la razón del mundo y no tenga sentido aumentar la capacidad de la linea de 5V. Mis conocimientos de electrónica son limitados y si puedes darme alguna referencia para aprender...

Surbyte,
El problema no está en los motores, está en el servo, del cual he puesto el modelo. Los motores son de 12V CC (tal y como he puesto en el post inicial) y funcionan perfectamente controlados por los L293D.

La alimentación queda como sigue:
Una fuente de 5V 750mA que alimenta arduinos, LCD y placa L293D.
La fuente de 12V igual, pero la línea de 5V del L7805 alimenta solamente el servo en vez de a todo el sistema.
Todo con GND común. Y por el momento funciona perfectamente el montaje.

Muchas gracias a todos

mermelado

Bueno, me alegra hayas solucionado el problema. Por si te sirve de algo te diré una manera de aumentar la intensidad de un regulador. Si por ejemplo usas un regulador de 5v que  no te da intensidad suficiente, que por ejemplo se alimenta de una linea de 12v que va sobrada de intensidad, puedes aumentar la intensidad del 7805 con un transistor, esto se lleva haciendo hace años. Si por ejemplo usas un npn, por ejemplo 2n3055, el colector ca a la linea de 12v, la salida es por emisor y la referencia del regulador a la base. En teoría es bueno saber que el propio transistor se comerá unos 0,6 voltios de la tensión de referencia, si el circuito es crítico, debes compensarlo en el propio regulador, o bien poniendo otro adecuado "si lo hay" o simplemente poniendo una resistencia de valor adecuado o un simple diodo en la patita que va a masa del regulador de 5 voltios, el diodo te compensará bastante fielmente la caida de tensión del transistor.

Go Up