Leer señales hechas de ondas cuadradas de 8V en un arduino

1

Estoy trabajando para armar una placa de arduino que lea las señales enviadas entre dos módulos en un automóvil. Las señales se envían como ondas cuadradas de 8V. Un ejemplo de un mensaje enviado de esta manera sería una secuencia de 12 ms de largo que consiste en un máximo de 8 V para 6 ms, luego un nivel bajo de 0 V para 9 ms repitiendo 14 veces hacia atrás. El problema que tengo es que si pongo más de 5v en un pin digital en un Arduino, volaré la placa. Esto empeora porque con este hecho en un automóvil es completamente posible que el pin digital pueda ver accidentalmente el voltaje total del automóvil de aproximadamente 15V.

Mi pensamiento fue usar un divisor de voltaje que bajaría 15V a 5V de esta manera, incluso si el pin digital detectara los 15 voltajes completos no dañaría al Arduino. También vería zener u otro método para la protección contra sobretensiones.

Sin embargo, mi preocupación es que el tiempo está en milisegundos y no quiero que el tiempo esté apagado o no podré decodificar los mensajes con precisión. Lo que realmente estoy buscando es la forma de leer estas señales en tiempo real solo a un voltaje más bajo. ¿Funcionará o debo ir en una dirección diferente?

    
pregunta Mav2287

1 respuesta

1

Realmente debería querer cierta histéresis así como también un acondicionamiento de la señal a sus niveles de entrada de Arduino. Llegaré a eso cerca del final.

No sé qué está impulsando tu Arduino. Si lo está suministrando a través de un económico \ $ 5 \: \ textrm {V} \ $ convertidor que funciona en el riel de voltaje del automóvil, puede encontrar que protege su Arduino de volcados de carga periódicos.

Suponiendo que tiene un suministro limpio y seguro de \ $ 5 \: \ textrm {V} \ $ para el Ardiuno, entonces su principal preocupación es si su pin de Arduino I / O se expone a un voltaje externo (en relación con el suelo, por supuesto) que está por encima del riel de suministro \ $ 5 \: \ textrm {V} \ $. En tales casos, los diodos de protección se activarán y comenzarán a filtrarse la corriente en el riel de suministro. En la mayoría de los procesadores que he usado antes, encuentro que observar un máximo de \ $ 2 \: \ textrm {mA} \ $ cumple con las especificaciones máximas absolutas. Sin embargo, es posible que deba buscar su procesador específico para obtener el valor real para él. Como no mencionaste el tablero de Arduino exacto, no puedo buscarlo por ti. Pero el siguiente circuito debe ser completamente seguro de usar y es fácil de hacer.

simular este circuito : esquema creado usando CircuitLab

El circuito anterior utiliza dos BJT muy económicos para crear la histéresis y la señal de salida deseada. La salida al pin de E / S es baja cuando su señal es baja y alta cuando la señal aumenta aproximadamente \ $ 3.9 \: \ textrm {V} \ $ (dirección ascendente). En la dirección descendente, la señal debe ir abajo. aproximadamente \ $ 2 \: \ textrm {V} \ $ para que la salida se vuelva baja. Así que el circuito incluye una banda de histéresis que es casi \ $ 2 \: \ textrm {V} \ $ de ancho, centrada sobre aproximadamente \ $ 3 \: \ textrm {V} \ $. Por lo tanto, buena tolerancia al ruido.

\ $ R_6 \ $ (y \ $ R_5 \ $) también proporciona mucha protección. Usted podría agregar un zener. Pero no creo que sea necesario. En el caso de suministrar \ $ 15 \: \ textrm {V} \ $ a la entrada de señal, la base \ $ Q_1 \ $ experimentará aproximadamente \ $ 400 \: \ mu \ textrm {A} \ $ de la corriente base. Lo que debería estar bien. Incluso con \ $ 100 \: \ textrm {V} \ $ en la entrada de señal \ $ Q_1 \ $ 'la base aún ve solo \ $ 4 \: \ textrm {mA} \ $. Y de cualquier manera, el pin I / O está protegido. (Incluso si \ $ Q_1 \ $ frito completamente todos los pines cortos por alguna razón).

También debería ser lo suficientemente rápido para tus necesidades.

    
respondido por el jonk

Lea otras preguntas en las etiquetas