Ardu-Aquarium Controller v. 3.3.1

Salvatore,
dalle domande che fai e da come mi rispondi, mi pare di capire che sei un pochino più alle prime armi di me, ti rispondo volentieri, ma ti chiedo anche di impegnarti un po' di più nel cercare di venire a capo a problemi che ti assicuro sono veramente semplici da risolvere, frequenta le pagine del learning, quelle di reference oppure acquista un buon libro, io ho iniziato con quello di Banzi ad esempio ed ho eseguito pedissequamente tutto lo starter kit ufficiale e l'ho fatto perché non se ne sa mai abbastanza ti assicuro.
In ogni caso eccoti il codice corretto.

byte POMPA1 = 0x40;
unsigned long intervallo = 10000;
unsigned long scambioprec;
boolean statopompa;

void setup() {
  statopompa = true;
  scambioprec = millis();

}
void loop() {
if ((millis() – scambioprec) > intervallo)
	{	if statopompa == true
			{	schrele.write(POMPA1, HIGH);
				statopompa = false;
			}
		else
			{	schrele.write(POMPA1, LOW);
				statopompa = true;
			}
		scambioprec = scambioprec + Intervallo;
	}
}

Ciao :slight_smile:

ciao e scusa di nuovo e vero che sono alle prime esperienze di programmazione ma le avevo provate tutte pure quella che hai postato che e stata la prima prova che o fatto ma mi riporta sempre al solito errore.

error: stray '\' in program
in function 'void loop()':
error: expected ')' before 'u2013'
error: expected ')' at end of input
error: expected statement at end of input
error: expected '}' at end of input

riguardando il libro e questo :

  1. Arduino. La guida ufficiale
  2. Getting Started With Arduino

:cold_sweat: ciao da salvatore.

mancano le parentesi tonde all'if.

ma queste sono le basi del linguaggio, in olre il compilatore e ti dice la riga di errore, e l'ide dovrebbe persino evidenziartela (guarda sempre anche la riga prima e la riga dopo, per esempio controllando se ti sei dimenticato i ; quando ci vanno, o viceversa)

Ti convene prima di tutto prendere mano col linguaggio e poi litigare con il codice scritto da altri :slight_smile:

@riciweb: ho sistemato ola visualizzazione dei grafici e ho notato che la luminosità è simile ad una retta, posto i grafici a breve

manca il ; su:
if statopompa == true

ma da sempre il solito errore,
if((millis() – scambioprec) > intervallo)

manca il ; su:
if statopompa == true

no, al contrario... segui il link che ho in firma, e studiati il C. Almeno leggerti le basi, in un paio di ore e osservando gli esempi di base di arduino sarei in grado di leggere quello che hai scritto finora e pensare: "che cazzone che sono :grin:"

in generale l'unico modo per imparare una disciplina scientifica è sempre quello: RTFM RTFM - Wikipedia

lesto:
...
in generale l'unico modo per imparare una disciplina scientifica è sempre quello: RTFM RTFM - Wikipedia

Ultima legge definitiva: "Quando tutto il resto e' fallito, leggete il manuale delle istruzioni" :stuck_out_tongue: XD

Etemenanki:
Ultima legge definitiva: "Quando tutto il resto e' fallito, leggete il manuale delle istruzioni" :stuck_out_tongue: XD

e poi picchia la testa sul muro ripensando a quanto tempo hai perso, quando facendo cosà avresti risolto tutto con un click. :grin:

Eh, eh, io l'ho cacciato nei casini ed io lo tiro fuori...
lezione per me: prima di postare codice "al volo" verifica!!!

byte POMPA1 = 0x40;
unsigned long intervallo = 10000;
unsigned long scambioprec;
boolean statopompa;

void setup() {
  statopompa = true;
  scambioprec = millis();

}
void loop() {
if ((millis() - scambioprec) > intervallo)
	{	if (statopompa == true)
			{	schrele.write(POMPA1, HIGH);
				statopompa = false;
			}
		else
			{	schrele.write(POMPA1, LOW);
				statopompa = true;
			}
		scambioprec = scambioprec + intervallo;
	}
}

Però salvatore, fai tesoro dei consigli che ti danno, altrimenti veramente passi ore davanti ad una parentesi, accumulando frustrazione per cose banalmente risolvibili...
Ciaoooooo

