SUPORTE TÉCNICO
De segunda à sexta pelo e-mail:
suporte@robocore.net
CENTRAL DE ATENDIMENTO
De segunda à sexta das 8:00 às 17:30
(11) 3522-7626 / vendas@robocore.net
Retornar
ao topo

Real Time Clock - Relé com Hora Marcada



Introdução

Agora que já sabemos como funciona um RTC, iremos, a partir dele, acionar um relé em um horário predeterminado. Por exemplo, na sua cidade escurece às 18h. Que tal fazer com que todos os dias, nesse mesmo horário, o relé que liga uma lâmpada na sua garagem acione e permaneça ligado até o amanhecer?

Lista de Materiais

Circuito

Siga o esquema de ligação abaixo, onde o relé é usado como um interruptor automático para a lâmpada. Lembrando que a lâmpada é apenas uma demonstração de acionamento de carga utilizando os contatos do relé.

Alerta: Caso você não tenha conhecimento adequado para mexer na rede elétrica, peça auxílio a um profissional. A RoboCore não se responsabiliza por danos à rede elétrica e/ou à integridade física do praticante do experimento, bem como quaisquer pessoas que possam vir a ser lesionadas.

RTC DS1307 e Módulo Relé conectados à BlackBoard
RTC DS1307 e Módulo Relé conectados à BlackBoard

Programação

O código para o acionamento do relé é parecido com o código do tutorial Primeiros Passos, porém adicionando alguns comandos.

Entendendo o Código

No trecho abaixo foram declaradas as variáveis PINO_RELE, que indica o pino para controlar o relé, HORA e MINUTO. Essas duas últimas variáveis são determinadas pelo usuário para definir o horário de acionamento do relé.

Após fazer a inicialização do RTC na função setup(), definimos o pino do relé como uma saída e executamos um comando para definir o estado padrão desse pino (desligado - LOW).

Na primeira parte da função loop() se cria a sequência em que serão impressas as informações do RTC (dia, mês, ano, hora, minuto e segundo). Esses dados serão atualizados em um intervalo de um segundo.

Por fim, cria-se a lógica do acionamento. Quando as horas e os minutos atuais forem iguais aos respectivos valores predeterminados (HORAe MINUTO), o pino do relé é configurado em nível lógico alto (HIGH). Senão, o pino é mantido em nível lógico baixo (LOW).

O Que Deve Acontecer

Como pode-se ver no vídeo abaixo, o acionamento do relé foi programado para às 10 horas e 53 minutos. De acordo com o circuito acima, o relé fecha o contato, assim conduzindo a fase da rede elétrica e por fim energizando a lâmpada.

Rele acionando e energizando a lampada
Relé acionando e energizando a lâmpada
Avatar


Para fazer comentários é necessário estar logado. Efetuar login.

Você ainda nao é cadastrado? Cadastre-se agora!


nt.eletricidade
date Enviado: 2021-07-01 07:47:11
Bom dia. Como eu consigo realizar um sketch com mais de um horário para ligar e desligar o relé? Posso fazer alguma mudança nesse sketch do exemplo para fazer o meu projeto? Desde já agradeço.

Giovanni5
date Enviado: 2021-07-01 08:00:07
nt.eletricidade
Sim, você pode adicionar uma segunda condição ao mesmo código deste projeto, basta replicar a lógica já usada no exemplo, porém com o segundo horário desejado (será necessário adicionar outras variáveis que armazenem esse segundo horário desejado).

DaMata
date Enviado: 2021-04-10 21:57:39
Boa Noite.
Li as duvida dos amigos porem não consegui efetuar a programação para desligar a lâmpada em um determinado horário.
Seria possível informar em quais linhas devo atualizar o código?

Giovanni5
date Enviado: 2021-04-12 08:22:33
DaMata
Como o código já possui uma condição "else", você pode simplesmente alterá-la para uma condição "else if", duplicando a lógica de acionamento do relé (<if ((agora.hour() == HORA) && (agora.minute() == MINUTO))>), para que ele desligue.

edugami
date Enviado: 2020-10-19 19:07:07
Acho que identifiquei o problema. Mesmo sendo alimentado por fonte de 5v externa, percebi que quando interligo os GNDs o led da fonte do Protoboard acende. medi uma tensão de, mais ou menos 1v,  saindo do GND da Black Board que fica pulsando. O projeto funcionou, mas esse tensão pulsante impede o player de funcionar. Só quando retiro o GND comum é que ele toca.

Giovanni5
date Enviado: 2020-10-20 08:08:52
edugami
Essa tensão oscilante não deveria estar presente, principalmente no GND das placas, então revise com atenção o circuito montado para o projeto, pois é possível que haja alguma coisa errada. Por mais que o seu projeto esteja funcionando sem os GNDs estarem interligados, esse circuito não é o ideal, e pode acabar causando mal funcionamento após algum tempo.

