Usar fotocelda en Arduino

Publicado el sáb 25 junio 2011

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.

tags: arduino