Go Down

Topic: Ardu-Aquarium Controller v. 3.3.1 (Read 253036 times) previous topic - next topic

elleeffeimpianti

Ciao a tutti
Dopo un lungo periodo sono riuscito a realizzare questo splendido progetto ma ho un piccolo problema con la lettura Delle temperature. Ogni tanto mi dà un valore negativo -51.50 e a volte anche -51.25.
Dopo svariate volte che appare questo errore il sistema si blocca.
Scusate per gli errori ma sto scrivendo dal telefono.
Qualcuno mi può aiutare?

gpb01

#946
Sep 23, 2017, 07:39 pm Last Edit: Sep 23, 2017, 07:39 pm by gpb01
>elleeffeimpianti: ... nonostante tu sia un utente di vecchia data, NON c'è un tuo post di presentazione :smiley-confuse: , per cui ... nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO (... che, in questi anni, è stato aggiornato) ... Grazie.  :)

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

elleeffeimpianti

Buongiorno a tutti
Scusate ancora, ma pensavo proprio di essermi già presentato, in effetti ho avuto delle difficoltà nel postare la presentazione, ogni volta che premevo post mi ritornava nella schermata delle presentazioni, ma la mia presentazione non veniva pubblicata. Comunque adesso dovrei avercela fatta ed in teoria posso chiedervi un grosso aiuto che mi perseguita ormai da settimane.
Quindi comincio a descrivervi il progetto che ho realizzato grazie a Rici:
a differenza del progetto iniziale, ho usato Arduino Mega e non Uno, ho maggiorato le uscite pwm da 3 a 4, le altre le uso per azionare osmosi inversa e co2.
Ho implementato il progetto con accensione e spegnimento di led quando apro la porta del mobile ed un carico automatico dell'acqua azionato da due sensori uno di minima e uno di massima, non ho voluto usare il sensore di livello proposto da Rici.
Ho provato a cambiare la lettura della sonda di temperatura con un sensore solo, spero che lo sketch sia corretto!!!!
Inoltre ho inserito la lettura del ph con schedina acquistata in rete (progetto da rivedere perché se la sonda è immersa in un bicchiere funziona perfettamente, quando invece la inserisco in vasca i valori sballano completamente, sicuramente ci saranno problemi di impedenza)

Detto questo  mi ritrovo, adesso, i seguenti problemi:
continua a comparire, solo durante la fase di accensione delle luci, l'errore della sonda  -127.00 con la configurazione attuale, mentre con lo schema di due sonde, come il progetto di Rici mi appaiono addirittura tre errori -51.50, -51.25, -51.15
Inoltre, quando tolgo tensione ai circuiti e alimentando nuovamente il tutto, il settaggio della temperatura ritorna a 5.5 e le ipostazioni dei parametri della linea con pwm 4 sono sballati 48:00 ora inizio e ora fine 21:488 accendendo la luce al 24%.
Ho collegato la sonda al piedino 4 di Arduino Mega che è un ingresso pwm, è giusto?
Su Arduino 1 è collegata così!!!
Le mie considerazioni sono le seguenti:
il problema della sonda è collegato in qualche maniera sicuramente alla pwm4 e anche inserendo il famigerato GOTO continua a dare errori.
Spero siate clementi e possiate darmi un aiutino, sono veramente un disastro!!!

un'ultima cosa, volevo allegarvi lo sketch, ma non trovo il tasto per allegarlo

elleeffeimpianti

ho trovato come allegare lo sketch, eccolo, scusate ancora ma sono un disatro :)  :)

Mastro74

Detto questo  mi ritrovo, adesso, i seguenti problemi:
continua a comparire, solo durante la fase di accensione delle luci, l'errore della sonda  -127.00 con la configurazione attuale, mentre con lo schema di due sonde, come il progetto di Rici mi appaiono addirittura tre errori -51.50, -51.25, -51.15

Se cerchi a ritroso (non molte pagine credo) trovi la soluzione, io ho avuto lo stesso problema col -127.00
$ cd /pub; more tequila
$ who | grep -i blonde | date && (cd $HOME; chmod -f -R 755 blonde/; unzip; touch; strip; finger; mount; yes; umount; make clean); sleep

elleeffeimpianti

Si ho provato ad usare la funzione goto, ma niente, non funziona.
Ho allegato il codice in modo che voi esperti mi indicate se è stato usato in maniera corretta.

Mastro74

Si ho provato ad usare la funzione goto, ma niente, non funziona.
Ho allegato il codice in modo che voi esperti mi indicate se è stato usato in maniera corretta.
Leggi il post #936 li mi hanno suggerito metodo migliore.
$ cd /pub; more tequila
$ who | grep -i blonde | date && (cd $HOME; chmod -f -R 755 blonde/; unzip; touch; strip; finger; mount; yes; umount; make clean); sleep