edugami
date Enviado: 2020-10-19 15:32:37
Continuando... Neste caso, o projeto está sendo alimentado por fonte 5V externa. No outro teste, deixei o RTC e os leds alimentado pela Black Board e o DFplayer pela fonte 5v. Além disso, levei um jump do GND da fonte a entrada GND da Black Board. Mesmo resultado! O projeto é acionado na hora marcada mas o MP3 fica piscando e só toca quando retiro o GND comum entre a fonte e a Black Board.  Gostaria muito de concluir esse projeto, sei que falta algum detalhe que a falta de experiência está deixando passar. Poderia me ajudar?

Giovanni5
date Enviado: 2020-10-19 17:31:43
edugami
Notamos que as duas mensagens foram enviadas na sequência, portanto aproveitamos para responder apenas a primeira (abaixo), levando em conta tudo que foi comentado.

edugami
date Enviado: 2020-10-19 15:25:43
Boa tarde Giovanni! Perdão por enviar tantas perguntas mas, estou no meu primeiro projeto após a conclusão do curso V8 e V4, por isso preciso de ajuda. Refiz todos as ligações e solucionei o problema do DFPlayer. Montei o código do projeto (usando o "Real Time Clock - Relé com Hora Marcada" como base do projeto) Tudo está, aparentemente, funcionando. Quando coloco a hora para o projeto funcionar (Luzes e DFPlaye) os leds acendem porém, o player fica piscando o led no mesmo ciclo de tempo do led da Black Board. Qaundo desconecto o gnd ou desligo a USB, o Player começa a tocar.

Giovanni5
date Enviado: 2020-10-19 17:30:52
edugami
É necessário que os GNDs de todos os circuitos estejam interligados, para que todas as placas tenham a mesma referência. Então se o conjunto não funciona com os GNDs interligados, é sinal que pode haver algum problema no circuito de alimentação.  Além disso, como o projeto parece estar funcionando até o acionamento do DFPlayer, é possível que seja alguma lógica do código, que interrompe a sua execução, ou que faz com que a placa reinicie em certo ponto. Tente usar o monitor serial para identificar em que momento o projeto trava, para tentar solucionar esse problema.

edugami
date Enviado: 2020-10-15 18:03:18
Troquei as portas no código sim e interliguei. Vou testar a serial com um dos exemplos do curso. Boa ideia.

edugami
date Enviado: 2020-10-15 17:00:07
Montei na black Board somente o circuito da DFPLAYERmini. Usei 10 e 11 para RX e DX, usando o exemplo da IDE. Resutados-  Alimentado na placa: O player nao foi inicializado. Alimentado com fonte externa: O player não foi inicializado.  Realmente não inicializa mais pela serial. Mesmo alterando as portas (coloquei 7 e 8) não funciona. Chato isso.

Giovanni5
date Enviado: 2020-10-15 17:32:43
edugami
Você interligou o GND dos dois circuitos com a alimentação externa? Além disso, quando você trocou os pinos da conexão do circuito, lembrou de trocá-los também no código? Por mais que esses erros sejam "bestas", é comum que nos esqueçamos destes detalhes, e são eles que podem causar erros de funcionamento do projeto. Você pode testar a BlackBoard com outro módulo que se utilize de comunicação serial, para verificar o funcionamento da placa. Assim você elimina as possibilidades, para solucionar esse problema.

edugami
date Enviado: 2020-10-15 15:08:51
Olá! Gostaria de uma ajuda. Usei o exemplo da biblioteca do arduino para funcionar um DFPLAYER mini. Funcionou por umas três vezes através da porta serial, porém, não sei o motivo, minha Black Board não consegue mais acessar o Mini Player. Já testei e refiz as ligações umas mil vezes e nada funciona. O player está perfeito pois testei na placa de um amigo. Já alterei as portas definidas pelo exemplo para rx e tx e, mesmo assim, ao abrir a serial, não funciona o Player. Tem alguma dica para resolver o problema? Obrigado

Giovanni5
date Enviado: 2020-10-15 15:52:26
edugami
Você fez alguma mudança no projeto entre a última vez que o módulo estava funcionando com a BlackBoard, e o momento que o conjunto deixou de funcionar? Você está utilizando a alimentação de 5 V da própria BlackBoard, ou uma alimentação externa? Se você está usando a alimentação da própria placa, tente utilizar uma alimentação externa (lembrando de interligar os GNDs dos circuitos), pois possivelmente o módulo consome mais corrente que a placa é capaz de fornecer. Como o módulo está funcionando com outra placa Arduino, pode ser que haja algum problema com o circuito montado, ou na placa em si.

edugami
date Enviado: 2020-10-06 15:12:22
Dentro deste projeto, seria possível ao invés de uma lãmpada acionada por relê, comocar um dfplayer mini para tocar em horas programadas? isso é possível ?

Giovanni5
date Enviado: 2020-10-06 16:10:42
edugami
Sim, isso é possível, porém é necessário modificar o acionamento do relé para o acionamento do DFPlayer, utilizando os comandos da biblioteca deste módulo.

edugami
date Enviado: 2020-10-06 13:58:35
Consegui! Obrigado Giovanni.