Analizando señal PWM rápida de 24V en Arduino

Actualmente estoy tratando de instalar un cabezal de impresora 3D en un molino CNC chino barato. Hasta ahora he podido controlar con éxito el ventilador, el elemento calefactor (incluida la lectura de un termistor) y el motor del alimentador con un Arduino Uno.

El propio CNC tiene un terminal que se conecta al motor del husillo del molino. Esto produce una señal PWM de 24 V y 2 MHz destinada a controlar la velocidad del motor del husillo.

Después de instalar el cabezal de la impresora, me gustaría poder controlar la velocidad del motor del alimentador de filamento utilizando la configuración de velocidad del eje del CNC. Para esto, necesito que el Arduino pueda leer la salida del terminal de velocidad del husillo.

Ahora a mi pregunta: ¿cómo es posible cambiar una señal PWM de 24 V a 5 V para poder leer y medir el ciclo de trabajo con mi Arduino?

Mi primer pensamiento fue usar un optoacoplador: esta parece una forma posible, pero mis optoacopladores (LTV-817A) tienen una frecuencia de corte de 80 kHz, por lo que tengo entendido, son demasiado lentos para un PWM de 2MHz. señal.

¿Qué alternativas tengo?

¿Está 100% seguro de que es una frecuencia portadora de 2 MHz para el PWM?
Voto para cerrar esta pregunta como fuera de tema porque es un viejo problema XY abandonado. Los molinos fabrican malas impresoras 3D y la alimentación del filamento requiere más precisión que solo velocidad. Hay todo un arte y un conjunto de conocimientos en esto que está pasando por alto en un intento de duplicar un experimento que podría haber parecido interesante en el ámbito de los pasatiempos hace 15 años, cuando había poca conciencia de FDM fuera de unas pocas empresas, pero que hoy en día está obsoleto. .
Estoy de acuerdo en que el molino nunca competirá con las impresoras especialmente diseñadas, ya sea solo porque la distancia Z que puede cubrir es demasiado pequeña para imprimir algo significativo. Por eso pregunté sobre el problema eléctrico de procesar una señal PWM, que estoy seguro tiene otras aplicaciones fuera de la impresión 3D. El primer párrafo de mi pregunta era solo para el contexto.

Respuestas (2)

Mi sugerencia es:

  1. Filtro de paso bajo de la señal PWM de 2 MHz para producir una señal de 0 - 24 V CC proporcional a la velocidad. Un simple circuito RC debería ser suficiente. A 2 MHz, la constante de tiempo será mucho más corta que la velocidad de aceleración/desaceleración del motor.
  2. Amortigua esta señal.
  3. Conduce un optoaislador analógico.
  4. Alimente la salida analógica a la entrada analógica de su microcontrolador.

El paso 2 debe funcionar sin cargar demasiado el filtro.

Wouter van Ooijen tiene algunas sugerencias en su respuesta a Necesita un optoacoplador para obtener una salida directamente proporcional aislada galvánicamente de la entrada de CC . En particular, el amplificador de aislamiento lineal HCPL-7510 parece interesante.

Si la tierra es común entre el controlador PWM y Arduino, entonces puede usar un divisor de resistencia.

esquemático

simular este circuito : esquema creado con CircuitLab

¡No a 2 MHz con esos valores!