Fotorresistor ir del sensor de movimiento de la automatización de la iluminación de Arduino. Fotorresistor y LED en Arduino

Nuevos articulos

● Proyecto 13: Fotorresistor. Procesamos la iluminación mediante iluminación o extinción de leds

En este experimento, nos familiarizaremos con un sensor analógico para medir la iluminación: un fotorresistor (figura 13.1).

Componentes requeridos:

Un uso común de un fotorresistor es medir la iluminación. En la oscuridad, su resistencia es bastante grande. Cuando la luz incide en el fotorresistor, la resistencia cae en proporción a la iluminación. El diagrama para conectar el fotorresistor al Arduino se muestra en la Fig. 13.2. Para medir la iluminación, es necesario ensamblar un divisor de voltaje, en el que el brazo superior estará representado por una fotorresistencia, el inferior, por una resistencia ordinaria de una clasificación suficientemente grande. Usaremos una resistencia de 10k. Conectamos el brazo medio del divisor a la entrada analógica A0 del Arduino.

Arroz. 13.2. Diagrama de cableado de fotoresistor a Arduino

Escribamos un boceto de lectura de datos analógicos y enviándolos al puerto serie. El contenido del croquis se muestra en el listado 13.1.

Int luz; // variable para almacenar datos de fotoresistores configuración vacía ()(Serial.begin (9600);) bucle vacío ()(ligero = analogRead (0); Serial.println (ligero); retraso (100);)
Procedimiento de conexión:

1. Conectamos el fotorresistor según el diagrama de la fig. 13.2.
2. Cargue el boceto del Listado 13.1 en la placa Arduino.
3. Regulamos la iluminación del fotorresistor a mano y observamos la salida al puerto serie de los valores cambiantes, recordamos las lecturas con la iluminación completa de la habitación y con la superposición completa del flujo luminoso.

Ahora creemos un indicador de luz usando una fila de LED de 8 LED. El número de LED encendidos es proporcional a la iluminación actual. Montamos los LED de acuerdo con el diagrama de la Fig. 13.3 usando resistencias limitadoras de 220 ohmios.

Arroz. 13.3. Diagrama de cableado de fotoresistor y LED a Arduino


El contenido del esquema para mostrar la iluminación actual en la barra de LED se muestra en el Listado 13.2.

// Contacto para conectar LED const int leds = (3, 4, 5, 6, 7, 8, 9, 10); const int LIGHT = A0; // Pin A0 para entrada de fotoresistor const int MIN_LIGHT = 200; // Umbral de iluminación inferior const int MAX_LIGHT = 900; // umbral de iluminación superior // Variable para almacenar datos de fotoresistores int val = 0; configuración vacía (){ // Configurar pines LED como salida para (int i = 0; i<8 ;i++) pinMode(leds[i],OUTPUT); } bucle vacío ()(val = analogRead (LUZ); // Leer las lecturas del fotorresistor // Usando la función map () val = mapa (val, MIN_LIGHT, MAX_LIGHT, 8, 0); // restringimos para que no exceda los límites val = restringir (val, 0, 8); // enciende el número de LED proporcionalmente a la iluminación, // extinguir el resto para (int i = 1; i<9 ;i++) { if (i>= val) // enciende los leds digitalWrite (leds, ALTO); demás // apaga los LED digitalWrite (leds, BAJO); ) retraso (1000); // pausa antes de la siguiente medición }
Procedimiento de conexión:

1. Conectamos el fotorresistor y los LED según el diagrama de la fig. 13.3.
2. Cargue el boceto del Listado 13.2 en la placa Arduino.
3. Ajustamos la iluminación del fotorresistor a mano y determinamos el nivel de iluminación actual por el número de LED encendidos (Fig. 13.3).

Tomamos los límites inferior y superior de iluminación de los valores memorizados cuando realizamos el experimento en el boceto anterior (Listado 13.1). Escalamos el valor de iluminación intermedio en 8 valores (8 LED) e iluminamos el número de LED proporcional al valor entre los límites inferior y superior.

Listados de programas

Los sensores de luz (iluminación), construidos sobre la base de fotorresistores, se utilizan con bastante frecuencia en proyectos reales de Arduino. Son relativamente simples, no costosos y fáciles de encontrar y comprar en cualquier tienda en línea.

