Tabla de contenido:
Video: Calibración del brillo del LED: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
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
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
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
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:
CALIBRACIÓN DEL SENSOR DE PH ARDUINO: 7 Pasos
CALIBRACIÓN DEL SENSOR DE PH ARDUINO: En este tutorial, calibraremos el sensor de pH EZO de Atlas Scientific usando Arduino Uno. TEORÍA DE LA CALIBRACIÓN La parte más importante de la calibración es observar las lecturas durante el proceso de calibración. Es más fácil calibrar el dispositivo en
Calibración del sensor de humedad del suelo: 5 pasos
Calibración del sensor de humedad del suelo: hay muchos medidores de humedad del suelo en el mercado para ayudar al jardinero a decidir cuándo regar sus plantas. Desafortunadamente, tomar un puñado de tierra e inspeccionar el color y la textura es tan confiable como muchos de estos dispositivos. Algunas sondas incluso registraron
CALIBRACIÓN DEL SENSOR DE ORP ARDUINO: 3 Pasos
CALIBRACIÓN DEL SENSOR DE ORP ARDUINO: En este tutorial, calibraremos el sensor EZO ORP (potencial de oxidación-reducción) de Atlas Scientific utilizando Arduino Uno. TEORÍA DE LA CALIBRACIÓN La parte más importante de la calibración es observar las lecturas durante el proceso de calibración. Es facil
CALIBRACIÓN DEL SENSOR DE OXÍGENO DISUELTO ARDUINO: 4 Pasos
CALIBRACIÓN DEL SENSOR DE OXÍGENO DISUELTO ARDUINO: En este tutorial, calibraremos el sensor de oxígeno disuelto (DO) EZO de Atlas Scientific usando Arduino Uno. TEORÍA DE LA CALIBRACIÓN La parte más importante de la calibración es observar las lecturas durante el proceso de calibración. Es más fácil de calibrar
CALIBRACIÓN DEL SENSOR DE SALINIDAD ARDUINO: 9 Pasos
CALIBRACIÓN DEL SENSOR DE SALINIDAD ARDUINO: En este tutorial, calibraremos el sensor EZO de salinidad / conductividad K1.0 de Atlas Scientific utilizando Arduino Uno. TEORÍA DE LA CALIBRACIÓN La parte más importante de la calibración es observar las lecturas durante el proceso de calibración. Es más fácil