LED codificación de luz visible

0

Estoy tratando de conducir un LED de 12V con un arduino que actúa como codificador: una señal PWM con 80% de ciclo de trabajo (el símbolo "1" es + 5v para el 80% del tiempo, 0v para el 20% del tiempo de bits). Al probar la frecuencia máxima admitida por el cricuit / driver / led, obtengo un tiempo de bit de 1/1500 sec-1 con un mensaje cíclico 101010 ... Por encima de esa frecuencia, el led comienza a parpadear. Me pregunto qué debería mejorarse para obtener un tiempo de bit de 1/5000 = 200 nano seg. Se adjunta el circuito de Joost Damad. Controlador Arduino LED

    
pregunta Guido

2 respuestas

1

Encontré dos problemas que estaban afectando la respuesta del circuito: - El CSHUNT (condensador en paralelo con el LED) que debe actuar como filtro de ondulación no permitió seguir correctamente el PWM. Así que eliminé y ahora funciona como esperaba: - Mientras codificaba con digitalWrite () y delayMicroseconds (), estaba imprimiendo la iteración Serial.println (): esto generaba demoras adicionales que también afectaban la salida PWM. - Probé ahora en el rango de mis requisitos y funciona bien: Bit_time = 166 usec, incluido un ciclo de trabajo del 95%. Eso significa 8 usec RTZ y el circuito responde bien

    
respondido por el Guido
0

Al utilizar el método Arduino analogWrite (), la señal PWM generada por un Arduino Uno en los pines 5 o 6, por ejemplo, tiene un período de poco más de un ms (1.02048 ms).

Esta cita desde aquí describe esto en detalle:

  

La frecuencia de la señal PWM en la mayoría de los pines es de aproximadamente 490 Hz.   En los tableros Uno y similares, los pines 5 y 6 tienen una frecuencia de   aproximadamente 980 Hz. Pines 3 y 11 en el Leonardo también se ejecutan en 980   Hz.

Los cambios en el ciclo de trabajo de PWM llamando al método analogWrite () de Arduino cerca, a la misma velocidad o superando la velocidad de la señal PWM probablemente causarán resultados inesperados.

    
respondido por el st2000

Lea otras preguntas en las etiquetas