El fotorresistor Arduino le permite controlar el nivel de iluminación y responder a su cambio. En este artículo, veremos qué es un fotorresistor, cómo funciona un sensor de luz basado en él, cómo conectar correctamente un sensor a las placas Arduino.

El fotorresistor, como su nombre indica, tiene mucho que ver con los resistores que se encuentran a menudo en casi cualquier circuito electrónico. La principal característica de una resistencia convencional es su valor de resistencia. El voltaje y la corriente dependen de ello, con la ayuda de una resistencia establecemos los modos de funcionamiento requeridos de otros componentes. Como regla general, el valor de resistencia de una resistencia en las mismas condiciones de funcionamiento prácticamente no cambia.

A diferencia de una resistencia convencional, puede cambiar su resistencia dependiendo del nivel de luz ambiental. Esto significa que los parámetros en el circuito electrónico cambiarán constantemente, en primer lugar estamos interesados ​​en el voltaje que cae a través del fotorresistor. Al fijar estos cambios de voltaje en los pines analógicos del Arduino, podemos cambiar la lógica del funcionamiento del circuito, creando así dispositivos que se adaptan a las condiciones externas.

Los fotorresistores se utilizan activamente en una amplia variedad de sistemas. La aplicación más común es el alumbrado público. Si cae la noche en la ciudad o se nubla, las luces se encienden automáticamente. Puede hacer una bombilla económica para la casa a partir de un fotorresistor, que no se enciende según un horario, sino según la iluminación. Sobre la base del sensor de luz, incluso puede crear un sistema de seguridad que se activará inmediatamente después de que se abra e ilumine un gabinete cerrado o una caja fuerte. Como siempre, el alcance de cualquier sensor Arduino está limitado solo por nuestra imaginación.

¿Qué fotorresistores se pueden comprar en las tiendas online?

La opción de sensor más popular y asequible del mercado son los modelos de producción en masa de empresas chinas, clones de productos VT. Para comenzar con fotorresistores, la opción más simple es bastante adecuada.

Se puede recomendar a un jugador principiante de arduino que compre un módulo de fotos listo para usar, que se ve así:

Este módulo ya cuenta con todos los elementos necesarios para una simple conexión del fotorresistor a la placa arduino. En algunos módulos se implementa un circuito con comparador y se dispone de una salida digital y un trimmer para control.

Se puede recomendar a un radioaficionado ruso que recurra a un sensor FR ruso. Disponible para la venta FR1-3, FR1-4, etc. - se produjeron en los tiempos de la unión. Pero, a pesar de esto, FR1-3 es un detalle más preciso. De aquí se deduce la diferencia de precio: los FR no piden más de 400 rublos. FR1-3 costará más de mil rublos cada uno.

El marcado moderno de los modelos producidos en Rusia es bastante simple. Las dos primeras letras son PhotoResistor, los números después del guión indican el número de revelado. FR-765 - fotorresistor, revelado 765. Normalmente marcado directamente en el cuerpo de la pieza

Para el sensor VT, el rango de resistencia se indica en el diagrama de marcado. Por ejemplo:

  • VT83N1 - 12-100kOhm (12K - iluminado, 100K - en la oscuridad)
  • VT93N2 - 48-500kOhm (48K - iluminado, 100K - en la oscuridad).

A veces, el vendedor proporciona un documento especial del fabricante para aclarar información sobre los modelos. Además de los parámetros de trabajo, la precisión de la pieza también se indica allí. Para todos los modelos, el rango de sensibilidad se encuentra en la parte visible del espectro. Coleccionando sensor de luz debe comprender que la precisión de funcionamiento es un concepto condicional. Incluso para los modelos de un fabricante, un lote, una compra, puede diferir en un 50% o más.

En la fábrica, las piezas se ajustan a una longitud de onda de luz roja a verde. Al mismo tiempo, la mayoría "ve" radiación infrarroja. Los detalles de alta precisión pueden incluso capturar la luz ultravioleta.

Ventajas y desventajas del sensor.

