Controlando la velocidad del motor a través de L293D usando TLC5940NT

2

Estoy tratando de controlar un motor de CC a través de un L293D. En última instancia, lo controlo con un Arduino, pero estoy tratando de usar un chip TLC5940NT como intermediario para aumentar la cantidad de salidas que tengo.

He conectado tres de las patillas del TLC5940 a la entrada 1, la entrada 2 y habilitar las patillas del L293D, utilizando resistencias de pull-up de 2,2 k ohmios en las dos clavijas de entrada (he intentado diagramarlo a continuación) - disculpas si no está claro. Versión de tamaño completo ):

Diagrama de TLC5940NT conectado a L293D http://i59.tinypic.com/2mpzo21.jpg

Cuando engancho el pin de habilitación hasta + 5v, el motor funciona y puedo controlar la dirección usando In 1 e In 2. Sin embargo, quiero controlar la velocidad mediante PWM. Cuando engancho el perno de activación en el TLC5940 (como en el diagrama) no puedo hacer que el motor gire en absoluto. Intenté usar una resistencia de pull-up también en el pin de habilitación, pero aún no giraba, y cuando lo conecto a + 5v DC utilizando solo una resistencia de 2.2k ohm o 560 ohm, no ocurre nada. Lo único que lo ha hecho girar hasta ahora es una constante de 5 VCC sin resistencia.

¿Alguien puede explicar qué está mal y cómo puedo hacer que funcione?

Editar: he intentado agregar un esquema más completo

    
pregunta Nevermore

2 respuestas

1

El problema principal aquí es que usted ha entendido mal cómo funcionan realmente las salidas de TLC5940NT. No funcionan de la misma manera que los controladores de salida push-pull de Arduino, el TLC5940NT usa sumideros de corriente (llamados salidas de drenaje abiertas, que realmente actúan más como entradas. Freaky ¿verdad? Explico más al final) para tirar de ese pin "LOW ". Esta es la razón por la que se les conectan LED, a veces con una resistencia limitadora de corriente (dependiendo de si en realidad son o no sumideros controlados por corriente) de VCC a través del LED y luego en el pin del TLC5940NT y dispositivos similares (usé el TLC59116F antes, que es similar).

En realidad, cometí el mismo error que tú en el pasado, ya que no sabía qué era una entrada abierta de drenaje / fregadero, y asumí exactamente como lo hiciste, que funcionaría de manera similar a como lo hizo mi Arduino. Lo que debe hacer para que esto funcione es invertir la lógica con componentes externos y algunas resistencias de arranque. Cuando las "salidas" del TLC5940NT están "apagadas", el valor en el pin es alto. Esta señal "alta" se puede invertir fácilmente con dos métodos: un circuito inversor lógico de transistor NPN, un CI de lógica de controlador de línea / búfer inversor o incluso amplificadores operacionales si es necesario. A continuación se muestra un resumen rápido de cada uno de estos métodos.

Figura 1: Inversor de lógica de transistores que utiliza un NPB BJT de po- derpo.

Figura2:UsodeunbúferinversorIC,comoun7404Hex(significa8entradas/salidas)Búferinversor.

Es posible que desee una resistencia desplegable o dos en la salida del búfer para evitar los pines flotantes, pero creo que estará bien sin ellos. Siempre siga las instrucciones de la hoja de datos del fabricante.

¿Observa cómo en ambas imágenes muestro los pines de "salida" del TLC5940 como en realidad el lado superior de un MOSFET de canal N? Este pin va al "drenaje" del FET, que cuando está apagado es básicamente un circuito abierto, por lo que lo llaman una salida de "drenaje abierto". A pesar de que actúa como un interruptor de sumidero de corriente del lado bajo ... Terriblemente confuso, y entiendo por qué cometió este error. Es importante que aprenda esto ahora, tan pronto como pueda, y siempre recuerde en el futuro revisar estas hojas de datos y analizar la lógica para asegurarse de que esto no vuelva a suceder.

Lo siguiente que debe hacer es conectar las salidas de estas etapas de inversión a las entradas de su controlador de motor, como si fueran señales de salida de estilo Arduino.

¡Tu sistema debería funcionar como estaba previsto ahora! Los componentes externos son un mal necesario debido a la forma en que funcionan las salidas del TLC5940NT. Sin embargo, estoy de acuerdo (y por qué usé el TLC59116F), tienen increíbles funciones y utilizan su capacidad para PWM en cada canal y permiten que su microcontrolador haga otras cosas que vale la pena el esfuerzo.

    
respondido por el KyranF
0

¿Es el motor V al L293D + 5V? ¿De dónde viene ese + 5V - el Arduino? No debe (y con frecuencia no puede) poner una carga significativa, como un motor montado en el regulador del Arduino, solo está clasificado para < 400mA si está usando un puerto USB. Vea ¿Cuánta corriente puedo extraer de los Arduino ¿alfileres? para una buena explicación. Además, el L293 es una mala elección de componentes para el control del motor de baja tensión, debido a la alta caída de tensión interna, ver:

sobrecalentamiento de L293D

y

¿Se prefieren los controladores H-bridge para las aplicaciones que controlan un motor de bajo voltaje?

para alternativas.

    
respondido por el Zuofu

Lea otras preguntas en las etiquetas