sábado, 25 de junio de 2011

Usar fotocelda en Arduino

Luego que me revivieran el Arduino cargándole el bootloader, me puse a jugar con él.
Algo básico, conectar una fotoresistencia al Arduino y encender gradualmente un LED en función de la escasez de luz.
El esquema de conexión sería:
La resistencia de la fotocelda disminuye en la presencia de luz, ésta es leída por el pin análogo 0. El código sería:
int LDRval = 0;
int luz;

void setup() {
  pinMode(A0, INPUT);
  pinMode(7, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  LDRval = analogRead(0);
  luz = constrain(LDRval, 0 , 700);
  luz = map(luz, 0, 700, 0, 255);
  analogWrite(6, 255 - luz);
  delay(500);
}
El pin análogo 0 lee valores entre 0 y 1023. Hago que el rango de valor vaya entre 0 y 700. Luego realizo un mapeo entre ese rango y el rango entre 0 y 255 del pin 6 en salida análoga (PWM).
El código hace que el LED brille más ante la disminución de iluminación en la fotocelda.

4 comentarios:

Fabian dijo...

Muy buen material. Muchas gracias.

Tommas Perez dijo...

Disculpa ¿De Cuanto Valor es Cada Resistencia?

Diego Alejandro dijo...

Primero que todo gracias por aportar con contenido de Arduino en español. Sin embargo, veo que tu esquema en Fritzing está mal hecho, sería bueno que le corrijas esas conexiones y que concuerde con los pines del Script. Gracias!

darwingabriel14 dijo...

necesito hacer un contador de objetos con una fotocelda y un displey de 7 segmentos