Go Down

Topic: Gestione caldaie con switch elettrico da fotovoltaico T.A ed RTC. (funziona!) (Read 3801 times) previous topic - next topic

capitankevin

Innanzitutto un GRAZIE  A TUTTI  a Leo ed a Guglielmo in particolare per i preziosi suggerimenti.
Il sistema sembra ok (finalmente), mi dispiace avervi scassato le ...... ma fatico ancora a capire il regolamento
Dalle stime che ho fatto il risparmio in soldoni è di circa 4 - 5 euro AL GIORNO rispetto alla gestione con i parametri  separati della caldaia e della stufa, non male davvero.
Vi invio il codice completo ( ora che il computer ha una usb libera) è un po da riordinare ed ha un po di serial print da togliere ma avevo fretta di condividere con qualcuno sudate e bestemmie degli ultimi 3 mesi :smiley-sweat: :smiley-sweat: :smiley-sweat:.
Lo schema elettrico lo sto scrivendo in autocad appena pronto lo rendo disponibile.
Naturalmente consigli e domande sono bene accetti.
Una sola cosa vorrei capire perche per le ore ed i minuti non posso usare variabili float?
Ho provato ma non mi funziona. Mah per ora mi accontento.
Ecco il codice spero non pesi troppo

testato

funziona davvero ?
non ho mai visto tanti while in un programma  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

PaoloP


leo72

@Capitankevin:
le OO non le rompe nessuno qui, basta porre le domande in maniera corretta ed una risposta la si ottiene sempre  ;)
Piuttosto: metti sempre una sola istruzione per riga, rendi tutto più leggibile  ;)

testato

leo bello il tuo nuovo avatar, e' il tuo micrologio giusto ?
mi chiedevo, per quanto riguarda questa sfilza di while, ma il "while+break" e' identico all "if" ?
a me sembra di si, ci sono situazioni in cui l'uno non puo' sostituire l'altro ?
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

gpb01


ma il "while+break" e' identico all "if" ?


In che senso ???

Il WHILE ripete in continuazione fino a quando una certa condizione è vera, poi, se occorre, in particolari condizioni, con il break forzi l'uscita anche se la  la condizione continua ad essere vera (stessa cosa puoi fare in un FOR) ... cosa ci trovi nel comportamento di simile al IF ?

Guglielmo
Search is Your friend ... or I am Your enemy !

testato

se apri il file del primo post vedi che e' pieno di while, ogn'uno con break,
quindi ogni riga di codice con il while controlla se e' vera la condizione ed esegue una sola volta il suo contenuto, porprio perche' poi incontra il break, andando quindi avanti a verificare le altre condizioni.
in questo caso quindi mi sembra identico all'IF, che appunto controlla la condizione e la esegue una sola volta uscendo ed andando avanti

diverso e' l'uso del while senza break, dove appunto si aspetta che una delle variabili controllate cambi per poter uscire
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

gpb01


se apri il file del primo post vedi che e' pieno di while, ognuno con break ...


... Ok, non lo avevo guardato !!!  :smiley-eek:

Guglielmo
Search is Your friend ... or I am Your enemy !

PaoloP

L'uso di questo "while interruptus" è interessante ma poco funzionale.
Secondo me, il codice oggetto è poco ottimizzato e risulterà più lento di un IF.


capitankevin

Ragazzi vi ringrazio ma con l'if ho provato e non sono mai riuscito a farlo andare, probabilmente perche non ho ancora capito bene come usarlo. L'ideale sarebbe  scrivere lo sketch usando lo switch su weekday() e poi l' IF  per le ore ed i minuti ma ho tentato molte volte e non cambia le soglie.
Comunque e una parte ancora provvisoria perche dopo aver scritto gli sketch degli altri arduino  dovro creare una interfaccia utente tramite touch utilizzando i dati che arrivano sul  :smiley-roll-sweat:seriale.
Intanto BUON 2014 e tante buone cose a tutti
Per adesso mi accontento di studiare Nayquizt e Bode per il prossimo esame di sistemi :smiley-roll-sweat: :smiley-roll-sweat: :smiley-roll-sweat:

testato

In bocca al lupo per l'esame,
Ho sentito lontanamente parlare di sta gente  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

PaoloP

Ho dato una sistematina al codice, spero la cosa non ti dispiaccia.
Dovresti continuare ad modificare i restanti giorni della settimana nello switch case cosi come ho fatto per domenica e lunedì.

Sto pensando che potresti mettere i dati in un array e fare un controllo ciclico, ti risparmieresti un bel po' di righe di codice e potresti modificare le soglie con facilità.


PaoloP

Avevo dimenticato una cosa...
Original version
Code: [Select]
Dimensione del file binario dello sketch: 13.224 bytes (su un massimo di 32.256 bytes)

Mod version
Code: [Select]
Dimensione del file binario dello sketch: 10.072 bytes (su un massimo di 32.256 bytes)


Mod version IDE 1.5.5  :smiley-mr-green: (I love it)
Code: [Select]
Lo sketch usa 9.964 byte (30%) dello spazio disponibile per i programmi. Il massimo è 32.256 byte.
Le variabili globali usano 518 byte (25%) di memoria dinamica, lasciando 1.530 byte liberi per le variabili locali. Il massimo è 2.048 byte.

leo72


leo bello il tuo nuovo avatar, e' il tuo micrologio giusto ?

Scusami se ti rispondo solo adesso ma mi era sfuggito questo thread.
Sì, è il mio Micrologio, la primissima versione. Mi piaceva usare un qualcosa "di mio", al posto delle solite icone strausate che si trovano in rete.

Quote

mi chiedevo, per quanto riguarda questa sfilza di while, ma il "while+break" e' identico all "if" ?
a me sembra di si, ci sono situazioni in cui l'uno non puo' sostituire l'altro ?

Personalmente non mi piace infarcire il codice di while/break. Un while è un'istruzione che dice al compilatore che il blocco deve essere eseguito diverse volte fino al verificarsi di una condizione, mentre con un if..else dici di fare un controllo singolo. Se usi un while/break per un controllo singolo vuol dire che non hai afferrato bene i costrutti logici  ;)

testato

grazie della conferma, e' quello che pensavo anche io, ma visto che capitankevin vi ringraziava a te e guglielmo dell'aiuto (leggi primo post) mi erano venuti dei dubbi  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up