Tabla de contenido:

Calibración del brillo del LED: 5 pasos
Calibración del brillo del LED: 5 pasos

Video: Calibración del brillo del LED: 5 pasos

Video: Calibración del brillo del LED: 5 pasos
Video: CÓMO CALIBRAR CUALQUIER TV O MONITOR PLANO EN 5 MINUTOS 📺 TUTORIAL MUY FÁCIL 🛠 IMAGEN BRUTAL! 😲 2024, Noviembre
Anonim
Calibración del brillo del LED
Calibración del brillo del LED

Mientras hacía una luz de hadas, me di cuenta de que el valor de PWM no es linealmente proporcional al brillo del LED. Simplemente hablando, si el valor de PWM es el doble, el brillo no es el doble; especialmente cuando PWM está cerca del máximo, mis ojos no reconocen ningún cambio. ¡Pensé que debería ser un simple problema de calibración! ¡y así fue como hice este proyecto! La idea es medir el brillo de un LED con algún dispositivo (sensor de luminosidad o fotorresistencia) y encontrar una correlación entre el valor PWM y el brillo. Luego, más tarde, si configuro el brillo al 50%, Arduino calculará el PWM correspondiente y atenuará el LED en consecuencia.

Por tanto, necesito un sensor de luminosidad y un LED para medir el brillo. Usando una tarjeta SD, guardaré los datos para un procedimiento de ajuste posterior. El ajuste se realizará en Excel (o cualquier otro programa). La salida se usará en el código Arduino, ¡y eso es todo! Debe hacerse una vez. ¡Entonces puede usar el parámetro de calibración para siempre!

Paso 1: Partes

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (sensor de luminosidad): Aliexpress 3 €

3- Módulo de tarjeta SD: Aliexpress 1 €

4- LED

5- Resistencia 220 ohmios

6- cables

coste total: 8-10 €

Paso 2: cableado

Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado

El módulo de la tarjeta SD y los cables del sensor de luminosidad no deben cambiarse (la mayoría de ellos). El LED debe estar conectado a un pin PWM.

Paso 3: Código

Código
Código

Combiné tres piezas de códigos:

Tarjeta SD: ejemplo usado> SD> ReadWrite en Arduino IDE

TSL 2561: ejemplo usado de la biblioteca Adafruit TSL2561 (sensorapi); lo encontrará en ejemplos, si instala la biblioteca (supongo que sabe cómo instalar una biblioteca en Arduino IDE).

Desvanecimiento de LED: ejemplos usados> Analógico> desvanecimiento

El código, después de inicializar los módulos, atenuará el led y leerá el brillo y lo guardará en la tarjeta SD. de esta manera recopilaré algunos datos para la calibración.

Cambié cada uno de los códigos según mis necesidades. el código final adjunto.

La señal debe parecerse a la imagen adjunta. Desafortunadamente, olvidé tomar una foto, así que la volví a escribir en Excel para mostrarte cómo debería ser.

NOTA: Estoy usando wemo mini D1 en lugar de Arduino. por alguna razón que no sé, el PWM está entre 0 y 1023. En Arduino debería estar entre 0-255. Si desea utilizar el código para arduino, debe encargarse de él (línea 90).

Paso 4: Ajuste y uso

Montaje y uso
Montaje y uso
Montaje y uso
Montaje y uso

después de recopilar datos, abrí el archivo en Excel y tracé los datos (mira la imagen). la primera columna es el valor PWM y la segunda es el lux (lectura del sensor, la unidad no importa mucho). Por lo tanto, grafique lux (eje y) frente a PWM (eje x). Como puede ver, el brillo es linealmente proporcional al valor PWM. Le ajusté una línea.

Para ajustar una línea, siga lo siguiente:

1- trazar los datos (insertar> diagrama de dispersión) supongo que sabe cómo.

2- clic derecho sobre los datos graficados

3- haga clic en la línea de tendencia.

4- (en Excel 2013) en el lado derecho aparece un panel. Elija lineal. En la parte inferior, elija "mostrar ecuación en el gráfico".

La relación lineal es diferente a mi percepción. Por lo tanto, creo que debería haber una relación logarítmica entre mi percepción y el brillo (¡esta es la forma más sencilla que se me ocurrió!). Así que tomé la pendiente del ajuste. La intersección no es importante, ¡porque depende de la contaminación lumínica circundante! en su lugar, agregué 1. Porque Log10 (0) es infinito. Entonces necesito una intercepción para resolver el problema. En mi caso, la ecuación se ve así:

y = Log10 (0.08 x +1), y es el brillo yx es el valor PWM (0-1023)

Normalicé la ecuación al valor máximo. entonces la salida sonó siempre entre 0-100. de esta manera puedo pedir a arduino un cierto brillo relativo, sin importar el brillo absoluto máximo.

y = Log10 (0.08 x +1) * 100 / 1.914

Debido a que en arduino mi entrada es el brillo relativo, necesito reorganizar la ecuación para x (PWM):

x = (10 ^ (y * 1.914 / 100) - 1) / 0.08

usando esta ecuación en el código podemos obtener un cambio de brillo lineal. Entonces le pide a arduino un brillo (y) entre 0-100, y arduino calcula el valor PWM correspondiente. de esta manera, si duplica el brillo, su percepción también es la misma.

si desea usarlo en su código, es mejor agregar estas líneas:

brillo = 50; // en porcentaje

PWM = pow (10, brillo * 1.914 / 100) -1) /0.0793;

analogWrite (ledpin, PWM);

NOTA: la normalización se realiza para un PWM máximo de 1023 (para Wemos mini D1). Para Arduino, PWM está entre 0-255. debe calcularlo en consecuencia.

NOTA 2: Agregué una gráfica log-lineal para mostrar cómo se relacionan nuestra percepción y el valor de PWM. ¡No debe usarlo para la instalación!

Paso 5: Conclusión

la calibración funciona bien para mí. Cuando los valores de PWM son grandes, puedo ver la diferencia. Antes, como los valores grandes, no podía ver el efecto de atenuación. Básicamente, la mayoría de los cambios se realizaron en un pequeño rango de PWM. ¡ahora está calibrado!

cada LED, especialmente de diferentes colores, debe tener sus propios parámetros de calibración. Sin embargo, calibré un LED azul y utilicé el parámetro para un LED blanco y el resultado fue aceptable. ¡¡Así que tal vez puedas usar mi parámetro de calibración sin molestarte !!

Recomendado: