ARDUINO: DECODIFICA DEL SEGNALE DCF77 SENZA RICEVITORE



ITALIANO   ENGLISH    ESPAÑOL

 

INTRODUZIONE

Per la decodifica del segnale DCF77, contenente l'informazione oraria, è necessario ricevere il segnale sulla frequenza dei 77, 5kHz.  Il progetto presentato in questa pagina permette di decodificare il segnale DCF77, ricavandone l'informazione  oraria, senza acquistare questo ricevitore. Basta solo un  PC e  una scheda, presentata in questo  articolo, che prende il nome di BF_DCF77. Questo circuito permette di ricavare l'informazione  presente nel segnale DCF77, in versione digitale  dal segnale audio in uscita dal PC sintonizzato sui 77,5kHz. tramite una radio SDR controllabile via web come quella presente al seguente indirizzo: SDR WEB RADIO.
Il segnale in uscita alla scheda va poi connesso alla scheda Arduino che decodifica l'informazione digitale ricavandone l'informazione oraria.

Al seguente indirizzo  DCF_DECODER e' presentato un progetto in cui si realizza un decodificatore harware basato su microcontrollore, con display LCD che utilizza la interfaccia BF_DCF77.

L'INTERFACCIA BF_DCF77

In figura 1 e' riportato lo schema elettrico della scheda di demodulazione BF_DCF77. Il circuito e' basato su due transistor Q1 e Q2 e su pochi componenti passivi. Questo circuito permette di ricavare l'inviluppo del segnale audio presente all'ingresso IN_BF dando una versione digitale di questo inviluppo sul pin di uscita VOUT. schema elettrico interfaccia BF_DCF77

Fig. 1: schema elettrico dell'interfaccia BF_DCF77

Nella figura 2 e' riportato la cattura dello schermo dell'oscilloscopio in cui sono raffigurate le forme d'onda del segnale audio di ingresso e' quello digitale corrispondente in uscita.

cattura  oscilloscopio IN/OUT per BF_DCF77

Fig. 2: CH1 = segnale audio ingresso;  CH2 segnale uscita

Lo stadio di ingresso del circuito e' costituito dal transistor Q1 che e' in configurazione di amplificatore in classe A. L'uscita di questo stadio e' quindi applicata allo stadio di rilevazione dell'inviluppo costituito da D1, C1 e R1 mentre lo stadio di digitalizzazione e' costituito da  Q2, D2 e C3. Il circuito funziona con tensione di compresa tra i 3,3V e i  5V per cui può essere direttamente collegato alla scheda Arduino


IMPLEMENTAZIONE 

Dopo aver realizzato la scheda , che molto è economica, si passa al collegamento della scheda Arduino MEGA 2560 con l'interfaccia BF_DCF77. Bastano solo tre fili: uno per la alimentazione positiva ( rosso ) prelevata da connettore delle alimentazioni nel posto contrassegnato con 5V , uno ( nero) per la GND e uno ( verde) per il segnale  in uscita dall'interfaccia che va collegato nel pin 2 della scheda Arduino.

collegamento tra Arduino e l'interfaccia BF_DCF77

IMPLEMENTAZIONE SOFTWARE

Ecco il codice ( per Arduino mega2560) che e' una copia dell'esempio presente nella libreria DCF77 di Arduino. Chi vuole può scaricarla direttamente dal programma IDE. 

#include <Time.h>
#include <TimeLib.h>


#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;
DCF77 DCF = DCF77(DCF_PIN, DCF_INTERRUPT);

void setup() {
Serial.begin(9600);
DCF.Start();
Serial.println("Waiting for DCF77 time ... ");
Serial.println("It will take at least 2 minutes until a first update can be processed.");
}

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);
}




VIDEO /FOTO

banco di test per il progetto BF_DCF77