Photosensor not working

Hello!

I am having trouble with my photo sensor. It gives the same result when exposed to light and darkness...

I have constructed the circuit as specified in Adafruit and the program keep saying that there is an error while uploading to board.

Please if someone could help me...

show code and connections.. (photo / schematic)

MaiaHirsch:
I have constructed the circuit as specified in Adafruit and the program keep saying that there is an error while uploading to board.

Code and a copy of the error messages then.
It sounds also like this is a code/IDE problem instead of a sensor problem as you don't even get the software to upload.

Hello!

So I am supposed to turn on an LED if the photo sensor detects darkness only for a certain amount of time… the photo sensor works fine but the LED will not turn on…

Please I need help! If anyone can tell me what’s wrong…

This is the code I’m using:

int INpin = 0; // Suponemos que el sensor está conectado en el pin 0
int OUTpin = 11; // Suponemos que el LED a iluminar está conectado al pin 11 (PWM pin)
int elapsed = 3000; // tiempo en milisegundos que debe pasar interrumpido el haz de luz

// antes de que se encienda el LED

int TotalDark= 100; // valor minimo a partir del cual se considera que la celda está en

// oscuridad total (haz de luz interrumpido)

int LEDBright= 250; // Intensidad con la que debe brillar el led cuando se interrumpa el

// circuito

int photocellReading;

unsigned long darkInit = 0; // variable para control del tiempo que el haz de luz tiene

// interrumpido

void setup(void) {
Serial.begin(9600);
// No hay nada que configurar pero mantenemos la rutina setup() para conservar
// la estructura de programación
}
void loop(void) {
// este es el núcleo del programa que se ejecutará continuamente
if (darkInit>0) {
// está iniciado el periodo de obscuridad…
// tenemos que averiguar si ya se cumplió el tiempo para encender el LED
if ((millis()-darkInit)>=elapsed) {
// se ha cumplido el tiempo necesario para activar el LED
analogWrite(OUTpin, LEDBright); //activamos el LED
}
}
photocellReading = analogRead(INpin); //leemos el valor de voltaje en la fotocelda

Serial.print(photocellReading);
Serial.print("\n");
if (photocellReading <= TotalDark) {
// esto significa que el haz de luz fue interrumpido
if (darkInit=0) {
// si todavia no ha empezado el conteo del tiempo para encender el LED, almacenamos
// el valor de referencia para comenzar a contar
darkInit = millis(); // millis() es el tiempo actual (i.e. el momento en que se

// interrumpió el haz de luz)

}
} else {
// el haz de luz no está interrumpido
if (darkInit>0) {
// el LED está encendido… hay que apagarlo
analogWrite(OUTpin, 0); //Apagamos el LED
darkInit=0; //Reiniciamos el control de tiempo
}
}
}

Attached are pictures of the circuit

Hello!

I am supposed to make an LED turn on when a photo sensor detects darkness for a certain amount of time… The sensor works fine but the LED doesn’t turn on…

Please I need help! if someone could tell me what’s wrong…

Thank you very much!!!

This is the code I am using:

int INpin = 0; // Suponemos que el sensor está conectado en el pin 0
int OUTpin = 11; // Suponemos que el LED a iluminar está conectado al pin 11 (PWM pin)
int elapsed = 3000; // tiempo en milisegundos que debe pasar interrumpido el haz de luz

// antes de que se encienda el LED

int TotalDark= 100; // valor minimo a partir del cual se considera que la celda está en

// oscuridad total (haz de luz interrumpido)

int LEDBright= 250; // Intensidad con la que debe brillar el led cuando se interrumpa el

// circuito

int photocellReading;

unsigned long darkInit = 0; // variable para control del tiempo que el haz de luz tiene

// interrumpido

void setup(void) {
Serial.begin(9600);
// No hay nada que configurar pero mantenemos la rutina setup() para conservar
// la estructura de programación
}
void loop(void) {
// este es el núcleo del programa que se ejecutará continuamente
if (darkInit>0) {
// está iniciado el periodo de obscuridad…
// tenemos que averiguar si ya se cumplió el tiempo para encender el LED
if ((millis()-darkInit)>=elapsed) {
// se ha cumplido el tiempo necesario para activar el LED
analogWrite(OUTpin, LEDBright); //activamos el LED
}
}
photocellReading = analogRead(INpin); //leemos el valor de voltaje en la fotocelda

Serial.print(photocellReading);
Serial.print("\n");
if (photocellReading <= TotalDark) {
// esto significa que el haz de luz fue interrumpido
if (darkInit=0) {
// si todavia no ha empezado el conteo del tiempo para encender el LED, almacenamos
// el valor de referencia para comenzar a contar
darkInit = millis(); // millis() es el tiempo actual (i.e. el momento en que se

// interrumpió el haz de luz)

}
} else {
// el haz de luz no está interrumpido
if (darkInit>0) {
// el LED está encendido… hay que apagarlo
analogWrite(OUTpin, 0); //Apagamos el LED
darkInit=0; //Reiniciamos el control de tiempo
}
}
}

Attached are pictures of the circuit:

Don't you need to set the pinMode of the LED pin to OUTPUT in setup()?

if (darkInit=0) {

This sets darkInit to 0 every time through. Study up on the difference between = and ==.

Please use code tags (the </> button in the full editor).

Format your code - ctrl-T in the IDE. Makes it lot more readable.

Why using analogWrite for the LED instead of simply digitalWrite? You don’t seem to try to adjust brightness or so.

Does the LED work when you try to blink it using good old Blink? That way you at least can tell whether your wiring is OK.

Duplicate.

Threads merged.