Este é um projeto de baixo custo que poderá servir para automatizar sua casa ou seu carro.
Exemplo; todos os dias você abre as janelas do quarto as 08:00hs da manha, usando o código adequado é possível que o Arduíno faça isso pra você.
Este modulo pode ser encontrado em sites como o mercado livre a um preço bem em conta.
Para este projeto você vai precisar de ;
1x Modulo relógio.
1x Arduíno.
5x fios jumpers macho to fêmea.
Esquema de conexão
Siga as devidas conexões de acordo com a ilustração .
Baixe a biblioteca DS 1302 neste LINK e a biblioteca Wire neste outro LINK são necessárias para o funcionamento do código, apos baixa-las descompacte o arquivo e copie ambas para a pasta librareis dentro da pasta Arduíno .
Copie o código fonte para o programa que ira compilar para seu Arduíno.
//--------------------------------------INICIO DO CÓDIGO-----------------------------------//
#include <Wire.h>
#include <DS1302.h>
const int RstPino = 5; // Pino Rst
const int DatPino = 6; // Pino Dat
const int ClkPino = 7; // Pino Clk
// Cria um objeto para o dispositivo.
DS1302 rtc(RstPino, DatPino, ClkPino);
String dayAsString(const Time::Day day) {
switch (day) {
case Time::kSunday: return "Domingo";
case Time::kMonday: return "Segunda-Feira";
case Time::kTuesday: return "Terca-Feira";
case Time::kWednesday: return "Quarta-Feira";
case Time::kThursday: return "Quinta-Feira";
case Time::kFriday: return "Sexta-Feira";
case Time::kSaturday: return "Sabado";
}
return "(Dia nao encontrado)";
}
void printTime()
{
Time t = rtc.time();
const String day = dayAsString(t.day);
char dia[50];
snprintf(dia, sizeof(dia), day.c_str());
char buf[50];
//Ano mes dia hora min seg
snprintf(buf, sizeof(buf),"%02d-%02d-%04d %02d:%02d:%02d%04d",t.date,t.mon,t.yr, t.hr, t.min, t.sec);
//%s day.c_str(),
Serial.println(buf);
Serial.println(dia);
}
//_________________SETUP______________________________//
void setup(){
Serial.begin(9600);
//___________________Relogio setup______________________
// Configura a hora do relogio
rtc.writeProtect(false);
rtc.halt(false);
//Defina a hora nesta linha e descomente-as para setar a hora no chip
// Time t(2015, 2, 16, 18, 42, 10, Time::kMonday);
//rtc.time(t);
//apos o ajuste comente-as de novo
}
void loop()
{
printTime();
delay(3000);
}
//-----------------------------FIM DO CÓDIGO----------------------------//
Exemplo de funcionamento do modulo na porta serial
o outro link não para baixar a pagina esta bloqueada!
ResponderExcluirBoa tarde, não consigo aceder ao link do wire. como posso baixar?
ResponderExcluirObrigado.
Link consertado.
ResponderExcluircara perfeito!!!!! so gostaria de deixa-lo um pouco melhor colocando em um display 16x2 i2c ate fiz so que não me mostra os segundos por falta de espaço acredito eu, teria como por exemplo mostrar o dia da semana e a data n linha de cima e apenas a hora na linha de baixo? ae substituiria por exemplo domingo por dom e assim por diante, desde ja muito obrigado me ajudou bastante
ResponderExcluirteria tbm a opção de setar os valores de data e hora via botão externo?
ResponderExcluiro meu quando tiro da energia mesmo com a batria no lugar o mesmo não da continuidade as horas vc saberia me dizer o motivo? aqui funcionou blz apenas este problema, pois a bateria seria justamente para manter as horas em funcionamento num é? desde ja agradeço
ResponderExcluir