Pages: 1 [2] 3 4 ... 6   Go Down
Author Topic: DCF77 - RTC DS1307  (Read 11166 times)
0 Members and 1 Guest are viewing this topic.
Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao

ho trovato questo, che usa esattamente il "mio" modulo:
http://gonium.net/md/2006/11/05/arduino-dcf77-radio-clock-receiver/

questo w-e lo provo e vi dico

Nel Playground sono indicati alcuni link oltre al tuo
- http://gonium.net/md/2007/01/06/arduino-dcf77-v02-released/
- http://lietaer.be.dotnet39.hostbasket.com/arduino/Dcf77.zip

e già un punto di partenza.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ottima segnalazione! leggendo un po' sembra che il problema maggiore - come giustamente qualcuno ha già notato - è a volte l'elevata quantità di disturbi che arrivano... visto che il segnale DCF si basa sostanzialmente sulla durata degli impulsi high, basta un disturbo che faccia oscillare questo segnale per far leggere erroneamente i dati ad Arduino.
Logged

lucadentella.it

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 124
Posts: 9329
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

è a volte l'elevata quantità di disturbi che arrivano... visto che il segnale DCF si basa sostanzialmente sulla durata degli impulsi high, basta un disturbo che faccia oscillare questo segnale per far leggere erroneamente i dati ad Arduino.

Da notare il fatto che per via della bassa frequenza, solo 77.5 kHz, servirebbe una antenna di grandi dimensioni per ottenere una ricezione ottimale del segnale, cosa impossibile da implementare in piccoli dispositivi quali sveglie ed orologi con tutte le conseguenze negative del caso sul segnale.
Non ultima anche la questione che il segnale viene ricevuto per riflessione sulla ionosfera e non direttamente dalla stazione trasmittente.
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21494
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma una bobbina con nucleo in ferrite e un condensatore puó essere una buona antenna anche se é di dimensioni ridotte e non della lunghezza di mezza lunghezza d' onda.
Ciao Uwe
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22651
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Da quel poco che mi ricordo dei tempi in cui usavo il baracchino, un'antenna di ricezione deve essere di lunghezza pari alla lunghezza d'onda del segnale da ricevere o di frazioni di essa.
Quindi, la migliore antenna dovrebbe essere di lunghezza lambda=v/f dove "v" è la velocità di propagazione dell'onda nel vuoto, qui equiparata alla velocità della luce, ossia 300.000 Km/s, e "f" è la lunghezza d'onda in Hz.
Essendo il nostro segnale di 77.5 kHz la formula è:
300.000.000/77.500 = 3870,97 m
Siccome non possiamo mettere un'antenna di 3870,97m attaccata all'Arduino  smiley-lol smiley-lol proviamo con i sottomultipli:
lambda/16384=0,24m
lambda/32768=0,1181m

Ecco, un'antenna di 11 cm circa, esattamente 11,81 cm, dovrebbe essere un buon ricevitore del segnale a 77.5 kHz.
Logged


Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E' arrivato il modulo.
Più tardi lo provo.  smiley-wink
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ottimo, facci sapere come va perché io, provando un paio di sketch in rete, non ho ottenuto risultati validi...
non ho ancora attaccato l'oscilloscopio per capire che segnale riceve ma il dubbio è che sia veramente disturbato
Logged

lucadentella.it

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Funziona!

Code:
Time: 0:1:59 Date: --, 0.0.0 (0)
####
#### Begin of new Minute!!!
####
Finalizing Buffer
Check Parity
parity_min  = 1 / P1 = parity_hour = 0 / P2 = parity_date = 1 / P3 = Parity check OK
-12103: DCF77 Signal detected, Time: 22:57:0 Date: Mo, 5.3.2012 (Winterzeit)

Ho utilizzato la libreria di Manfred Fuchs, opportunamente modificata per funzionare con l'IDE 1.0.
--> http://www.mafu-foto.de/elektronik/arduino/108-arduino-library-fuer-dcf77-funkuhrempfaenger

Ho litigato inizialmente per posizionare l'antenna. Ho dovuto spostare tutto vicino alla finestra.
Il modulo ha un led per verificare la presenza del segnale. Per poterlo decodificare deve lampeggiare con una cadenza di circa 1 secondo.

Adesso devo vedere come sincronizzare l'RTC.  smiley-grin
« Last Edit: March 06, 2012, 07:15:38 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ottimo! mi giri la versione per ide 1.0 che provo anch'io in esterna? smiley-wink
grazie
Logged

lucadentella.it