lesto:
@riciweb: ho sistemato ola visualizzazione dei grafici e ho notato che la luminosità è simile ad una retta, posto i grafici a breve

Ciao Lesto, sono curioso di vederli 8)

ahhhhh mi sono dimenticato!!! dovrai aspettare fino a liìunedì che torno a lavoro!

Ciao Lesto,
mi permetto un OT:
secondo me state dando troppa importanza all'effetto alba/tramonto. In acquario non ha praticamente nessuna utilità se non quella di evitare dei "piccoli" stress quotidiani alle creature che ci vivono. In pratica si attivano luci (strip led nel mio caso) che aumentano la luminosità progressivamente fino ad arrivare all'inizio del fotoperiodo dove si accendono tutte le fonti luminose. Così facendo le specie più timide non risentono troppo dell'accessione immediata di tutte le luci. Discorso inverso per il tramonto. Con dei led RGB si può implementare anche la luce lunare che, anche in questo caso, non ha alcuni impatto sulla salute di pesci e organismi dell'acquario, ma è solo puramente estetica oltre a consentire l'osservazione di specie molto timide e notturne. Se consideri che il fotoperiodo per gli acquari tropicali va dai 6 - 8 ore al giorno non rispecchiando il fotoperiodo dei tropici converrai che è inutile implementare una logica su Arduino (già abbastanza torchiato almeno nel mio caso) per simulare qualcosa di impatto irrilevante per la vita degli organismi dell'acquario.
Una linearità nel fade del sistema di illuminazione, a mio modesto parere, è sufficiente.

mi scuso ancora per l'OT
Saluti

ma anche esteticamente parlando, se metti un PWM lineare che inizia alle 6 del mattino e finisce alle 6 di sera, vedrai la lampada avere abbastanza "potenza" per illumincare solo 4 o 5 ore al giorno contro le attese 12.. Non dico che il lineare sia da buttare via, ma dico che il massimo (o alemnbo metà) illuminazione va raggiunto in 10/20 minuti al massimo, e lo stesso vale per il tramonto, il resto dell'illuminazione (se non si è già al massimo) va distribuito durante la giornata.

Magari è vero che per i pesci non cambia molto, ma immagino che per le alghe il fotoperiodo sia importante

lesto:
immagino che per le alghe il fotoperiodo sia importante

E non sai quanto, oltre al fatto che tale foto periodo va effettuato con illuminazione atta ad imitare nel modo piu vicino possibile lo spettro solare, cosa impossibile, ma ci si può avvicinare.
Voglio pero aggiungere un concetto che lexip non considera e che di fatto è alla base della filosofia dell'avere un'acquario ed è che un acquario in quanto tale, dovrebbe in tutto e per tutto rappresenare un biotopo, che sia amazzonico, indonesiano africano o quello che si vuole; alla base del concetto di biotopo poi c'è che in tutto e per tutto si cerca nei limiti del possibile di ricrearlo anche nelle condizioni ambientali ed ecco che anche l'andamento della curva dell'illuminazione viene ad avere il suo peso.
Tutto questo per dire che non c'è solo l'aspetto ornamentale o l'effetto ricercato a gusto personale in un acquario e per quanto possano alcune cose sembrare superflue ti assicuro che sul lungo periodo poi non lo sono affatto.
Poche persone si dedicano effettivamente ad un acquario con questo piglio, di fatto in effetti moltissimi acquari sembrano più luna park (forzieri, galeoni colonne e scheletri a più non posso) o piccole babele pescifere con accostamenti di pesci che il più delle volte vivono o vivrebbero agli antipodi del pianeta in condizioni altrettanto diverse, ma se è vero che alla fine, in ogni caso, si deve obtorto collo fare i conti con i limiti di Arduino (detto lo strizzato :astonished: ), valutare le possibilità o le strade perscorribili non ha mai fatto male a nessuno, benvengano quindi tutti i suggeriementi, le idee e le considerazioni.

Ciaooooo

Ciao,
non vorrei essere bastonato... per gli OT anche se, in fondo, la consapevolezza dell'ecosistema ci permette di creare la centralina che sia adatta meglio alle esigenze.

E non sai quanto, oltre al fatto che tale foto periodo va effettuato con illuminazione atta ad imitare nel modo piu vicino possibile lo spettro solare, cosa impossibile, ma ci si può avvicinare

