Problema de oscilación de los microcontroladores + motores de CC

1

He diseñado un circuito simple para usar el microcontrolador AVR (Atmega328) para controlar algunos motores de CC.

Todo funciona perfectamente con un solo motor conectado, pero después de conectar el segundo, el circuito entra en un extraño tipo de oscilación (alrededor de 15 Hz) de encendido y apagado. Estoy bastante seguro de que tengo suficiente corriente de la fuente de alimentación (500 mA), los motores son muy pequeños (vibradores de teléfonos celulares).

¿Alguna idea?

    
pregunta mrkva

5 respuestas

5

Tengo una idea muy clara: los motores causan tanto ruido en la fuente de alimentación de 5 V que el microcontrolador se reinicia continuamente.

El AVR tiene una detección de reducción de tensión que provoca un restablecimiento interno cuando la tensión de alimentación cae por debajo de un nivel preestablecido.

Elnivelesprogramable,consultelatabla28-4enla hoja de datos . No lo inhabilitaría, pero tal vez ajuste el nivel.

desacoplamiento !!

Desacople correctamente el controlador: eso es 100nF directamente en los pines 7 y 8. Con un ruido de + 5V puede agregar un 1 \ $ \ mu \ $ F y un 10nF, el más pequeño más cercano a los pines.
Desacople los motores, con 100 \ $ \ mu \ $ F a través de sus conexiones.

Entonces, nunca conecte su microcontrolador directamente a la misma fuente de alimentación que un motor. Aíslelos con diodos de su regulador de voltaje y coloque un capacitor de 100 \ $ \ mu \ $ F después del diodo del microcontrolador. Si no le gusta la caída de voltaje del diodo (le dará 4.3V en lugar de 5V), entonces agregue un diodo entre la conexión a tierra del regulador de voltaje y la conexión a tierra. Eso elevará el voltaje de salida a 5.7V, de modo que compensa la caída de voltaje en los otros diodos.

Tu circuito de reinicio también es inusual. No tienes control sobre la constante de tiempo. La mayoría de las veces, conectará un condensador del pin de reinicio a tierra y una resistencia a Vcc.

editar
Rocket surgeon y Nathan ya te informaron sobre las resistencias para los transistores. Por el momento solo existe la resistencia interna de los MOSFET de salida que limitan la corriente de base. Esta resistencia es solo de 25 \ $ \ Omega \ $, por lo que tendrá 170mA de cada salida. Eso es ciertamente daño a tu controlador. Añadir una resistencia de serie

\ $ R < \ dfrac {(5V - 0.7V) \ times 400} {I_C \ times 2} \ $

donde \ $ I_C \ $ es la corriente del motor, \ $ 400 \ $ la ganancia actual de los transistores y \ $ 2 \ $ un margen de seguridad.

    
respondido por el stevenvh
2

Gran respuesta de stevenvh. Simplemente agregaría que debe colocar una tapa de alimentador en su riel de 5V (es decir, poner otro 100uF después del regulador) porque la respuesta de impulso de carga del regulador probablemente no es suficiente para evitar las caídas de tensión que restablecerán su micro durante los cambios repentinos en el motor. sorteo actual.

Además, si está utilizando BJT, realmente debería tener una resistencia limitadora de corriente entre el microcontrolador y la base.

    
respondido por el Nathan Wiebe
1

Sus salidas de CPU a bases de transistores no tienen resistencias. Está cortocircuitando el puerto de salida al suelo.

    
respondido por el user924
1

El punto de conexión a tierra para sus motores también podría ser el culpable, conéctelos cerca de la tierra de la fuente de alimentación y no cerca de la unidad de control de temperatura.

    
respondido por el s3c
0

¿Ha intentado mirar el suministro de 5v en un osciloscopio? Esto te diría si estuvieras experimentando apagones.

¿No tienes un osciloscopio? (realmente deberías tener incluso uno barato de eBay) Luego puedes ver la línea 5v usando un comparador.

Compare la línea de 5v con una buena línea de 5v conocida de otro regulador de 5v. Puedes ajustar el nivel de detección de pardeamiento con la olla. Configure el potenciómetro de modo que el voltaje en la entrada negativa del comparador sea la mitad del voltaje de reducción de voltaje del ARV. Si el LED se ilumina (aunque sea por un momento), probablemente se reinicie el ARV. Es posible que deba hacer esto en una habitación oscura para que pueda ver pequeños destellos de luz del LED. O utilizar una resistencia muy baja.

    
respondido por el Rocketmagnet

Lea otras preguntas en las etiquetas