INDOORINO, controlador temporizador de luces LEDs con Arduino




Todas las plantas necesitan cierto TIEMPO de iluminación y por eso construiremos un controlador temporizador de luz para cualquier tipo de arreglo a 12v DC con tan solo el uso del módulo de reloj de tiempo real DS1302 y arduino.





En la 1era imagen se puede ver que el sistema está conformado por un transistor en la entrada de voltaje desde la batería, yo usaré una batería de 12VDC y 5Ah. entonces este transistor regulará el voltaje para el microcontrolador, necesitamos regular de 12 voltios a 5 voltios dc con el TIP41 que es capaz de regular por encima de los 10A.



Después están las conexiones típicas del circuito stand alone de arduino para montaje por fuera de la placa y conectaremos 12 leds de color rojo para que consuman muy poco. 

el módulo de tiempo real estará conectado en la parte posterior de la imagen y no en la cara frontal. 

por ultimo en la salida de voltaje tenemos un transistor mosfet el cual cuando el microcontrolador lea la hora y activemos el pin A3, según el diagrama esquemático que podemos encontrar a continuación
: https://www.dropbox.com/sh/qshmzenyp4wxrg2/AAAlWi_rF0CTS--pHEvH8HwWa?dl=0
Circuito implementado en la vida real.

codigo:


#include <DS1302.h> // Inicializacion del modulo.
// DS1302(Rst, data, clock); // formato de sentencia
DS1302 rtc(A0, A1, A2); // asignacion de pines
Time t; //declaramos la variable donde vamos a guardar el dato de la hora
//ESTE SISTEMA ESTA DISEÑADO PARA CONECTARSE A LA MEDIA NOCHE Y EMPEZAR DESDE LA HORA 00:00:00