elleeffeimpianti


michele73

Ciao elleeffeimpianti,
 se hai impostato quattro linee per le luci vuol dire che hai i valori di Eeprom impostati da 1 a 48, sostituisci il valore di "byte Tempind = 37;" con il valore = 49 che è il nuovo valore della EEprom ma prima fai un reset di memoria.

michele73

Ri Ciao elleeffeimpianti,
 ma non capisco bene ma hai fatto quattro linee o sei nello sketch perché allora cambia tutto devi contare 12 Pos per 4 o 6 per avere la posizione giusta di memoria per la temperatura.
Un altra cosa prova a scollegare la resistenza sulla sonda di temperatura perché sul mio progetto non ancora ultimato si per il tempo e il denaro, mi dava dei problemi.

elleeffeimpianti

Ciao Michele 73
La funzione Eeprom non l'ho ancora tanto studiata e adesso mi metto subito per capire.
Comunque ho usato 4 linee per le luci, mentre le altre tre uscite tengo il fotoperiodo a 1 e funzionano solamente in in off o con orologio senza la dimmerata.
Ho fatto questo perché avevo necessità di comandare dell' uscite in in on off manuale od automatico in maniera provvisorio perché queste uscite non so se in futuro mi servono per le luci.

Quindi adesso mi metto subito e vi saprò dire.

Grazie per ora, il vostro aiuto è veramente molto indispensabile:)  :)  :)

P.S adesso che mi fai pensare, ricordo di aver letto da qualche parte che Rici scriveva di espandere in qualche maniera le Eeprom se bisognava aggiungere delle linee. Adesso lo cerco.

michele73

Ciao a tutti,
  premesso sto impazzendo vi spiego il mio problema:
Rici nella programmazione dell'eeprom la scritta cosi: byte(linea, IndBase, colonna);
in pratica "linea" sta per il n. di linea luci, "IndBase" sta per eeprom e "colonna" sta per la posizione e qui se ho capito bene ok.
Ma se voglio creare una struttura nuova di dati di memoria che parte dalla posizione 60 come posso fare, voi direste continua con la "linea" si ok, ma i dati che mi servono no sono 12 come in quella delle luci ma cono solo 5 per 5 linee diverse. Ma se continuo da quello già creato partirei da un dato di controllo dal n.5 e poi non si capirebbe nelle impostazioni cosa stai compilando.
In pratica come posso rinominare IndBase con la posizione 60 di cella? o altro

Vi ringrazio

riciweb

Ciao a tutti.
@elleeffeimpianti: vedo che michele73 ti ha già indirizzato corretamente.

@michele73: colonna è una variabile dichiarata ma mai utilizzata, "indbase" invece assume un valore diverso ogni volta calcolato in base al numero di linea che utilizzi, quindi se hai visto quì:

Code: [Select]
byte Linea1 = 0;
byte Linea2 = 1;
byte Linea3 = 2;

 
e ad esempio quì:

Code: [Select]
IndBase = linea * 12;
Plafo[linea].Funzionamento = EEPROM.read(IndBase+11);
if (Plafo[linea].Funzionamento == 2)
{ Plafo[linea].OraOn = EEPROM.read(IndBase+1);
Plafo[linea].MinOn = EEPROM.read(IndBase+2);
Plafo[linea].OraOff = EEPROM.read(IndBase+3);
Plafo[linea].MinOff = EEPROM.read(IndBase+4);
Plafo[linea].OreFad = EEPROM.read(IndBase+5);
Plafo[linea].MinFad = EEPROM.read(IndBase+6);
Plafo[linea].OraFA = EEPROM.read(IndBase+7);
Plafo[linea].MinFA = EEPROM.read(IndBase+8);
Plafo[linea].OraIT = EEPROM.read(IndBase+9);
Plafo[linea].MinIT = EEPROM.read(IndBase+10);
Plafo[linea].MaxFading = EEPROM.read(IndBase+12);


puoi verificare ciò che ti ho appena scritto,
ovviamente i dati delle luci se si aumenta il numero delle linee vanno ad accavallarsi con quello della temperatura che quindi deve avere il suo indirizzo aggiornato.

Spero di esser stato chiaro.

Riccardo.

Riccardo

michele73

Ciao Rici,
 grazie per la spiegazione ma questa cosa l'avevo capita, la mia richiesta era come creare una nuova struttura di dati partendo dalla posizione 60 per poi continuare con 61 ecc. se si può fare e come grazie mille.
Questi dati non appartengono alla Linea Luci.


riciweb

Riccardo

Go Up