La principal desventaja de los fotorresistores es su sensibilidad al espectro. Dependiendo del tipo de luz incidente, la resistencia puede variar en varios órdenes de magnitud. Las desventajas también incluyen la baja velocidad de reacción a los cambios de iluminación. Si la luz parpadea, el sensor no tiene tiempo de responder. Si la frecuencia de cambio es bastante alta, la resistencia dejará de "ver" que la iluminación está cambiando.

Las ventajas incluyen simplicidad y asequibilidad. El cambio directo de resistencia en función de la luz que incide sobre él permite simplificar el esquema de cableado eléctrico. El fotorresistor en sí es muy barato, forma parte de numerosos kits y constructores de Arduino, por lo que está disponible para casi cualquier jugador novato de Arduino.

En proyectos arduino el fotorresistor se utiliza como sensor de luz. Al recibir información de él, la placa puede encender o apagar relés, encender motores, enviar mensajes. Naturalmente, en este caso, debemos conectar correctamente el sensor.

El diagrama para conectar el sensor de luz al Arduino es bastante simple. Si usamos un fotoresistor, entonces en el diagrama de conexión el sensor se implementa como un divisor de voltaje. Un brazo cambia con el nivel de iluminación, el segundo suministra voltaje a la entrada analógica. En un microcircuito controlador, este voltaje se convierte en datos digitales a través de un ADC. Porque la resistencia del sensor cuando la luz lo golpea disminuye, luego el valor del voltaje que cae sobre él disminuirá.

Dependiendo de en qué brazo del divisor coloquemos el fotoresistor, se aplicará un voltaje aumentado o disminuido a la entrada analógica. En el caso de que una pata del fotoresistor esté conectada a tierra, entonces el valor de voltaje máximo corresponderá a la oscuridad (la resistencia del fotorresistor es máxima, casi todo el voltaje cae a través de él), y el valor mínimo corresponderá a una buena iluminación (la resistencia es cercana a cero, el voltaje es mínimo). Si conectamos el brazo del fotorresistor a la fuente de alimentación, entonces el comportamiento será el contrario.

La instalación de la placa en sí no debería ser difícil. Dado que el fotorresistor no tiene polaridad, puede conectarlo en cualquier lado, puede soldarlo a la placa, conectarlo con cables usando una placa de circuito o usar clips ordinarios (cocodrilos) para la conexión. La fuente de energía en el circuito es el propio arduino. Fotorresistencia conectado con un pie al suelo, el otro está conectado al ADC de la placa (en nuestro ejemplo, AO). Conectamos una resistencia de 10 kOhmios a la misma pata. Naturalmente, puede conectar el fotorresistor no solo al pin analógico A0, sino también a cualquier otro.

Algunas palabras sobre la resistencia adicional de 10 K. Tiene dos funciones en nuestro circuito: limitar la corriente en el circuito y formar el voltaje deseado en el circuito con un divisor. La limitación de corriente es necesaria en una situación en la que un fotorresistor completamente iluminado disminuye drásticamente su resistencia. Y la configuración de voltaje es para valores predecibles en el puerto analógico. De hecho, para un funcionamiento normal con nuestros fotorresistores, una resistencia de 1K es suficiente.

Al cambiar el valor de la resistencia, podemos "cambiar" el nivel de sensibilidad a los lados "oscuro" y "claro". Entonces, 10 K darán un cambio rápido del inicio de la luz. En el caso de 1K, el sensor de luz detectará con mayor precisión niveles altos de luz.

Si está utilizando un módulo de sensor de luz listo para usar, la conexión será aún más fácil. Conectamos la salida del módulo VCC al conector de 5V en la placa, GND - a tierra. Conectamos los pines restantes a los conectores arduino.

Si hay una salida digital en la placa, la enviamos a los pines digitales. Si es analógico, entonces analógico. En el primer caso, recibiremos una señal de activación, que excede el nivel de iluminación (el umbral de activación se puede ajustar mediante una resistencia de ajuste). Desde los pines analógicos podremos recibir un valor de voltaje proporcional al nivel real de iluminación.

Conectamos el circuito con el fotorresistor al arduino, nos aseguramos de que todo se hiciera correctamente. Ahora queda programar el controlador.