esatto anche per questo non è bene esagerare con fade troppo lunghi (specialmente se , come nel mio caso, si usano LED).

Voglio pero aggiungere un concetto che lexip non considera e che di fatto è alla base della filosofia dell'avere un'acquario ed è che un acquario in quanto tale, dovrebbe in tutto e per tutto rappresenare un biotopo, che sia amazzonico, indonesiano africano o quello che si vuole; alla base del concetto di biotopo poi c'è che in tutto e per tutto si cerca nei limiti del possibile di ricrearlo anche nelle condizioni ambientali ...

ti assicuro riciweb che siamo sulla stessa lunghezza d'onda! sono acquarofilo (acqua dolce) da più di un anno con tanti errori alle spalle (inclusi i miscugli) e adesso cerco di gestire al meglio un acquarietto da 40 Litri e mi accingo ad allestirne uno da 100. Diciamo che a livello di malattia acquarofila da 1 a 10 sono ad un 6 con tanto di controlli acqua settimanale, diete variegate con verdure lessate, libri sulle piante e sui biotipi...

concludo senza dilungarmi ancora... Posso parlare solo per il dolce...
Dico solo che, anche senza curve, è possibile migliorare la vivibilità dell'acquario con un semplice Fade che porti alla illuminazione piena nel giro di 20-30 min. al max.
Considera che la luce serve più che altro alle piante...

valutare le possibilità o le strade perscorribili non ha mai fatto male a nessuno, benvengano quindi tutti i suggeriementi, le idee e le considerazioni

non era assolutamente nelle mie intenzioni affermare il contrario... ma è altrettanto costruttivo scambiarsi delle opinioni per capire se realmente utile percorrere quella strada.Ti faccio un esempio... nella mia centralina implementerò la luce lunare per osservare la vita, prettamente notturna, del mio timidissimo pangio... non è che mi metterò lì a creare il software per la simulazione delle fasi lunari, i gg. di luna piena, luna crescente e via dicendo... come ti dicevo, ma è solo il mio modesto parere maturato dalle mie conoscenze, faccio delle considerazioni sulla reale utilità e faccio un rapporto Sforzo/beneficio...

Quanto spazio vi resta libero nella flash?
Se ci fosse almeno qualche KB, si potrebbe implementare uno scheduler semplicissimo che ad un determinato orario si attiva e fa la rampa in salita verso il giorno in un periodo di tempo prestabilito e poi ad un altro orario attiva la rampa di disceva verso la notte.

riciweb:
... un biotopo ...

Perche' vuoi usare un'acquario per allevarci topi biologici ?

( :stuck_out_tongue: XD XD XD XD XD XD XD )

leo72:
Quanto spazio vi resta libero nella flash?
Se ci fosse almeno qualche KB, si potrebbe implementare uno scheduler semplicissimo che ad un determinato orario si attiva e fa la rampa in salita verso il giorno in un periodo di tempo prestabilito e poi ad un altro orario attiva la rampa di disceva verso la notte.

Ciao Leo, questo lo sketch già lo fa, si parlava piuttosto dell'idea di lesto di far in modo che le rampe somigliassero il più possibile all'andamento della luminosità naturale, mettendole in relazione anche all'andamento delle stagioni.
Solo che per il momento non posso fare altro che sopprassedere almeno finché non finisco il tutto e posso in base ai limiti di Arduino che raggiungo decidere cos'altro implementare... :expressionless:

Etemenanki:
Perche' vuoi usare un'acquario per allevarci topi biologici ?
( :stuck_out_tongue: XD XD XD XD XD XD XD )

ROTFL

Ciao anche con la mia dovrei riuscire a fare alba e tramonto... :*
ma io sono praticamente arrivato a saturare tutto :cold_sweat:!!! sono infatti in fase di ottimizzazione. Nel frattempo PCB stampato, devo solo saldare i componenti e scaricare il firmware.

Saluti

Magari lo saprete anche, ma si risparmiano diverse centinaia di byte usando gli accessi diretti ai registri di sistema al posto delle digitalWrite e delle digitalRead. Per le letture analogiche c'è la possibilità di fare altrettanto, anche se è un pò più complesso che nel precedente caso.

Se accedi tramite registri il codice non è più portabile tra modelli i diversi di Arduino: UNO, MEGA, Leonardo, ecc.