Menu:

Implementazioni del PPTEA



Implementiamo il REAL TIME CLOCK DS1307

Il DS1307 (REAL TIME CLOCK) è un dispositivo che permette mediante una piccola batteria a bottone di mantenere l'orario anche se il PPTEA non viene alimentato.
Il PPTEA ha la possibilità di ricevere data ed orario mediante il comando DATE.
L'orario del dispositivo viene aggiornato direttamente dal Compilatore, basta premere un pulsante e si allinea con data ed ora del PC.
Si sfrutta la linea del BUS I2C, quindi non si occupano ulteriori pin.

Questa è la discussione originale.



Esempio:

10 REM REAL TIME CLOCK L'OROLOGIO DEL PPTEA DALLA VERSIONE PPTEA 2.1
20 LCDCLEAR
32 DAT=DATE
35 LCDPOS=&H11
36 D=DAT
38 USBOUT=D
39 WAITS 1
40 goto 32

Il formato può essere variato mediante il comando FDATE:

Valore Formato Orario:
FDATE=0 gg/mm/aa hh:mm:ss (Data e Orario)
FDATE=1 hh:mm:ss (Solo Orario)
FDATE=2 gg/mm/aa (Solo Data)
FDATE=3 gg/mm/aa gds hh:mm:ss (Data, GiornoDellaSettimana e Orario)
FDATE=4 ss (Secondi trascorsi dalla mezzanotte)
FDATE=5 ss (Secondi trascorsi dall'inizio della settimana)
FDATE=6 ss (Secondi trascorsi dall'inizio del mese)
FDATE=7 ss (Counter, incrementa i secondi dal comando SDATE)
FDATE=8 ss (Timer, decrementa i secondi dal comando SDATE)
Dove gg=giorno, mm=mese, aa=anno, hh=ora, mm=minuti, ss=secondi, gds=giorni della settimana=Lun, Mar, Mer, Giov, Ven, Sab, Dom.

Facciamo un esempio pratico e per cominciare inseriamo alcune cose come realizzare
un dispositivo che indichi la temperatura media e l'orario su un display (STAND-ALONE).
Il tutto occupa meno di 255 token quindi non è necessaria l'eprom esterna.

Questo è il file ".eab" del Termostato.
Scarica il file (ZIP)

CODICE:
05 'Codice PROGRAMMABILE SUL PPTEA DALLA VERSIONE 2.1
10 DIM MEM(20) as WORD
12 GOSUB 300 ' SALTO ALLA PRESENTAZIONE
13 LCDPOS=&H11
14 'LCDWRITE="ORARIO "
15 VAL=CADS1
16 'USBOUT=VAL &"*"
20 TEMP=VAL*5.0/1023
21 TEMP*=100
22 'USBOUT="I="&TEMP & "/"
23 IND=(INDICE mod 20) +1
24 MEM(IND)=TEMP *10
25 INDICE++
26 GOSUB 100 'FACCIO LA MEDIA
28 ' rem
29 STRTEMP=left(T&"",4)
30 'USBOUT="T="&STRTEMP & chr(223)&"C"
31 'LCDPOS=&H11
32 DAT=DATE
33 GIORNO=left(DAT, 8)
34 ORA=right(dat,8)
35 LCDPOS=&H19
36 LCDWRITE=giorno
37 LCDPOS=&H21
38 LCDWRITE=ORA
39 LCDPOS=&H2B
40 LCDWRITE=STRTEMP
41 WAITS 1
42 goto 15

100 '----CALCOLA LA MEDIA DEGLI ULTIMI VALORI
110 CLR G
120 T=0.0
125 G++
130 T+=MEM(G)
150 if G<20 then 250
200 T/=G
220 T/=10
240 return
250 if G<indice then 125 else 200
300 ' REM
325 LCDCLEAR
330 LCDPOS=&H12
350 LCDWRITE="PPTEA"
355 WAITS 1
360 LCDPOS=&H2B
365 LCDWRITE="XX.X"&chr(223)&"C"
370 RETURN



Il DS1307 dovrebbe costare sui 3 euro, ha 8 pin, un quarzo da 32.768 khz ed una batteria da 3V a bottone, è molto più complicata la descrizione che l'implementazione.



Questo è lo schema e a fianco si può vedere (poco e male) la mia implementazione su mille fori.


I puristi dell'estetica possono sempre acquistare questo modulino:








Valid XHTML 1.0 Strict



[ Back to top ] [ Home ]