Estoy tratando de controlar un motor de CC a través de un L293D. En última instancia, lo estoy controlando con un Arduino, pero estoy tratando de usar un chip TLC5940NT como intermediario para aumentar la cantidad de salidas que tengo.
Conecté tres de los pines en el TLC5940 a la entrada 1, entrada 2 y pines habilitados del L293D, usando resistencias pull-up de 2.2k ohm en los dos pines 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:
Cuando conecto el pin de habilitación a +5v, el motor funciona y puedo controlar la dirección usando In 1 e In 2. Sin embargo, quiero controlar la velocidad por PWM. Cuando conecto el pin Habilitar al TLC5940 (como en el diagrama) no puedo hacer que el motor gire en absoluto. Intenté usar una resistencia pull-up también en el pin de habilitación, pero aún no giraba, y cuando lo conecto a +5v DC usando solo una resistencia de 2.2k ohm o 560 ohm, no sucede nada. Lo único que lo ha hecho girar hasta ahora es una CC constante de 5 V sin resistencia.
¿Alguien puede explicar qué está mal y cómo puedo hacer que funcione?
Editar: he intentado agregar un esquema más completo
El problema central aquí es que no entendió cómo funcionan realmente las salidas 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! ¿Extraño, verdad? Explico más al final) para tirar de ese pin "BAJO ". Es por eso que les conecta los LED, a veces con una resistencia limitadora de corriente (dependiendo de si en realidad son sumideros controlados por corriente o no) desde VCC a través del LED y luego en el pin del TLC5940NT y dispositivos similares (utilicé el TLC59116F antes, que es similar).
De hecho, 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 extracción. Cuando las "salidas" del TLC5940NT están "apagadas", el valor en el pin se eleva. Esta señal "alta" se puede invertir fácilmente con cualquiera de los dos métodos: un circuito inversor de lógica de transistor NPN, o un circuito integrado de lógica de controlador de línea/búfer de inversión o incluso amplificadores operacionales si es necesario. A continuación se muestra un bosquejo rápido de cada uno de estos métodos.
Figura 1: Inversor lógico de transistores que utiliza un BJT NPN económico.
Figura 2: Uso de un IC de búfer de inversión, como un 7404 Hex (significa 8 entradas/salidas) Búfer de inversión.
Es posible que desee una o dos resistencias desplegables en la salida del búfer para evitar los pines flotantes, pero creo que estará bien sin ellos. Siga siempre las instrucciones de la hoja de datos del fabricante.
Observe 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 se apaga es básicamente un circuito abierto, por lo que lo llaman 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 seguir la lógica para asegurarse de que esto no vuelva a suceder.
Lo siguiente que debe hacer es conectar las salidas de estas etapas inversoras a las entradas de su controlador de motor, como si fueran señales de salida estilo Arduino.
¡Su sistema debería funcionar según lo previsto ahora! Los componentes externos son un mal necesario por la forma en que funcionan las salidas del TLC5940NT. Sin embargo, estoy de acuerdo (y por qué usé el TLC59116F) tienen características increíbles y vale la pena usar su capacidad para PWM en cada canal y dejar que su microcontrolador haga otras cosas.
¿Es el motor V para el L293D +5V? ¿De dónde viene ese +5V, el Arduino? No debe (ya menudo no puede) colocar una carga significativa, como un motor acoplado al regulador del Arduino, solo tiene una clasificación de <400 mA si está utilizando un puerto USB. Consulte ¿Cuánta corriente puedo extraer de los pines de Arduino? para una buena explicación. Además, el L293 es una mala elección de componente para el control de motores de bajo voltaje, debido a la alta caída de voltaje interno, consulte:
y
para alternativas.
sherrellbc
Nunca más
sherrellbc
Zuofu
Nunca más