1.4V en lugar de 0V cuando Arduino señala un BAJO

0

Tengo un mecanismo de control del motor como el que se muestra en la imagen. Estoy controlando la dirección de un controlador de motor desde tres fuentes diferentes. DIR1 y DIR2 forman dos de estas fuentes y, en cualquier momento, una de ellas es la fuente de control y se selecciona con el MUX. La tercera fuente OUT_2 está esencialmente conectada a los controladores del motor a través del optoacoplador directamente y esta fuente obtiene prioridad sobre las dos fuentes anteriores. OUT_2 es generado por un Arduino. En la implementación real de esto, cuando la MCU externa señala que OUT_2 está en BAJO, veo 1.47V en OUT en lugar de 0V. ¿Por qué es esto y cómo lo resuelvo?

    
pregunta electrophile

1 respuesta

0

Tienes dos salidas conduciendo la misma línea. Si uno tira alto y otro baja, se cortan el uno al otro.

La resistencia interna de ambos controladores resultará en un voltaje de nivel medio en la línea de señal. Normalmente, están más cerca de 0 V que VDD, ya que los transistores NMOS (usados para bajar) son típicamente más fuertes que PMOS (usados para subir).

La forma de resolverlo depende de cómo se maneja su optoacoplador (por lo tanto, siempre pedimos un esquema adecuado). Si lo conecta desde VDD (ánodo) a señal (cátodo), entonces solo necesita hacer que ambas salidas se desaguen (es decir, nunca tiran alto, solo bajo o flotante). Alternativamente, use una puerta AND que impulsará el optoacoplador alto solo cuando ambas entradas estén altas.

    
respondido por el Tom Carpenter

Lea otras preguntas en las etiquetas