Há uma série de sinais de baixa frequência em todo o mundo que transmitem a hora exata e informações de data. Esses sinais são utilizados pelos aparelhos de rádio, secretária eletrônicas e muitos relógios baratos que podem ser facilmente adquiridos nos dias de hoje. O sinal de horas também é útil para a sincronização dos relógios de computadores.
receptor do sinal DCF77 transmissores costumam ficar nessas antenas
Não se assuste se uma maquina alimentada pela primeira vez exibir a data e hora.
Podemos aproveitar o sinal Para nossos Projetos :)
Pin 4: saída DCF invertido Pino 3: saída DCF
Pino 2: Tensão de funcionamento 2.5V a 12V
Pin 1: GND (pin lado do diodo)
Pino 2: Tensão de funcionamento 2.5V a 12V
Pin 1: GND (pin lado do diodo)
O "C" do arduino possui um biblioteca para o DCF77
Arduino DCF77 library download...
#include "DCF77.h"
#include "Time.h"
#define DCF_PIN 2 // Connection pin to DCF 77 device #define DCF_INTERRUPT 0 // Interrupt number associated with pin
time_t time; // Non-inverted input on pin DCF_PIN
DCF77 DCF = DCF77(DCF_PIN,DCF_INTERRUPT, true);
void setup() {
Serial.begin(9600);
DCF.Start();
Serial.println("Waiting for DCF77 time ... ");
Serial.println("It will take at least 2 minutes before a first time update."); }
void loop() {
delay(1000);
time_t DCFtime = DCF.getTime(); // Check if new DCF77 time is available
if (DCFtime!=0)
{
Serial.println("Time is updated");
setTime(DCFtime);
}
digitalClockDisplay(); }
void digitalClockDisplay(){
// digital clock display of the time
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.print(" ");
Serial.print(day());
Serial.print(" ");
Serial.print(month());
Serial.print(" ");
Serial.print(year());
Serial.println(); }
void printDigits(int digits){
// utility function for digital clock display: prints preceding colon and leading 0
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits); }
#define DCF_PIN 2 // Connection pin to DCF 77 device #define DCF_INTERRUPT 0 // Interrupt number associated with pin
time_t time; // Non-inverted input on pin DCF_PIN
DCF77 DCF = DCF77(DCF_PIN,DCF_INTERRUPT, true);
void setup() {
Serial.begin(9600);
DCF.Start();
Serial.println("Waiting for DCF77 time ... ");
Serial.println("It will take at least 2 minutes before a first time update."); }
void loop() {
delay(1000);
time_t DCFtime = DCF.getTime(); // Check if new DCF77 time is available
if (DCFtime!=0)
{
Serial.println("Time is updated");
setTime(DCFtime);
}
digitalClockDisplay(); }
void digitalClockDisplay(){
// digital clock display of the time
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.print(" ");
Serial.print(day());
Serial.print(" ");
Serial.print(month());
Serial.print(" ");
Serial.print(year());
Serial.println(); }
void printDigits(int digits){
// utility function for digital clock display: prints preceding colon and leading 0
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits); }
Nenhum comentário:
Postar um comentário