void setup() {
  // Inicializacion de salidas
  pinMode(13,OUTPUT);
  pinMode(12,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(2,OUTPUT);
  pinMode(A3,OUTPUT);
  Serial.begin(9600); //para visualizar en el monitor serie
}

void loop() {
    t = rtc.getTime(); // Obtencion de datos
   Serial.print("HOY:");  // Se publicara el dia de la semana
  if (t.dow == 1) Serial.print("lun");  // La variable t.dow (dia de la semana) tendra valor de 1 para dia lunes y 7 para domingo.
  if (t.dow == 2) Serial.print("mar");
  if (t.dow == 3) Serial.print("mie");
  if (t.dow == 4) Serial.print("jue");
  if (t.dow == 5) Serial.print("vie");
  if (t.dow == 6) Serial.print("sab");
  if (t.dow == 7) Serial.print("dom");
 
  Serial.println();  // Linea aparte
 
  // Se publicaran datos de fecha, en numeros.
  Serial.print("DIA:");
  Serial.print(t.date, DEC);  // Dia del mes
  Serial.println();
 
  // Mes
  Serial.print("MES:");
  Serial.print(t.mon);
  Serial.println();
 
  // Año
  Serial.print("DE:");
  Serial.print(t.year, DEC);
  Serial.println();
 
  Serial.print("HORA:");  // Hora en formato 0-23.
  Serial.print(t.hour, DEC);
  Serial.print(", MIN:");  // Minutos.
  Serial.print(t.min, DEC);
  Serial.print(", SEG:");  // Segundos.
  Serial.print(t.sec, DEC);
  Serial.println();
  Serial.println();
  Serial.println();

  //el reloj empieza a contar desde la hora 00:00:00 y la variable t queda con valor 0
  if(t.hour==0){          //preguntamos por el dato hour de la variable t si es cero si lo es entonces entrara al if si no saltara a la siguiente pregunta y cativa
    digitalWrite(A3,LOW);//LOW pondra en nivel bajo al terminal A3 del microcontrolador y desactivara el mosfet
    digitalWrite(13,HIGH);
    delay(5);            //el led dura 5 milisegundos encendidos
    digitalWrite(13,LOW);
  }
  else if(t.hour==1){
    digitalWrite(A3,LOW);
    digitalWrite(12,HIGH);
    delay(5);
    digitalWrite(12,LOW);
  }
  else if(t.hour==2){
    digitalWrite(A3,LOW);
    digitalWrite(11,HIGH);
    delay(5);
    digitalWrite(11,LOW);
  }
  else if(t.hour==3){
    digitalWrite(A3,LOW);
    digitalWrite(10,HIGH);
    delay(5);
    digitalWrite(10,LOW);
  }
  else if(t.hour==4){
    digitalWrite(A3,LOW);
    digitalWrite(9,HIGH);
    delay(5);
    digitalWrite(9,LOW);
  }
  else if(t.hour==5){
    digitalWrite(A3,LOW);
    digitalWrite(8,HIGH);
    delay(5);
    digitalWrite(8,LOW);
  }
  else if(t.hour==6){
    digitalWrite(A3,HIGH);
    digitalWrite(7,HIGH);
    delay(5);
    digitalWrite(13,LOW);
  }
  else if(t.hour==7){
    digitalWrite(A3,HIGH);
    digitalWrite(6,HIGH);
    delay(5);
    digitalWrite(6,LOW);
  }
  else if(t.hour==8){
    digitalWrite(A3,HIGH);
    digitalWrite(5,HIGH);
    delay(5);
    digitalWrite(5,LOW);
  }
  else if(t.hour==9){
    digitalWrite(A3,HIGH);
    digitalWrite(4,HIGH);
    delay(5);
    digitalWrite(4,LOW);
  }
  else if(t.hour==10){
    digitalWrite(A3,HIGH);
    digitalWrite(3,HIGH);
    delay(5);
    digitalWrite(3,LOW);
  }
  else if(t.hour==11){
    digitalWrite(A3,HIGH);
    digitalWrite(2,HIGH);
    delay(5);
    digitalWrite(2,LOW);
  }
  else if(t.hour==12){
    digitalWrite(A3,LOW);
    digitalWrite(13,HIGH); //vuelve la secuencia led desde el primero indicando las doce
    delay(5);
    digitalWrite(13,LOW);
  }
  else if(t.hour==13){
    digitalWrite(A3,LOW);
    digitalWrite(12,HIGH);
    delay(5);
    digitalWrite(12,LOW);
  }
  else if(t.hour==14){
    digitalWrite(A3,LOW);
    digitalWrite(11,HIGH);
    delay(5);
    digitalWrite(11,LOW);
  }
  else if(t.hour==15){
    digitalWrite(A3,LOW);
    digitalWrite(10,HIGH);
    delay(5);
    digitalWrite(10,LOW);
  }
  else if(t.hour==16){
    digitalWrite(A3,LOW);
    digitalWrite(9,HIGH);
    delay(5);
    digitalWrite(9,LOW);
  }
  else if(t.hour==17){
    digitalWrite(A3,LOW);
    digitalWrite(8,HIGH);
    delay(5);
    digitalWrite(8,LOW);
  }
  else if(t.hour==18){
    digitalWrite(A3,HIGH);
    digitalWrite(7,HIGH);
    delay(5);
    digitalWrite(7,LOW);
  }
  else if(t.hour==19){
    digitalWrite(A3,HIGH);
    digitalWrite(6,HIGH);
    delay(5);
    digitalWrite(6,LOW);
  }
  else if(t.hour==20){
    digitalWrite(A3,HIGH);
    digitalWrite(5,HIGH);
    delay(5);
    digitalWrite(5,LOW);
  }
  else if(t.hour==21){
    digitalWrite(A3,HIGH);
    digitalWrite(4,HIGH);
    delay(5);
    digitalWrite(4,LOW);
  }
  else if(t.hour==22){
    digitalWrite(A3,HIGH);
    digitalWrite(3,HIGH);
    delay(5);
    digitalWrite(3,LOW);
  }
  else if(t.hour==23){
    digitalWrite(A3,HIGH);
    digitalWrite(2,HIGH);
    delay(5);
    digitalWrite(2,LOW);
  }
 
  delay(9995);  // Demora para no sobrecargar las comunicaciones con el modulo.
}

Comentarios

  1. NJ sports betting guide 2021 | bets on NFL, NBA, NBA, MLB,
    We 포커 게임 also offer several free-to-play prop bets to help you make real money bets at the online sportsbooks that we have been 온라인바카라게임 building 188 벳 for 토 타임 you and 사카마치 미루 our players.

    ResponderEliminar

Publicar un comentario

Populares

Fuente Dual Regulable 30V-5A Con Diagrama Esquematico

Reloj Digital con TTL || ¿Como se hace?