Olá Makers, no projeto de hoje criaremos um alarme por tempo com o arduino. Neste post vamos apresentar um tutorial de como conectar o módulo RTC DS1307 com um Arduino Uno, e mostraremos todas as informações de data e hora no Serial Monitor da IDE Arduino. Bacana né, com esse módulo podemos fazer vários projetos como um despertador, ou colocar o arduino para desligar uma TV a partir de tal horário por exemplo, então antes de por a mão na massa vamos conhecer melhor o módulo?
Veja também Como Utilizar o módulo de Áudio YX5300
Módulo RTC
A sigla RTC significa Real Time Clock, ou seja, um Relógio de Tempo Real (RTC), o Tempo Real quer dizer que esse relógio quase nunca é perdido, ao contrário do arduino só em sí, quando desconectado ele armazena e conta as horas e datas, por isso uma pequena pilha para alimentar o circuito mesmo quando ele for desligado.
Uma outra coisa bem legal desse módulo é que ele tem um suporte para o sensor de temperatura DS18B20, o que simplifica bastante o circuito caso queira implementa-lo.
Especificações:
– Chip: DS1307
– 56 bytes de SRAM que podem ser usadas como RAM estendida do microcontrolador.
– Interface I2C
– Circuito de detecção de falha de energia.
– Consome menos de 500nA no modo bateria com oscilador em funcionamento.
– Faixa de temperatura: -40°C a +85°C.
– Dimenões: 2.9×2.6cm.
Figura 01 – Módulo RTC
Agora que já conhecemos todos o módulo que vamos utilizar, vamos lá montar o circuito
Circuito do projeto:
Conectaremos os pinos do módulo RTC da seguinte maneira:
SDA – pino 2
SCL – pino 3
VCC – 5v
GND – gnd
O Circuito final ficará da seguinte forma:
Figura 02 – Circuito com o arduino e o módulo RTC
Conseguiu? Bom então agora vamos para a melhor parte, programar 😛
Programação do módulo RTC DS1307
Antes de tudo é fundamental instalar a biblioteca do módulo RTC, pois sem ela seria extremamente difícil conseguir ter acesso aos dados do módulo, então baixe ela nesse link, e extraia na pasta libraries da sua IDE arduino.
//Programa : Aprendendo a utilizar o módulo RTC17 DS1307 //Autor : Saulo Alexandre - Autocore Blog #include <DS1307RTC.h> //Definindo as portas utilizadas // SCL <- 3 // SDA <- 2 DS1307 rtc(2, 3); void setup() { //Definicoes do pino SQW rtc.setSQWRate(SQW_RATE_1); rtc.enableSQW(true); rtc.setTime(10, 20, 0); //Definir o horario rtc.setDate(16, 9, 2017); //Definir o dia, mes e ano rtc.setDOW(FRIDAY); //Definir o dia da semana (em ingles e em maiusculo) //definindo a velocidade do serial Serial.begin(9600); } void loop() { //Imprime a hora Serial.print("Hora : "); Serial.print(rtc.getTimeStr()); //Imprime a data Serial.print(" - - Data : "); Serial.print(rtc.getDateStr(FORMAT_SHORT)); //Imprime o dia Serial.print(" - - It is : "); Serial.println(rtc.getDOWStr(FORMAT_SHORT)); //Atualiza a cada segundo delay(1000); }
Conclusão
O projeto final ficou como queríamos, vejam só o vídeo:
Teve alguma dúvida, comentário ou observação? coloque aqui em baixo nos comentários!