Entrada de Arduino con CNY17 para detectar la entrada de 12v

0

Tengo un Arduino Due y estoy usando un optoacoplador CNY17 para detectar una señal de freno de 12v de un automóvil. La señal de 12v pasa a través de una resistencia de 1 K al opto en el pin 1, el pin 2 al suelo. 3.3v va a través de una resistencia de 1K al pin opto 5 y el pin 4 al suelo. El pin 5 está conectado a una entrada digital del Arduino Due.

Todo funciona bien cuando el 12v está conectado obtengo un 0 y cuando no estoy conectado un 1 en mi puerto digital.

Ahora, cuando toco, el cable que va del opto a la entrada digital está flotando entre 0 y 1. El voltaje en el pin del opto permanece 3,3 v, pero en el voltaje de entrada digital cae alrededor de 1,6 voltios. El 1.6v explicaría por qué flota entre 0 y 1. Lo que no entiendo es por qué se caería cuando toco el cable, ¿podría explicarme eso?

simular este circuito : esquema creado usando CircuitLab

    
pregunta Jeroen Vd Veer

1 respuesta

1

Hay dos cosas que tomo en cuenta:

  1. Su resistencia de pull-up R2 es muy fuerte. Cuando 12V está encendido, se encenderá el LED que dispara el fototransistor dentro del CNY17. Esto hará que la línea que va al Arduino a 0. La cantidad de fuente actual se base generalmente en el CTR , o el índice de transferencia actual. Creo que tiene suficiente espacio para la cabeza ya que incluso a un 40% del CTR, su 12 mA de corriente directa (12 V / 1000 ohmios) debería generar al menos 4,8 mA, superando esa resistencia de 1 K, pero no hay razón para que no se pueda usar una resistencia de 10 K. el lado Arduino para darle más espacio para la cabeza.

  2. La base está flotando. Puede ayudar con la inmunidad al ruido atar la base (Pin P6) al emisor (Pin P4) a través de una resistencia de 100K.

Tocar ese cable (que está muy fuertemente inclinado a 3.3V en este momento) no debería causar una lectura de CC de 1.6V a menos que algo esté terriblemente mal o que esté conectado a tierra (y sea conductor) de manera muy, muy extraña. ¿Mediste con un DMM?

Finalmente, observo que ambos lados de tu opto están usando el mismo símbolo GND. Si todo lo que necesitas es sentir que 12V ingresan al Arduino, y no necesitas aislamiento, puedes dividirlo de manera que algunos rangos de voltaje de entrada válidos coincidan con la especificación de VIH de la entrada de Arduino.

Alternativamente, con una resistencia lo suficientemente grande (como 100K), puede aplicar 12V directamente y no recibir daño, ya que casi ninguna corriente fluirá, aunque esto puede ser peligroso si accidentalmente cortocircuite esa resistencia. Por supuesto, esto supone que las entradas no tienen un requisito de corriente de sesgo particularmente alto.

    
respondido por el Krunal Desai

Lea otras preguntas en las etiquetas