Go Down

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

lesto

ma infatti io proponevo di usare una parabola, che come hai visto sono 3 variabili da tenere memorizzare, il calcolo della y lo fai una volta al minuto e sei a posto...

poi comabiando le 3 variabili se vuoi imiti anche le stagioni, io posso fornirti le curve reali da quì a circa 2 o 3 mesi fà :)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

riciweb

E sicuramente una bella features da implementare, ma stranamente oggi riesco ad avere tempo per postare, cosa che non mi riusciva da mesi, quindi per ora mi dedico a cercare di finire il progetto (tempo a disposizione permettendo) così come l'ho pensato, una volta finito pensero anche a tutti i possibili miglioramenti e sicuramente terrò conto di questo tuo suggerimento, l'idea mi piace davvero, ma ora non ce la faccio.

Ciao Riccardo.
Riccardo

#392
Oct 10, 2013, 05:31 am Last Edit: Oct 11, 2013, 09:08 pm by salvatore77 Reason: 1
ciao a tutti scusate per la mia ignoranza nella programmazione. io dovrei pilotare delle pompe di movimento nel acquario,
o scritto due righe di programma sembra che funzioni ma fa smette di funzionare tutte le altre funzioni quale errore sto commetto e sopratutto chi mi può dare delle indicazioni dove inserire questa funzione. ringrazio di nuovo a tutti.

Code: [Select]

byte POMPA1 = 0x40;
void setup() {          
   schrele.write( P6, LOW); // attiva il relé / chiude i contatti
 schrele.write( P6, HIGH);  // disattiva il relé / apre i contatti    
}
void loop() {
 schrele.write(P6, HIGH); // disattivare pompa 1
 delay(1000);              
 schrele.write(P6, LOW); // attivare pompa 1
 delay(10000);
}



salvatore

riciweb

#393
Oct 10, 2013, 07:48 am Last Edit: Oct 10, 2013, 07:50 am by riciweb Reason: 1
Ciao Salvatore77,
per inserire codice nei post, usa il tasto con il cancelletto la prossima volta  ;)
in ogni caso il codice che hai scritto fa esattamente quello che deve fare, il delay infatti è bloccante, il processore non fa nulla se non trascorre prima il tempo da te inserito, per fare quello che tu dici, si fanno i confronti utilizzando millis(), inoltre le due istruzione inserite nel setup() non servono a nulla nel tuo caso, fanno solo scattare il relé, assegnare poi ad una variabile un valore e non usarla a poco senso (POMPA1), ti ho buttato giù due righe al volo al volo, dovrebbero funzionare, altrimenti gli ridò uno sguardo in serata, tu però studiatele un secondino.  :D
Ciao.

Code: [Select]

byte POMPA1 = 0x40;
unsigned long intervallo = 10000;
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;
}
}
Riccardo

ciao
riciweb ti posso disturbare?

riciweb

Non siamo mica al telefono,
questo è un forum, se hai domande da fare chiedi, può risponderti chiunque...
Riccardo

scusa o visto che eri olla in  io o provato a inserire il programma e mi da sempre il solito errore.

scusa sempre ma io di programmazione ne so poco.
l'errore che mi da e  linea

if ((millis() - scambioprec) > intervallo)

(scambiopec' was not declared in this scope)

riciweb

Ecco appunto ero troppo di corsa...
Inserisci nelle dichiarazioni delle variabili:
Code: [Select]
unsigned long  scambioprec;

Ciao e buona serata.
Riccardo

#398
Oct 10, 2013, 08:54 pm Last Edit: Oct 10, 2013, 10:47 pm by salvatore77 Reason: 1
in questo modo
Code: [Select]
byte POMPA1 = 0x40;

unsigned long intervallo, scambioprec; = 10000;


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;
}
}

riciweb

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.

Code: [Select]
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  :)
Riccardo

#400
Oct 11, 2013, 03:45 pm Last Edit: Oct 12, 2013, 09:55 am by leo72 Reason: 1
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.

Code: [Select]
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


 :smiley-roll-sweat:  ciao da salvatore.

lesto

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 :)

@riciweb: ho sistemato ola visualizzazione dei grafici e ho notato che la luminosità è simile ad una retta, posto i grafici a breve
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

manca il ; su:
if statopompa == true

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

lesto

Quote
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  :smiley-mr-green:"

in generale l'unico modo per imparare una disciplina scientifica è sempre quello: RTFM http://it.wikipedia.org/wiki/RTFM
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Etemenanki


...
in generale l'unico modo per imparare una disciplina scientifica è sempre quello: RTFM http://it.wikipedia.org/wiki/RTFM


Ultima legge definitiva: "Quando tutto il resto e' fallito, leggete il manuale delle istruzioni" :P XD
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

Go Up