Amigos,

 

ja estou com meu arduino uno a pleno vapor. Recentemente adquiri um DS1307 RTC para incorporar horas aos meus projetos. Consegui fazer as ligações e acertar o horário.

 

Agora estou procurando como definir que determinada ação aconteca em determinado horário, como ligar uma luz. Não sei fazer isso e estou pedindo uma ajuda.

 

qualquer dica será bem vinda. Se tiverem um modelo, ou um site que eu possa utilizar será muito útil.

Na net até hoje só encontrei como configurá-lo mas não como chamar a função.

 

Podem me ajudar?

Exibições: 8717

Responder esta

Respostas a este tópico

Pode sim.

Vou ver se monto alguma coisa por aqui tbm.

Abraços!

Como esta o andamento do projeto? estou acompanhando desde o inicio.

Poderia publicar o codigo pra mim poder dar uma estudada?

Tambem quero fazer algo usando a mesma logica que a sua, de ligar e desligar durante um certo tempo... e tudo programavel no display...

Abraços,

Alberto

Vamos trabalhar entao. 

To caminhando com o projeto. Agora estou fazendo uma placa profissional.

Vou procurar o codigo e posto aqui. 

Ok vlw ai!

Boa noite Sidney!

Podes me passar o codigo para eu analisar?

To tentando acionar as lampadas aqui com determinado horario, usando o rtc ds1307 também.


Obrigado!

mr.sobral@hotmail.com

Mario,

já está no ldg. Procura nos posts sobre RTC  1307 que vc acha o codigo. Eu coloquei ele para discutirmos.

até

Quem tiver outras duvidas também, podem conferir o topico abaixo.

Abraço!

http://labdegaragem.com/forum/topics/simulador-de-presen-a-residenc...

Olá Sidney, teve sucesso com sua aplicação? Estou tentando fazer um sistema para acionamento de lampadas. Estas lampadas serão acionadas a partir de sensores do portão. Consegui fazer um sketch comparando a luminosidade com um ldr. Se é noite aciona. Se for dia não aciona. Estou querendo implementar também a opção de acionar as luzes a partir da hora. Por exemplo: se for 6 horas e estiver noite, aciona lampada. O problema que não estou conseguindo fazer a leitura da hora atual. Exemplo . hora_atual = read.rtc xxxxx

hora_liga = 18:00:00;

hora_desliga = 6:00:00

O sketch que tenho é este: e a biblioteca ds1307 esta em anexo. Poderia me dar uma ajuda?

// Modificated by SoBraL - mr.sobral@hotmail.com
// Font: http://arduino.cc/forum/index.php/topic,8833.0.html
// Before you need to install the library DS1307: http://bricofoy.free.fr/forums/arduino/DS1307.zip
#include <WProgram.h> //é um recurso para referenciar a biblioteca Wiring
#include <Wire.h> //inclui a biblioteca Wire necessaria para comunicaçao i2c
#include <DS1307.h> //inclui a biblioteca de comandos do DS1307 utilizada neste programa. Necessário baixá-la no link acima
int rtc[4];
int ldr = A6;
int rele = 10;
int sensor_frente = 9;
int sensor_atras = 8;

int ldr_valor=0;
int status_sensor_frente = 0;
int status_sensor_atras = 0;

int min_atual;
int tempo_set;
int tempo_stop;

byte hora_atual;

void setup()
{
Serial.begin(9600);
pinMode(rele, OUTPUT); //define o pino 10 como saída
pinMode(sensor_frente,INPUT);
pinMode(sensor_atras,INPUT);
/*
Esta sequencia de comandos deve ser escrita apenas uma vez, para
configurar a hora do Shield RTC 1307. Troque os numeros pela hora atual
RTC.stop();
RTC.set(DS1307_SEC,0); //define o segundo
RTC.set(DS1307_MIN,34); //define o minuto
RTC.set(DS1307_HR,8); //define a hora
RTC.set(DS1307_DOW,1); //define o dia da semana
RTC.set(DS1307_DATE,18); //define o dia
RTC.set(DS1307_MTH,9); //define o mes
RTC.set(DS1307_YR,16); //define o ano
RTC.start();*/

}
void loop()
{
RTC.get(rtc,true);
status_sensor_frente = digitalRead(sensor_frente);
status_sensor_atras = digitalRead(sensor_atras);
ldr_valor = analogRead(ldr);
/*
Comando utilizado apenas pra ficar enviando via USB a hora atual
para que possam monitorar no "serial monitor" do simulador Arduino
e ver se esta tudo funcionando de acordo
*/
for(int i=0; i<3; i++)

{

Serial.print (rtc[i]);
//Serial.print(rtc[i]);
Serial.print(" ");
}
Serial.println( ldr_valor);
delay(1000);
/*Serial.println();
Serial.println( status_sensor_frente);
delay(1000);
Serial.println(status_sensor_atras);
delay(1000);

Serial.println(tempo_stop);
delay(1000);/*

/*
O codigo abaixo significa que, quando o RTC estiver no segundo 22,
ele irá acionar o relé e o led. Para utilizar o minuto como referencia,
alterar rtc[0] para rtc[1], e assim sussecivamente
*/

///////////////////////////////////////////////////

// definiçoes de tempo acionamento via LDR

tempo_set = (rtc[0]==30);
min_atual = rtc[0];
tempo_stop = min_atual + tempo_set;

////////////////////////////////////////////////////

////// função para acionamento durante o dia. não deve acionar luz ///////////

if (status_sensor_frente==1 && status_sensor_atras==1 && tempo_stop==true && ldr_valor >=700 )
{

digitalWrite (rele, LOW);
}
if ( status_sensor_frente==0 && status_sensor_atras == 0 && ldr_valor >=700)
{
digitalWrite (rele, HIGH);
}

if (status_sensor_frente==0 && status_sensor_atras == 1 && ldr_valor >=700)
{
digitalWrite (rele, HIGH);
}

////////////////////////////////////////////////////////////////////////////////////////

////// função para acionamento durante a noite. Deve acionar luz ///////////

if (status_sensor_frente==1 && status_sensor_atras == 1 && ldr_valor <=700)
{
digitalWrite (rele, LOW);
}
if (status_sensor_frente==0 && status_sensor_atras == 0 && ldr_valor <=700)
{
digitalWrite (rele, LOW);
}
if (status_sensor_frente==0 && status_sensor_atras == 1 && ldr_valor <=700)
{
digitalWrite (rele, LOW);
}
}

Anexos

Olá Juliano,

Veja se este código anexo atende seu proposito.

Abraço

CK

Anexos

Esse tópico parece ser antigo, mas em todo caso vídeo do meu canal.

Projeto compartilhado AQUI

Vídeo sistema na pratica:

Abs.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço