Go Down

Topic: 1 photoresistor 2 leds (sorry for my english) (Read 1 time) previous topic - next topic

kevindorner

Mar 05, 2011, 12:34 pm Last Edit: Mar 05, 2011, 05:11 pm by kevindorner Reason: 1
Hi,
I am making a school project until the 14th, but i am new with programming.
A photoresistor controlls the leds. If i place my hand over the photoresistor, led2 goes on.
If I cover it, but then remove my hand, led1 goes on.

PLEASE HELP ME!

task:
1.read the photoresistor
2.wait 0,5 seconds
3.read the photoresistor again

a)if the light that reaches the photoresistor is interrupted for a short time, set led1 high
b)if the light that reaches the photoresistor is interrupted for a long time, set led2 high

=>that means: a)if i move my hand once over it, set led 1 high
b)if i cover it, set led 2 high

I need a programm that looks like this:

Quote

int photoIn = 1;
int led1 = 11;
int led2 = 12;
int setPoint = 350;

void setup()
{
 pinMode(led1, OUTPUT);
 pinMode(led2, OUTPUT);
}
void loop() {
 Value = analogRead(photoIn);
 
 if (Value < setPoint;
      delay(500);
     Value > setPoint;)
 {
   digitalWrite(led1, HIGH);
    delay(1000)
   digitalWrite(led1, LOW);
 }

 if (Value < setPoint;
      delay(500);
     Value < setPoint;)
 {
   digitalWrite(led2, HIGH);
    delay(1000)
   digitalWrite(led2, LOW);
 }



Coding Badly

Two things...

1. Please do not multi-post.

2. Do you have a question about robotics?

lemio

Nice to see that they are doing Arduino projects on your school :P
The code would be something like this:
Quote

int photoIn = 1;
int led1 = 11;
int led2 = 12;
int value = 0;
byte last_value = false;
/*
Change this value to the point where it works, 
 it depends on how light the area is.
 */
int setPoint = 350;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
}
void loop() {
  value = analogRead(photoIn);

  if (value < setPoint){
    if (last_value==true){
      digitalWrite(led1,HIGH);
      digitalWrite(led2,LOW);
    }  
    last_value = false;
  }
  else{
    if (last_value==true){
      digitalWrite(led1,LOW);
      digitalWrite(led2,HIGH);
    }
    last_value = true;
  }
  delay(500);
}

But if you hold your hand for 0.1 seconds this script won't work. This only works if you hold your hand for 0.5 seconds. Success with your project.

kevindorner

I need somethig like this:


Code: [Select]
int photoIn = 1;
int led1 = 11;
int led2 = 12;
int value = 0;
int setPoint = 350;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
}
void loop() {
  value = analogRead(photoIn);

  if (value < setPoint){
    delay(500);
    if (value < setPoint){
      digitalWrite(led1,HIGH);
      digitalWrite(led2,LOW);
      delay(1000);
      digitalWrite(led1,LOW);} 
   
    else{digitalWrite(led2,HIGH);
      digitalWrite(led1,LOW);
      delay(1000);
      digitalWrite(led2,LOW);}
 
     }
else{
      digitalWrite(led1,LOW);
      digitalWrite(led2,LOW);
       }
   
}

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy