.: robotitaly.NET :. - la community italiana sulla robotica  

Vai indietro   .: robotitaly.NET :. - la community italiana sulla robotica > Microcontrollori > PICAXE

PICAXE Forum dedicato ai microcontrollori programmabili in Basic 'PICAXE'

Rispondi
 
Strumenti della discussione ModalitÓ di visualizzazione
  #1  
Vecchio 11-07-2014, 08:02 PM
luke luke non Ŕ collegato
Roboter Attivo
 
Registrato dal: Mar 2007
Messaggi: 50
predefinito rtc clock DS1307

Ciao a tutti, ho un picaxe 28 che mi gestisce una caldaia con annesse pompe e valvole.
vorrei aggiumgere un rtc ds1307 per fare in modo che il programma ad una certa ora mi esegua determinati comandi.
Se non erro oltre al suo quarzo, la batteria, devo collegare i due pin SCL e SDA.
Come faccio a regolare l'ora dell'rtc e farlo leggere dal picaxe?

questo che segue Ŕ il programma nel Picaxe, alle ore 22:00 devo fargli eseguire CALDOFF, alle 01:00 CALDON, ALLE 02:00 nuovamente CALDOFF e alle 04:00 CALDON

setfreq m8

symbol ventola = 0
symbol pompacc = 1
symbol pboiler = 2
symbol valvgas = 3

let b5 = 20 'temp esterna
let b6 = 65 'temp partenza p coll
let b7 = 90 'temp sovratemp
let b8 = 56 'temp min boiler
let b9 = 58 'temp max boiler
let b10 = 65 '2░ temp max boiler
let b11 = 80 '3░ temp max boiler
let b12 = 85 ' temp max raggiungibile boiler

main:


accendi:
serout B.7,n1200,(254,1)
serout B.7,n1200,(254,128)
serout B.7,n1200,("Gestione caldaia ",cr,lf)
serout B.7,n1200,(254,192)
serout B.7,n1200,(" Picaxe 28x1 ",cr,lf)
pause 6000
serout B.7,n1200,(254,1)
serout B.7,n1200,(254,128)
serout B.7,n1200,("Charruaz Luca ",cr,lf)
serout B.7,n1200,(254,192)
serout B.7,n1200,("V. 1.6 mar 2014 ",cr,lf)
pause 6000

testrele:
high ventola
pause 300
low ventola
pause 300
high pompacc
pause 300
low pompacc
pause 300
high pboiler
pause 300
low pboiler
pause 300
high valvgas
pause 300
low valvgas




caldoff:
readtemp 5,b2 'legge sonda fumi
readtemp 6,b1 'legge sonda collettore
readtemp 7,b0 'legge sonda boiler sanitaria
serout B.7,n1200,(254,128)
serout B.7,n1200,("Temp fumi ",#b2,cr,lf)

low pboiler
low ventola
low pompacc



'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''
caldon:
high ventola
high valvgas
low pompacc
low pboiler
readtemp 7,b0
readtemp 6,b1
readtemp 5,b2
if pin0=1 then gosub tempest
if pin3=1 then caldoff
if b1<b6 then low pboiler endif
if b1<b6 then high valvgas endif
if b1>b6 then pompaccon
serout B.7,n1200,(254,128)
serout B.7,n1200,("Temp Coll ",#b1,cr,lf)
pause 4000
serout B.7,n1200,(254,128)
serout B.7,n1200,(" ventola ON ",#b2,cr,lf)
serout B.7,n1200,(254,192)
serout B.7,n1200,("Temp Boiler ",#b0,cr,lf)
pause 4000
serout B.7,n1200,(254,192)
serout B.7,n1200,("Temp fumi ",#b2,cr,lf)
pause 1000
goto caldon

pompaccon:
readtemp 6,b1 'legge sonda collettore
readtemp 7,b0 'legge sonda boiler sanitaria
readtemp 5,b2 'legge sonda fumi
high ventola
if pin0=1 then gosub tempest
if pin3=1 then caldoff
high pompacc
low valvgas

if pin0=1 then gosub tempest

if b1<b6 then caldon


serout B.7,n1200,(254,128)
serout B.7,n1200,("Temp Coll ",#b1,cr,lf)
pause 4000
serout B.7,n1200,(254,128)
serout B.7,n1200,("ventola ON ",#b2,cr,lf)
pause 4000
serout B.7,n1200,(254,128)
serout B.7,n1200,(" Temp fumi ",#b2,cr,lf)
pause 4000
serout B.7,n1200,(254,128)
serout B.7,n1200,("Pompa circ ON",#b2,cr,lf)
serout B.7,n1200,(254,192)
serout B.7,n1200,("Temp Boiler ",#b0,cr,lf)
pause 4000
if pin0=1 then gosub tempest
if pin3=1 then caldoff
if b1>b12 then maxtemp
if b1>b7 then sovrat
if b0 <b8 then pboileron

pboileroff:
low pboiler
if b1>b12 then maxtemp
goto pompaccon

pboileron:
high pboiler
serout B.7,n1200,(254,192)
serout B.7,n1200,("P Boiler ON",#b0,cr,lf)
if b1>b12 then maxtemp
goto pompaccon


maxtemp:
low ventola
high pompacc
serout B.7,n1200,(254,128)
serout B.7,n1200,("Temp Max ",#b1,cr,lf)
serout B.7,n1200,(254,192)
serout B.7,n1200,("Temp fumi ",#b2,cr,lf)
pause 3000
serout B.7,n1200,(254,192)
serout B.7,n1200,(" ventola OFF ",cr,lf)
readtemp 6,b1 'legge sonda collettore
if b1>b7 then sovrat
if b1>b12 then maxtemp

if b1<b12 then pompaccon
if pin0=1 then gosub tempest





sovrat:
low ventola
high pompacc
serout B.7,n1200,(254,128)
serout B.7,n1200,("Temp Coll ",#b1,cr,lf)
serout B.7,n1200,(254,192)
serout B.7,n1200,("allarme temperatura",cr,lf)
pause 3000
readtemp 7,b0 'legge sonda boiler sanitaria
if b0<b10 then high pboiler endif
if b0>b11 then low pboiler endif
readtemp 6,b1 'legge sonda collettore

if b1>b7 then sovrat
if b1>b12 then maxtemp
if b1<b12 then pompaccon
if pin0=1 then gosub tempest
if b0>b11 then allarme
goto sovrat



allarme:
low pboiler
low ventola
high pompacc
serout B.7,n1200,(254,128)
serout B.7,n1200,(" allarme ",cr,lf)
serout B.7,n1200,(254,192)
pause 30
serout B.7,n1200,("evaquare locale ")
readtemp 7,b0 'legge sonda boiler sanitaria
if b0>b11 then allarme
goto sovrat

tempest:
if b2>127 then nega
serout B.7,n1200,(254,128)
serout B.7,n1200,("Temp fumi ",#b2,cr,lf)


pause 5000
if pin0=1 then tempest

return
nega:
let b2 = b2 - 128 Ĺ ajustar el valor negativo
serout B.7,n1200,(254,128)
serout B.7,n1200,("Temp fumi ",#b2,cr,lf)
serout B.7,n1200,(254,192)
serout B.7,n1200,(" -",#b2,cr,lf)
pause 5000
if pin0=1 then tempest

return


Ho anche un display collegato.
Ringrazio tutti
Ciao
Rispondi quotando
  #2  
Vecchio 11-09-2014, 08:15 PM
L'avatar di egimil
egimil egimil non Ŕ collegato
Roboter Attivo
 
Registrato dal: Mar 2006
Messaggi: 173
Blog Entries: 2
Invia un messaggio tremite Skype a egimil
predefinito Ds1307

Intanto il DS1307 lo puoi comandare solo con il protocollo i2C, mentre tu leggendo il listato lo vorresti comandare in seriale e questo non e' possibile.
Mi piacerebbe vedere lo schema elettrico del collegamento al RTC.

Le prime righe del datasheet dicono:
Address and data are transferred serially through an I 2 C*, bidirectional bus.
Devi rivedere il progetto.
Saluti
Rispondi quotando
  #3  
Vecchio 11-10-2014, 08:54 PM
luke luke non Ŕ collegato
Roboter Attivo
 
Registrato dal: Mar 2007
Messaggi: 50
predefinito

Ciao Egimil, nel listato io non ho ancora previsto l'rtc.
Lo schema di collegamento del l'rtc... Io ho guardato in rete e ho trovato uno schema di collegamento dove gli unici due pin verso il Pic sono SDA e SCL.
Rispondi quotando
Rispondi

Segnalibri

Strumenti della discussione
ModalitÓ di visualizzazione

Regole d'invio
Non puoi inserire discussioni
Non puoi inserire repliche
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code Ŕ attivo
Le smilie sono attive
Il codice IMG Ŕ attivo
il codice HTML Ŕ disattivato

Salto del forum


Tutti gli orari sono GMT. Attualmente sono le 11:34 PM.


Powered by vBulletin versione 3.8.7
Copyright ©: 2000 - 2018, Jelsoft Enterprises Ltd.