Rafa Salvador
Published © CC BY

Twilight Switch With Levels

We will use 4 LEDs, depending on the level of light that we capture with the LDR sensor.

BeginnerWork in progress1 hour7,310
Twilight Switch With Levels

Things used in this project

Story

Read more

Schematics

Schematic Crescent swithc with levels

Code

Code Arduino

Arduino
Code Arduino
/*
   Interruptor Crepuscular con distintos niveles:
   Sistema para controlar el encendido de 4 leds
   en funcion de varios intervalos de intensidad luminosa
    LDR pin A0
   LED1 pin 12
   LED2 pin 11
   LED3 pin 10
   LED4 pin 9
      Abril 2018
   Rafael Salvador Jiménez
*/

// variables constantes para los pines
const int ldrPin = A0;    // establece el pin de la LDR
const int ledPin1 = 12; // establece el pin del LED1 rojo
const int ledPin2 = 11; // establece el pin del LED2 rojo
const int ledPin3 = 10; // establece el pin del LED3 rojo
const int ledPin4 = 9; // establece el pin del LED4 rojo

// variables que pueden cambiar
int ldrValue = 0; // variable para almacenar el valor de la LDR
int ldrlevel1=600; // nivel1 de cambio del valor de la LDR
int ldrlevel2=700; // nivel2 de cambio del valor de la LDR
int ldrlevel3=750; // nivel3 de cambio del valor de la LDR
int ldrlevel4=800; // nivel4 de cambio del valor de la LDR

void setup() {
  // establece el LED como una salida
  Serial.begin(9600);    
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
}

void loop() {
  ldrValue = analogRead(ldrPin);  // lee el valor del sensor
  Serial.println(ldrValue);
  // si el valor es menor en cada nivel enciende los LEDs correspondientes
  if (ldrValue < ldrlevel1) {
    digitalWrite(ledPin4, HIGH);
  }
  else if (ldrValue < ldrlevel2) {
    digitalWrite(ledPin4, LOW);
    digitalWrite(ledPin3, HIGH);
  }
  else if (ldrValue < ldrlevel3) {
    digitalWrite(ledPin3, LOW);
    digitalWrite(ledPin2, HIGH);
  }
  else if (ldrValue < ldrlevel4) {
    digitalWrite(ledPin2, LOW);
    digitalWrite(ledPin1, HIGH);
  }
      // sino los apaga
  else {
    digitalWrite(ledPin1, LOW);
      }
   }

Credits

Rafa Salvador
1 project • 7 followers
Contact

Comments

Please log in or sign up to comment.