Détect if a led is HIGH

Hello !!

I tried to detect when a light is On and write on the serial port, but I don't find how.

Maybe someone can help me ? I just begin

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.
*/

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int derniere = 0;
int led = 13;

// the setup routine runs once when you press reset:
void setup() {

Serial.begin(9600);

// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second

if ( derniere == HIGH){
Serial.print("The Lamp is ON ");
Serial.println("The Lamp is ON ");
}

}

"derniere" is initialised to be zero, and because you never write to it, that is how it will stay.

Have you tried derniere = digitalRead (led);?

(of course, because you are the one doing the writing of "led", you should always know whether it is on or off)

Salut, sans utiliser de delay tu peux faire comme ça:

unsigned long old_millis;
bool light_state;

void loop()
{
  if ( millis() - old_millis >= 1000 )
  {
    light_state = !light_state;
    digitalWrite( led, light_state );
    Serial.println( light_state ? "The Lamp is ON" : "The Lamp is OFF" ); 
    old_millis = millis();
  }
}

Dans ton code, même si tu assigne une valeur HIGH à "derniere", puis une valeur LOW une seconde plus tard, alors ton "if (derniere == HIGH)" ne sera jamais true, puisque le code est séquentiel :slight_smile: