/*** Included libraries ***/ /*** Global variables and function definition ***/ const int led = 8; const int led_2 = 6; const int led_3 = 4; const int sensor_de_luz = A0; float LUZ = 0; /* CMP3A18 */ /*** Setup ***/ void setup() { pinMode(led, OUTPUT); pinMode(led_2, OUTPUT); pinMode(led_3, OUTPUT); pinMode(sensor_de_luz, INPUT); Serial.begin(9600); } /*** Loop ***/ void loop() { LUZ = analogRead(sensor_de_luz); Serial.println(LUZ); delay(200); if (LUZ > 550) { digitalWrite(led, LOW); digitalWrite(led_2, LOW); digitalWrite(led_3, LOW); } else if (LUZ > 350) { digitalWrite(led, LOW); digitalWrite(led_2, LOW); digitalWrite(led_3, HIGH); } else if (LUZ > 150) { digitalWrite(led, LOW); digitalWrite(led_2, HIGH); digitalWrite(led_3, HIGH); } else { digitalWrite(led, HIGH); digitalWrite(led, HIGH); digitalWrite(led, LOW); } }
Bloques:
Explicación: Este circuito consiste de una L.D.R. y tres leds conectadas a una placa Arduino 1. Su funcionamiento es el siguiente: La L.D.R recibe una luz, y dependiendo de la cantidad de luz que recibe se enciende un número de leds, 1, 2 o 3. Se enciende un led cuando baja el valor de la L.D.R a 550, se encienden dos leds cuando el valor de la L.D.R baja a 350 y se encienden los tres si el valor de la L.D.R baja de los 150. También está puesto un bloque que se llama "serial.print", que en este caso nos ha servido para, según estábamos configurando los valores en Arduino, saber los valores que nos daba la L.D.R mientras la íbamos tapando más o menos, y así ajustar los valores en los que los leds se encendían y apagaban.
Montaje en Fritzing: