Necesito conectar una entrada digital de 20 a 25 voltios de 1 MHz a Arduino. ¿Hay alguna forma posible de hacerlo? Creo que el uso de optoacoplador será inútil debido a la alta frecuencia. ¿Alguna otra forma de resolverlo?
Necesito conectar una entrada digital de 20 a 25 voltios de 1 MHz a Arduino. ¿Hay alguna forma posible de hacerlo? Creo que el uso de optoacoplador será inútil debido a la alta frecuencia. ¿Alguna otra forma de resolverlo?
De la referencia a los optoacopladores, es de suponer que la señal de origen no está referenciada a tierra con el Arduino.
En tal caso, se puede usar un optoacoplador como Toshiba 6N137 . Esto está clasificado para 10 megabaudios, por lo que se pueden acoplar hasta 10 MHz usándolo. Este optoacoplador es $ 0.82 en el banco de bienes y servicios en el centro de la ciudad. Señal de 1 MHz de menor frecuencia.
Un esquema típico para esto sería así:
Si la señal entrante hace referencia a la conexión a tierra del Arduino, entonces un simple divisor de voltaje funcionaría para disminuir el voltaje a los 0-5 voltios requeridos (o 0-3.3 voltios para algunas placas Arduino más nuevas). Elija resistencias para el divisor de modo que su impedancia en paralelo sea igual o superior a la impedancia de salida de la fuente de señal.
Esto debe ser seguido por un búfer de ganancia unitaria, incluso un amplificador operacional de fuente única de salida de riel a riel como búfer o un circuito seguidor de voltaje BJT serviría.
Alternativamente, la entrada dividida por voltaje podría usarse para cambiar un MOSFET, permitiendo así que la salida se acerque bastante a cada riel. Busque un MOSFET con puerta de nivel lógico y baja capacidad de puerta.
Primero: Sí, puedes obtener optoacopladores con un ancho de banda de 10 MHz o más rápido, para que funcione. Sin embargo, podría ser más fácil usar un divisor de reistor. Si sabe que la señal siempre será de 25 V, puede usar una resistencia de 20 kOhm entre la entrada y el pin digital, y una resistencia de 5 kOhm entre el pin digital y la tierra, por lo que el pin verá una señal de 0-5V. Sin embargo, si el voltaje de entrada varía tanto que el voltaje generado más bajo es menor que el valor de "detección alta", usted quiere usar algún tipo de re-buffering. (Otra opción es un opamp, y una tercera opción es un chip de búfer digital.)
Segundo: para una señal de 1 MHz, el Arduino solo funciona a 16 MHz, por lo que tendrá 8 ciclos para cada estado de la señal (alto y bajo). Eso puede no ser suficiente para hacer realmente lo que necesita hacer Con la señal. Sin embargo, si la señal es un protocolo para el cual existen periféricos (SPI, I2C, UART), entonces puede usar ese periférico para decodificarlo. Por ejemplo, he ejecutado servos UART asíncronos a 2 Mbit / s desde un Arduino, usando el puerto serial incorporado.
Lea otras preguntas en las etiquetas arduino