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

Entradas más populares de este blog

Como ser romántico nivel programador

Felicitaciones de cumpleaños para un programador [tomado de frasesparacumpleaños.com]

INDICADOR LUMINOSO DE VOLUMEN DE UN EQUIPO DE SONIDO (PROGRAMACIÓN EN ARDUINO)