Es bastante fácil dibujar un sensor de luz. Solo necesitamos eliminar el valor de voltaje actual del pin analógico al que está conectado el sensor. Esto se hace usando la función analogRead () conocida por todos. Luego podemos realizar algunas acciones, dependiendo del nivel de luz.

Escribamos un boceto para un sensor de luz que enciende o apaga un LED conectado de la siguiente manera.

El algoritmo de trabajo es el siguiente:

  • Determine el nivel de señal del pin analógico.
  • Comparamos el nivel con el valor umbral. El valor máximo corresponderá a la oscuridad, el valor mínimo corresponderá a la iluminación máxima. Elegiremos el valor umbral igual a 300.
  • Si el nivel es menor que el umbral, está oscuro, debe encender el LED.
  • De lo contrario, apague el LED.

#define PIN_LED 13 #define PIN_PHOTO_SENSOR A0 void setup () (Serial.begin (9600); pinMode (PIN_LED, OUTPUT);) void loop () (int val = analogRead (PIN_PHOTO_SENSOR); Serial.println (val); if ( val< 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); } }

#define PIN_LED 13

#define PIN_PHOTO_SENSOR A0

configuración vacía () (

De serie. comenzar (9600);

bucle vacío () (

De serie. println (val);

si (val< 300 ) {

digitalWrite (PIN_LED, BAJO);

) demás (

digitalWrite (PIN_LED, ALTO);

Cubriendo la fotorresistencia (con nuestras manos o con un objeto opaco), podemos observar el encendido y apagado del LED. Al cambiar el parámetro de umbral en el código, podemos forzar que la bombilla se encienda / apague en diferentes niveles de iluminación.

Al montar, intente colocar el fotorresistor y el LED lo más separados posible para que menos luz del LED brillante llegue al sensor de luz.

Sensor de luz y cambio suave del brillo de la luz de fondo

Puedes modificar el proyecto para que dependiendo del nivel de iluminación, el brillo del LED cambie. Agregaremos los siguientes cambios al algoritmo:

  • Cambiaremos el brillo de la bombilla a través de PWM, enviando valores de 0 a 255 al pin con el LED usando analogWrite ().
  • Para convertir el valor digital del nivel de luz del sensor de luz (de 0 a 1023) en el rango PWM del brillo del LED (de 0 a 255), usaremos la función map ().

Bosquejo de ejemplo:

#define PIN_LED 10 #define PIN_PHOTO_SENSOR A0 void setup () (Serial.begin (9600); pinMode (PIN_LED, OUTPUT);) void loop () (int val = analogRead (PIN_PHOTO_SENSOR); Serial.println (val); int ledPower = map (val, 0, 1023, 0, 255); // Convertir el valor resultante en un nivel de señal PWM. Cuanto menor sea el valor de iluminación, menos potencia debemos suministrar al LED a través del PWM. analogWrite (PIN_LED, ledPower ); // Cambiar el brillo)

#define PIN_LED 10

#define PIN_PHOTO_SENSOR A0

configuración vacía () (

De serie. comenzar (9600);

pinMode (PIN_LED, SALIDA);

bucle vacío () (

int val = analogRead (PIN_PHOTO_SENSOR);

De serie. println (val);

int ledPower = map (val, 0, 1023, 0, 255); // Convierta el valor recibido al nivel de señal PWM. Cuanto menor sea el valor de iluminación, menos potencia debemos suministrar al LED a través del PWM.

analogWrite (PIN_LED, ledPower); // Cambiar el brillo

En el caso de otro método de conexión, en el que la señal del puerto analógico sea proporcional al grado de iluminación, será necesario "invertir" adicionalmente el valor, restándolo del máximo:

int val = 1023 - analogRead (PIN_PHOTO_RESISTOR);

Los sensores de luz (iluminación), construidos sobre la base de fotorresistores, se utilizan con bastante frecuencia en proyectos reales de Arduino. Son relativamente simples, no costosos y fáciles de encontrar y comprar en cualquier tienda en línea. El fotorresistor arduino le permite controlar el nivel de iluminación y reaccionar a su cambio. En este artículo, veremos qué es un fotorresistor, cómo funciona un sensor de luz basado en él, cómo conectar correctamente un sensor a las placas Arduino.

El fotorresistor, como su nombre indica, tiene mucho que ver con los resistores que se encuentran a menudo en casi cualquier circuito electrónico. La principal característica de una resistencia convencional es su valor de resistencia. El voltaje y la corriente dependen de ello, con la ayuda de una resistencia establecemos los modos de funcionamiento requeridos de otros componentes. Como regla general, el valor de resistencia de una resistencia en las mismas condiciones de funcionamiento prácticamente no cambia.

A diferencia de una resistencia convencional, fotorresistencia puede cambiar su resistencia dependiendo del nivel de luz ambiental. Esto significa que los parámetros en el circuito electrónico cambiarán constantemente, en primer lugar estamos interesados ​​en el voltaje que cae a través del fotorresistor. Al fijar estos cambios de voltaje en los pines analógicos del Arduino, podemos cambiar la lógica del funcionamiento del circuito, creando así un dispositivo que se adapta a las condiciones externas.

Los fotorresistores se utilizan activamente en una amplia variedad de sistemas. La aplicación más común es el alumbrado público. Si cae la noche en la ciudad o se nubla, las luces se encienden automáticamente. Puede hacer una bombilla económica para la casa a partir de una fotorresistencia, que no se enciende según un horario, sino según la iluminación. Sobre la base del sensor de luz, incluso puede crear un sistema de seguridad que se activará inmediatamente después de que se abra e ilumine un gabinete cerrado o una caja fuerte. Como siempre, el ámbito de aplicación de cualquier sensor Arduino está limitado solo por nuestra imaginación.

¿Qué fotorresistores se pueden comprar en las tiendas online?

La opción de sensor más popular y asequible del mercado son los modelos de producción en masa de empresas chinas, clones de productos VT. Allí no siempre es posible ir a la quiebra sobre quién y qué produce exactamente tal o cual proveedor, pero la opción más simple es bastante adecuada para comenzar a trabajar con fotorresistores.

Se puede recomendar a un jugador principiante de arduino que compre un módulo de fotos listo para usar, que se ve así:


Este módulo ya cuenta con todos los elementos necesarios para una simple conexión del fotorresistor a la placa arduino. En algunos módulos se implementa un circuito con comparador y se dispone de una salida digital y un trimmer para control.

Se puede recomendar a un radioaficionado ruso que recurra a un sensor FR ruso. Disponible para la venta FR1-3, FR1-4, etc. - se produjeron en los tiempos de la unión. Pero, a pesar de esto, FR1-3 es un detalle más preciso. De esto se deduce que la diferencia de precio no supera los 400 rublos. FR1-3 costará más de mil rublos cada uno.

Marcado de fotorresistores

El marcado moderno de los modelos producidos en Rusia es bastante simple. Las dos primeras letras son PhotoResistor, los números después del guión indican el número de revelado. FR-765 - fotorresistor, revelado 765. Normalmente marcado directamente en el cuerpo de la pieza

Para el sensor VT, el rango de resistencia se indica en el diagrama de marcado. Por ejemplo:

  • VT83N1 - 12-100kOhm (12K - iluminado, 100K - en la oscuridad)
  • VT93N2 - 48-500kOhm (48K - iluminado, 100K - en la oscuridad).

A veces, el vendedor proporciona un documento especial del fabricante para aclarar información sobre los modelos. Además de los parámetros de trabajo, la precisión de la pieza también se indica allí. Para todos los modelos, el rango de sensibilidad se encuentra en la parte visible del espectro. Coleccionando sensor de luz debe comprender que la precisión de funcionamiento es un concepto condicional. Incluso para los modelos de un fabricante, un lote, una compra, puede diferir en un 50% o más.

En la fábrica, las piezas se ajustan a una longitud de onda de luz roja a verde. Al mismo tiempo, la mayoría "ve" radiación infrarroja. Los detalles de alta precisión pueden incluso capturar la luz ultravioleta.

Ventajas y desventajas del sensor.

La principal desventaja de los fotorresistores es su sensibilidad al espectro. Dependiendo del tipo de luz incidente, la resistencia puede variar en varios órdenes de magnitud. Las desventajas también incluyen la baja velocidad de reacción a los cambios de iluminación. Si la luz parpadea, el sensor no tiene tiempo de responder. Si la frecuencia de cambio es bastante alta, la resistencia dejará de "ver" que la iluminación está cambiando.

Las ventajas incluyen simplicidad y asequibilidad. El cambio directo de resistencia en función de la luz que incide sobre él permite simplificar el esquema de cableado eléctrico. El fotorresistor en sí es muy barato, forma parte de numerosos kits y constructores de Arduino, por lo que está disponible para casi cualquier jugador novato de Arduino.

Conectando el fotoresistor al arduino

En proyectos arduino el fotorresistor se utiliza como sensor de luz. Al recibir información de él, la placa puede encender o apagar relés, encender motores, enviar mensajes. Naturalmente, en este caso, debemos conectar correctamente el sensor.

El diagrama de conexión del sensor de luz al arduino es bastante simple. Si usamos un fotorresistor, entonces en el diagrama de conexión el sensor se implementa como un divisor de voltaje. Un brazo cambia con el nivel de iluminación, el segundo suministra voltaje a la entrada analógica. En un microcircuito controlador, este voltaje se convierte en datos digitales a través de un ADC. Porque la resistencia del sensor cuando la luz lo golpea disminuye, luego el valor del voltaje que cae sobre él disminuirá.

Dependiendo de en qué brazo del divisor coloquemos el fotoresistor, se aplicará un voltaje aumentado o disminuido a la entrada analógica. En el caso de que una pata del fotoresistor esté conectada a tierra, entonces el valor de voltaje máximo corresponderá a la oscuridad (la resistencia del fotorresistor es máxima, casi todo el voltaje cae a través de él), y el valor mínimo corresponderá a una buena iluminación (la resistencia es cercana a cero, el voltaje es mínimo). Si conectamos el brazo del fotorresistor a la fuente de alimentación, entonces el comportamiento será el contrario.

La instalación de la placa en sí no debería ser difícil. Dado que el fotorresistor no tiene polaridad, puede conectarlo en cualquier lado, puede soldarlo a la placa, conectarlo con cables usando una placa de circuito o usar clips ordinarios (cocodrilos) para la conexión. La fuente de energía en el circuito es el propio arduino. Fotorresistencia conectado con un pie al suelo, el otro está conectado al ADC de la placa (en nuestro ejemplo, AO). Conectamos una resistencia de 10 kOhmios a la misma pata. Naturalmente, puede conectar el fotorresistor no solo al pin analógico A0, sino también a cualquier otro.

Algunas palabras sobre la resistencia adicional de 10 K. Tiene dos funciones en nuestro circuito: limitar la corriente en el circuito y formar el voltaje deseado en el circuito con un divisor. La limitación de corriente es necesaria en una situación en la que un fotorresistor completamente iluminado disminuye drásticamente su resistencia. Y la configuración de voltaje es para valores predecibles en el puerto analógico. De hecho, para un funcionamiento normal con nuestros fotorresistores, una resistencia de 1K es suficiente.

Al cambiar el valor de la resistencia, podemos "cambiar" el nivel de sensibilidad a los lados "oscuro" y "claro". Entonces, 10 K darán un cambio rápido del inicio de la luz. En el caso de 1K, el sensor de luz detectará con mayor precisión niveles altos de luz.

Si está utilizando un módulo de sensor de luz listo para usar, la conexión será aún más fácil. Conectamos la salida del módulo VCC al conector de 5V en la placa, GND - a tierra. Conectamos los pines restantes a los conectores arduino.

Si hay una salida digital en la placa, la enviamos a los pines digitales. Si es analógico, entonces analógico. En el primer caso, recibiremos una señal de activación, que excede el nivel de iluminación (el umbral de activación se puede ajustar mediante una resistencia de ajuste). Desde los pines analógicos podremos recibir un valor de voltaje proporcional al nivel real de iluminación.

Un ejemplo de un boceto de un sensor de luz en un fotorresistor

Conectamos el circuito con el fotorresistor al arduino, nos aseguramos de que todo se hiciera correctamente. Ahora queda programar el controlador.

Es bastante fácil dibujar un sensor de luz. Solo necesitamos eliminar el valor de voltaje actual del pin analógico al que está conectado el sensor. Esto se hace usando la función analogRead () conocida por todos. Luego podemos realizar algunas acciones, dependiendo del nivel de luz.

Escribamos un boceto para un sensor de luz que enciende o apaga un LED conectado de la siguiente manera.

El algoritmo de trabajo es el siguiente:

  • Determine el nivel de señal del pin analógico.
  • Comparamos el nivel con el valor umbral. El valor máximo corresponderá a la oscuridad, el valor mínimo corresponderá a la iluminación máxima. Elegiremos el valor umbral igual a 300.
  • Si el nivel es menor que el umbral, está oscuro, debe encender el LED.
  • De lo contrario, apague el LED.
#define PIN_LED 13 #define PIN_PHOTO_SENSOR A0 void setup () (Serial.begin (9600); pinMode (PIN_LED, OUTPUT);) void loop () (int val = analogRead (PIN_PHOTO_SENSOR); Serial.println (val); if ( val< 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); } }

Cubriendo la fotorresistencia (con nuestras manos o con un objeto opaco), podemos observar el encendido y apagado del LED. Al cambiar el parámetro de umbral en el código, podemos forzar que la bombilla se encienda / apague en diferentes niveles de iluminación.

Al montar, intente colocar el fotorresistor y el LED lo más separados posible para que menos luz del LED brillante llegue al sensor de luz.

Sensor de luz y cambio suave del brillo de la luz de fondo

Puedes modificar el proyecto para que dependiendo del nivel de iluminación, el brillo del LED cambie. Agregaremos los siguientes cambios al algoritmo:

  • Cambiaremos el brillo de la bombilla a través de PWM, enviando valores de 0 a 255 al pin con el LED usando analogWrite ().
  • Para convertir el valor digital del nivel de luz del sensor de luz (de 0 a 1023) en el rango PWM del brillo del LED (de 0 a 255), usaremos la función map ().

Bosquejo de ejemplo:

#define PIN_LED 10 #define PIN_PHOTO_SENSOR A0 void setup () (Serial.begin (9600); pinMode (PIN_LED, OUTPUT);) void loop () (int val = analogRead (PIN_PHOTO_SENSOR); Serial.println (val); int ledPower = map (val, 0, 1023, 0, 255); // Convertir el valor resultante en un nivel de señal PWM. Cuanto menor sea el valor de iluminación, menos potencia debemos suministrar al LED a través del PWM. analogWrite (PIN_LED, ledPower ); // Cambiar el brillo)

En el caso de otro método de conexión, en el que la señal del puerto analógico sea proporcional al grado de iluminación, será necesario "invertir" adicionalmente el valor, restándolo del máximo:

Int val = 1023 - analogRead (PIN_PHOTO_RESISTOR);

Circuito del sensor de luz en fotorresistencia y relé

En el artículo sobre la programación de un relé en arduino se dan ejemplos de un boceto para trabajar con un relé. En este caso, no necesitamos hacer gestos complejos: después de determinar la "oscuridad", simplemente encendemos el relé, le damos el valor apropiado a su pin.

#define PIN_RELAY 10 #define PIN_PHOTO_SENSOR A0 void setup () (pinMode (PIN_RELAY, OUTPUT); digitalWrite (PIN_RELAY, HIGH);) void loop () (int val = analogRead (PIN_PHOTO_SENSOR); if (val< 300) { // Светло, выключаем реле digitalWrite(PIN_RELAY, HIGH); } else { // Темновато, включаем лампочку digitalWrite(PIN_RELAY, LOW); } }

Conclusión

Los proyectos que utilizan un sensor de luz basado en un fotorresistor son bastante simples y efectivos. Puede implementar muchos proyectos interesantes, mientras que el costo del equipo no será alto. El fotorresistor se conecta de acuerdo con el circuito divisor de voltaje con resistencia adicional. El sensor se conecta a un puerto analógico para medir varios valores del nivel de luz oa uno digital si solo nos preocupa la oscuridad. En el boceto, simplemente leemos los datos del puerto analógico (o digital) y decidimos cómo reaccionar a los cambios. Esperemos que ahora aparezcan esos "ojos" tan simples en tus proyectos.

En la lección anterior, aprendió cómo funciona un potenciómetro, cuya resistencia cambia según la rotación del mango: la varilla. En este tutorial, aprenderá acerca de un fotorresistor, que cambia su resistencia según la cantidad de luz que incide en su elemento sensor.

El Arduino no puede interpretar la resistencia en sí mismo porque trata con voltaje, por lo que este circuito usa un divisor de voltaje. El divisor generalmente consta de dos resistencias, en nuestro caso una de las cuales será nuestra fotorresistencia, y el voltaje de lectura del Arduino se toma del punto medio entre ellos, alimentado a la entrada analógica Arduino (pin 0). El divisor entregará alto voltaje cuando el fotorresistor reciba mucha luz y bajo cuando el fotorresistor reciba poca luz (oscuridad).

En este tutorial, necesitará:

1. Arduino UNO - 1 ud.

2. LED - 1 ud.

3. Resistencia 10 Kom. - 1 PC.

4. Resistencia de 200 a 560 ohmios. - 1 PC.

5. Fotorresistor

6. Conexión de cables.

Arduino y fotorresistor. Diagrama de conexión para la lección número 6

Descargue la lección con un boceto y una descripción detallada de la lección:

Kit de experimentación ArduinoKit
Descargue el código del programa para el experimento n. ° 6:

Vista de la lección creada en el diagrama de diseño:

Como resultado, debería ver LED cuyo brillo será incrementar o disminuir según la cantidad de luz que incida en el fotorresistor. Si no cambia su brillo, asegúrese de que usted correctamente ensamblado esquema. Y asegúrese de que el código del programa esté cargado a bordo del Arduino.

¡Buena suerte a todos! Esperamos sus comentarios sobre ARDUINO LECCIÓN 6 - FOTORESISTOR.

Para nuestro próximo proyecto, usaremos una fotorresistencia. Y consideraremos la implementación de una luz nocturna en el dormitorio, que se encenderá automáticamente cuando esté oscuro y se apagará cuando se ilumine.

La resistencia de un fotorresistor depende de la luz que entra en él. Usando un fotorresistor junto con un resistor convencional de 4.7k ohmios, obtenemos un divisor de voltaje en el que el voltaje que pasa a través del fotorresistor cambia, dependiendo del nivel de iluminación.

El voltaje del divisor, lo aplicamos a la entrada del Arduino ADC. Allí comparamos el valor recibido con un cierto umbral y encendemos o apagamos la lámpara.

El diagrama esquemático del divisor se muestra a continuación. Cuando aumenta la iluminación, la resistencia del fotoresistor cae y, en consecuencia, aumenta el voltaje en la salida del divisor (y la entrada del ADC). Cuando cae la iluminación, ocurre lo contrario.

La foto de abajo muestra el circuito ensamblado en una placa de pruebas. Los voltajes 0V y 5V se toman del Arduino. El tramo A0 se utiliza como entrada ADC.

A continuación se muestra un boceto de Arduino. En este tutorial, simplemente encendemos y apagamos el LED, que está integrado en la placa Arduino. Una luz LED más brillante, puede conectarla a la pata 13 (a través de una resistencia de ~ 220 ohmios). Si va a conectar una carga más potente, como una lámpara incandescente, entonces debe conectarse a través de un relé o tiristor.

Hay secciones comentadas en el código del programa, se utilizan para depurar. Será posible controlar el valor ADC (de 0 a 1024). Además, debe cambiar el valor 500 (umbral de encendido y apagado) en el código al que seleccionará empíricamente cambiando la iluminación.

/ * ** Luz nocturna ** ** www.hobbytronics.co.uk * / int sensorPin = A0; // establece el pie de entrada para el ADC unsigned int sensorValue = 0; // valor digital del fotorresistor void setup () (pinMode (13, OUTPUT); Serial.begin (9600); // iniciar salida de datos en serie (para prueba)) void loop () (sensorValue = analogRead (sensorPin); / / leer el valor de la fotorresistencia si (sensorValue<500) digitalWrite(13, HIGH); // включаем else digitalWrite(13, LOW); // выключаем // Для отладки раскомментируйте нижеследующие строки //Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024) //Serial.println(""); // возврат каретки //delay(500); }