ILUMINACION DE PLANTAS BILUMETIUM utilizando LDR como sensor de luz | Codificacion en ARDUINO
En esta ocasión, vamos a resolver uno de los ejercicios sacados del libro KIT Basico Arduino UNO, pagina 93
EJERCICIO 2
DESCRIPCIÓN DEL EJERCICIO
"La hermosa
bióloga María Paula ;) es la encargada de cuidar el gran Herbario de Santa
Mónica CA donde se preservan diversas plantas. Bilumetium, es un tipo de rosa
que requiere a temprana edad iluminación del tipo encendido/apagado, cuando su
sensor de luz es mayor a 600 la luz se debe encender (LED1), cuando la planta
es adulta se requiere de una iluminación proporcional, en la medida que se va
oscureciendo la luz se va encendiendo gradualmente (LED2). Mediante el pulsador
S1 se activa el programa de planta joven y mediante el pulsador S2 se activa el
programa correspondiente a la planta adulta."
DIAGRAMA DEL CIRCUITO
//Diagrama pendiente de subida
- · La fotocelda la conectamos al pin analogico A0, con su respectiva resistencia de 10K
- · Los dos botones van a los pines 4 y 3 del Arduino
- · La primera led va conectado al pin 13, y el segundo led al 3.
Según la
descripción del ejercicio es de que, al pulsar el primer botón, se active el programa
que se encarga de darle iluminación a la planta joven, siguiendo las
restricciones formuladas. Al pulsar sobre el segundo botón, se activa el
programa de la planta adulta, el cual se encarga de darle una iluminación
artificial a la planta, proporcional a la iluminación natural.
CÓDIGO DEL PROGRAMA
int LDR=0; //variable entera que guardara el valor dado por la fotocelda
int pjoven=0,padulta=0;//variables tipo bandera para controlar cual programa este funcionando
int conversion=0;//variable auxiliar para guardar el valor con el cual se va a encender el led.
void setup() {
//pines de entrada y salida
pinMode(4,INPUT);
pinMode(5,INPUT);
pinMode(A0,INPUT);
pinMode(3,OUTPUT);
pinMode(13,OUTPUT);
Serial.begin(9600);
}
void loop() {
//condicional para saber si el pulsador puesto en el pin 4 fue activado, si es asi, se desactiva la bandera de la planta adulta y se activa la de la planta joven.
if(digitalRead(4)==HIGH){
padulta=0;
pjoven=1;
}
//condicional para saber si el pulsador puesto en el pin 5 fue accionado, si es así, se desactiva la bandera de la planta joven y se activa la de la planta adulta.
if(digitalRead(5)==HIGH){
pjoven=0;
padulta=1;
}
//en esta parte se utilizan las banderas para llamar los procedimientos hechos para cada planta.
//si esta levantada la bandera de la planta joven, se apaga el led usado por la planta adulta, y se llama al procedimiento de la planta joven.
if(pjoven==1){
analogWrite(13,LOW);
plantajoven();
}
//si esta levantada la bandera de la planta adulta, se apaga el led usado por la planta adulta, y se llama al procedimiento de la planta joven.
if(padulta==1){
digitalWrite(3,LOW);
plantaadulta();
}
delay(500);//retardo de medio minuto.
}
//procedimiento para la planta joven
void plantajoven(){
Serial.println("planta joven");
LDR=analogRead(A0);//se lee el valor del LDR
Serial.println(LDR);
//Si el valor sobrepasa los 600, se enciende el led puesto en el pin 3.
if(LDR>600){
digitalWrite(3,HIGH);
}
// de lo contrario se apaga el led
else{
digitalWrite(3,LOW);
}
}
//procedimiento para la planta adulta
void plantaadulta(){
Serial.println("planta adulta");
LDR=analogRead(A0);//se lee el valor del LDR
conversion=1023-LDR; //para poderle aplicar al led la resistencia dada por el LDR, se saca la diferencia entre 1023(que es el valor máximo que puede tener un LED) y el valor dado por la fotoresistencia...
Serial.println(LDR);
//...ese valor se lo mandamos al LED puesto en el pin 13 para encenderlo con esa intensidad
analogWrite(13,conversion);
}
En el siguiente vídeo se explica paso a paso la codificación del programa en Arduino, de igual manera se explica el funcionamiento:
Revisa todos los materiales disponibles en el canal, siguiendo este enlace:
Comentarios
Publicar un comentario