0
Offline Offline
Faraday Member
**
Karma: 46
Posts: 5851
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io a napoli niente da fare,
ho una radiosveglia e non ha mai preso il segnale.
non contento ho comprato un orologio da polso pagato un bel po' pensando al discorso di stare all'aperto e riuscire a prendere il segnale ma niente.

mi sa che il limite massimo, almeno per questi oggetti che implementano il ricevitore internamente, a cui non e' possibile aggiungere un'antenna, e' roma o anche piu' su.
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Eccola.
Ho aggiunto il solito IF:
Code:
#if (ARDUINO >= 100)
#include "Arduino.h"
#else
#include "WProgram.h"
#include "WConstants.h"
#endif
Mi viene il dubbio che WConstants.h sia una ripetizione.

Ho commentato l'include della seriale:
Code:
//#include "HardwareSerial.h"
perché inclusa in Arduino.h

Ho abilitato il DEBUG della libreria:
Code:
/**
 * Turn debugging on or off
 */
#define DCF_DEBUG 1

Ho commentato alcune righe di codice che davano errore e sinceramente non ho capito  smiley-roll-sweat
Fanno parte del debug.
Code:
#ifdef DCF_DEBUG
    Serial.println("Check Parity");
    Serial.print("parity_min  = ");
    Serial.print(parity.parity_min, DEC);
    Serial.print(" / P1 = ");
    //Serial.print(rx_buffer->P1, DEC);
    Serial.print("parity_hour = ");
    Serial.print(parity.parity_hour, DEC);
    Serial.print(" / P2 = ");
    //Serial.print(rx_buffer->P2, DEC);
    Serial.print("parity_date = ");
    Serial.print(parity.parity_date, DEC);
    Serial.print(" / P3 = ");
    //Serial.println(rx_buffer->P3, DEC);
#endif
Se togli i // da errore per richiamo a funzione ambigua.

La libreria è nel file allegato.
Lo sketch di esempio l'ho compilato con la versione 1.0.

* DCF77.zip (12.38 KB - downloaded 16 times.)
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Full Member
***
Karma: 2
Posts: 203
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io a napoli niente da fare,
ho una radiosveglia e non ha mai preso il segnale.
non contento ho comprato un orologio da polso pagato un bel po' pensando al discorso di stare all'aperto e riuscire a prendere il segnale ma niente.

mi sa che il limite massimo, almeno per questi oggetti che implementano il ricevitore internamente, a cui non e' possibile aggiungere un'antenna, e' roma o anche piu' su.

Mah...
Io ne ho due di questi orologi/sveglia, con anche i sensori di temperatura interna/esterna, presi alla LIDL, e funzionano benissimo. E sono ben più a sud di Napoli o Roma... (cumpari d'u prof. Menniti sugnu!  smiley-grin )
Logged

Milan, Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 338
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
anch'io ho lo stesso modulo dcf e ho riscontrato delle interferenze, non riesco ad utilizzarlo se è acceso il monitor del computer, è un vecchio monitor della Sun, per quanto riguarda la ricezione del segnale è normale che di notte si riceva meglio e più distante è un comportamento tipico delle onde radio.

Alberto
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Aiutoooo!
Io ci sto perdendo la testa da una intera settimana.
Ho letto l'intero post ed in particolare quello che ha scritto PaoloP che è riuscito a farlo funzionare.
Il fatto è che non capisco come mettere in pratica le modifiche che lui ha descritto.
Io ho un DCF77 receiver comprato su Conrad.com, un Arduino Uno rev.3 abito tra Siena e Firenze e ricevo il segnale orario (non avendo un oscilloscopio ho fatto una prova piuttosto empirica... ho messo un led in uscita dal ricevitore DCF con resistenza da 330ohm verso GND e una resistenza di pull-up da 8K2ohm verso +5Vcc di Arduino, il led lampeggia quindi il segnale c'è).
Il fatto è che ad ogni sketc (trovato in rete) che ho provato a compilare ricevo una marea di errori che non sono capace di rimediare.
Potreste per favore indicarmi passo per passo quello che devo fare per riuscire a vedere l'ora esatta sulla porta seriale?
Grazie.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho scaricato ed estratto nella cartella "Libraries" il file DCF77.zip che ha postato PaoloP.
Al momento che vado a verificare lo sketc ricevo questo errore:

Serial_DCF77_Signal.cpp:1:19: error: DCF77.h: No such file or directory
Serial_DCF77_Signal.pde:-1: error: 'DCF77' does not name a type
Serial_DCF77_Signal.cpp: In function 'void loop()':
Serial_DCF77_Signal.pde:-1: error: 'myDCF' was not declared in this scope


Che significa?
Cosa ho sbagliato?
Logged

Pages: 1 [2] 3 4 ... 6   Go Up
Jump to: