ARDUINO BASICO 02 FOTOCELDA CONTROLA INTENSIDAD DE LED
ARDUINO BASICO 02 FOTOCELDA CONTROLA INTENSIDAD DE LED
Las fotocélulas son sensores que le permiten detectar la luz. Son pequeños, económicos, de bajo consumo, fáciles de usar y no se desgastan. Por esa razón, a menudo aparecen en juguetes, artilugios y electrodomésticos. A menudo se los conoce como células CdS (están hechas de sulfuro de cadmio), resistencias dependientes de la luz (LDR) y fotoresistores.
Las fotocélulas son básicamente una resistencia que cambia su valor resistivo (en ohmios Ω) dependiendo de cuánta luz está brillando sobre la cara ondulada. Son de muy bajo costo, fáciles de obtener en muchos tamaños y especificaciones, pero son muy inexactos. Cada sensor de fotocélula actuará de forma un poco diferente que el otro, incluso si son del mismo lote. ¡Las variaciones pueden ser realmente grandes, 50% o más! Por esta razón, no deben usarse para tratar de determinar niveles de luz precisos en lux o milicandela. En cambio, puede esperar solo poder determinar los cambios de luz básicos.
Para la mayoría de las aplicaciones de detección de luz como "¿está claro u oscuro?", "¿Hay algo delante del sensor (que bloquearía la luz)", "hay algo que interrumpe un rayo láser" (sensores de rayo), o "¿Cuál de los múltiples sensores tiene más luz?", ¡las fotocélulas pueden ser una buena opción!
Problemas que puede enfrentar con múltiples sensores
Si al agregar más sensores, encuentra que las lecturas son inconsistentes, esto indica que los sensores están interfiriendo entre sí al cambiar el circuito de lectura analógica de un pin a otro. Puede solucionar esto haciendo dos lecturas retrasadas y lanzando la primera.
Medición de luz
Como ya dijimos, la resistencia de una fotocélula cambia a medida que la cara queda expuesta a más luz. Cuando está oscuro, el sensor se ve como una resistencia grande de hasta 10MΩ, a medida que aumenta el nivel de luz, la resistencia disminuye.
Código Arduino
Demostración simple de uso
Este boceto tomará la lectura de voltaje analógico y lo usará para determinar qué tan brillante es el LED rojo. ¡Mientras más oscuro sea, más brillante será el LED! Recuerde que el LED debe estar conectado a un pin PWM para que funcione, utilizo el pin 11 en este ejemplo.
CODIGO ARDUINO
int fotoceldaPin = 0; // la fotocelda y la resistencia estan conectados al pin A0
int lecturaFotocelda; // en esta variable se va a guardar la lectura analogica del divisor del sensor
int LEDpin = 11; // el led esta conectado al pin 11 (PWM pin)
int LEDbrillo; //
void setup(void) {
// Enviaremos información de depuración a través del monitor via serial
Serial.begin(9600);
}
void loop(void) {
lecturaFotocelda = analogRead(fotoceldaPin);
Serial.print("Lectura Analogica = ");
Serial.println(lecturaFotocelda); // lectura analogica sin procesar
// El LED se vuelve más brillante cuanto más oscuro está en el sensor
// eso significa que tenemos que -invertir- la lectura de 0-1023 a 1023-0
lecturaFotocelda = 1023 - lecturaFotocelda;
//ahora tenemos que mapear 0-1023 a 0-255 ya que es el rango que utiliza analogWrite
LEDbrillo = map(lecturaFotocelda, 0, 1023, 0, 255);
analogWrite(LEDpin, LEDbrillo);
delay(100);
}
Comentarios
Publicar un comentario