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!


felipe-ahalmenschlag
date Enviado: 2020-07-31 10:24:55
e que estou fazendo um projeto que as lampadas ligam as seis horas e uma desliga as 21 horas e a outra as 24 horas como fazer

Giovanni5
date Enviado: 2020-07-31 11:08:35
felipe-ahalmenschlag
Notamos que as duas mensagens foram enviadas na sequência, portanto aproveitamos para responder apenas a primeira (abaixo), levando em conta tudo que você comentou.

felipe-ahalmenschlag
date Enviado: 2020-07-31 10:22:52
como fazer para desligar a lampada em determinada hora 

Giovanni5
date Enviado: 2020-07-31 11:07:44
felipe-ahalmenschlag
Você pode replicar a condição de acionamento ("if ((agora.hour() == HORA) && (agora.minute() == MINUTO))") para os momentos que você precisa apagar as lâmpadas, porém, ao invés de enviar um sinal alto ("HIGH") para o relé, basta enviar um sinal de nível baixo ("LOW"). Vale lembrar que, como você quer que as luzes se mantenha acesas durante este período, será necessário utilizar operadores comparativos (https://www.arduino.cc/reference/en/language/structure/comparison-operators/lessthan/ - por exemplo), caso contrário, as lâmpadas serão apagadas logo após o acionamento.

vialvescarvalho01
date Enviado: 2020-07-10 10:16:15
Bom dia, estou com um projeto onde aciono um servo com o RTC gostaria de saber um meio ao qual eu possa utilizar o rtc sem ter que manter o monitor serial aberto. Se utilizar um lcd consigo utilizar sem estar conectado a entrada usb do computador?

Giovanni5
date Enviado: 2020-07-10 10:43:01
vialvescarvalho01
Você pode simplesmente não utilizar o monitor serial, este código, por exemplo, embora tenha comandos para exibir as informações do RTC no monitor serial, funciona normalmente sem que ele esteja aberto. Portanto, você pode só alimentar a placa por uma fonte externa (https://www.robocore.net/loja/baterias/fonte-chaveada-9v-1a - por exemplo), para não depender da alimentação USB do computador. Se você quiser, também pode utilizar um LCD para exibir as informações do RTC, mas lembre-se que não é necessário.

vialvescarvalho01
date Enviado: 2020-07-10 11:00:12
vialvescarvalho01
Eu posso alimentar ele pela entrada usb do arduino ou só pelo porta power?

Giovanni5
date Enviado: 2020-07-10 11:40:08
vialvescarvalho01
Você pode alimentar placas Arduino pela porta USB, e pelo plug P4, ao mesmo tempo, ou separadamente. Mas lembre-se que, a alimentação pela porta USB só pode ser feita com uma tensão de 5 V, e a alimentação pelo plug P4 só pode ser feita com uma tensão entre 7 e 12 V.

vialvescarvalho01
date Enviado: 2020-07-10 11:51:25
vialvescarvalho01
Muito obrigado pela atenção.

edinhodias
date Enviado: 2020-06-11 18:59:13
Olá Matheus, boa noite. Como eu posso usar esse sketch com o modulo RTC DS-1302?

Giovanni5
date Enviado: 2020-06-12 08:25:56
edinhodias
Infelizmente não é possível aproveitar este código para o RTC DS1302, pois o mesmo não é compatível com a biblioteca usada neste tutorial. Você pode utilizar um dos exemplos da biblioteca do seu RTC (https://github.com/msparks/arduino-ds1302), para adaptá-la, e executar a mesma função deste tutorial.

lucascrestani_
date Enviado: 2019-12-06 13:48:49
teria algum tutorial para fazer esse timer programado atravez do blink?

Giovanni5
date Enviado: 2019-12-06 16:56:36
lucascrestani_
Infelizmente não temos um tutorial específico para essa aplicação, porém agradecemos pela sugestão, iremos analisar a possibilidade de desenvolvimento deste tutorial.

wjesus
date Enviado: 2019-11-11 16:23:57
Tem algum tutorial utilizando esse módulo como temporizador?

Giovanni5
date Enviado: 2019-11-11 16:53:41
wjesus
Esse tutorial utiliza esse módulo com um funcionamento similar à um cronômetro/alarme, onde o relé somente é acionado em uma determinada hora. Infelizmente não temos um tutorial específico para usar esse módulo como um temporizador, porém você pode utilizar esse tutorial como base para o desenvolvimento de seu projeto.

wjesus
date Enviado: 2019-11-11 17:00:48
wjesus
Entendi, obrigado!

turtelli
date Enviado: 2019-07-10 00:07:35
Preciso de um circuito que ao detectar uma tensão acima de 70 Vcc acione uma fechadura elétrica de portão (essas comuns). Com o Kit V8 consigo montar esse sistema?

Giovanni5
date Enviado: 2019-07-10 11:26:10
turtelli
Para que uma placa da plataforma Arduino seja capaz de realizar leituras de tensões acima 5 V, é necessário realizar um circuito divisor de tensão para a tensão seja compatível com a placa. Para isso, é necessário ter uma precisão muito grande para não danificar o sistema, calculando corretamente os resistores do divisor de tensão para o máximo de tensão possível, já que a leitura deve ser acima de 70 Vcc, é necessário saber o valor de tensão máximo, além de utilizar resistores com baixa tolerância, para aumentar a precisão do circuito, que não é muito confiável.

Giovanni5
date Enviado: 2019-07-10 11:36:55
turtelli
Para acionamento de cargas superiores à 5 V, é necessário utilizar um relé, como, por exemplo, o Módulo Relé (https://www.robocore.net/loja/itens-eletronicos/modulo-rele), porém, é necessário que a carga do circuito que será acionado pelo relé seja compatível com o relé do módulo. O ideal seria utilizar um relé para acionar um contator através de um "snubber" (por se tratar de uma carga indutiva).

Giovanni5
date Enviado: 2019-07-10 11:37:49
turtelli
O Kit Iniciante V8 (https://www.robocore.net/loja/kits/arduino-kit-iniciante/blackboard-uno-r3), não possui todos os componentes necessário para desenvolver esse sistema. Entretanto, você pode utilizá-lo para aprender sobre o básico da plataforma Arduino e obter conhecimento suficiente para desenvolver esse sistema corretamente.