Pages: [1]   Go Down
Author Topic: presentazione e richiesta di aiuto  (Read 330 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 1
Posts: 51
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,
mi chiamo Maurizio e sono un consulente ICT per mestiere e birraio per passione.

Avevo pensato di usare Arduino per il controllo delle temperature nella prima fase di cottura della birra ma appena inziato sono andato un po in blocco sulla definizione delle funzioni
questo il codice che ho scritto e che se provo a compilare mi da errore:
Code:
//controllo temperature in fase di mash
//definisco tempi e temperature
int prt = 5; //tempo di protein rest
int prc = 52; //temperatura protein rest
int m1t = 5; //primo step tempo di mash
int m1c = 63; //primo step temperatura di mash
int m2t = 5; //secondo step tempo di mash
int m2c = 68; //secondo step temperatura di mash
int mot = 6; //tempo di mash out
int moc = 78; //temperatura di mash out
int ciclo=1;//conto i cicli
int Temp=0;//temperatura del ciclo
int Tempo=0;//tempo del ciclo
#define ITP A1 //temperatura Mosto
#define ITM A2 //temperatura Piastra
#define P 1
#define F1 13
#define F2 12
#define F3 11
#define F4 10
#define FR 9

void setup()
{

  pinMode (P, OUTPUT);//piastra
  pinMode (F1, OUTPUT); //fase1
  pinMode (F2, OUTPUT); //fase2
  pinMode (F3, OUTPUT); //fase3
  pinMode (F4, OUTPUT); //fase4
  pinMode (FR, OUTPUT); //riscaldamento
}
void loop(){
  switch (ciclo){
  case 1:
    Tempo=prt;
    riscaldamento (prc);
  case 2:
    Tempo=m1t;
    riscaldamento (m1c);
  case 3:
    Tempo=m2t;
    riscaldamento (m2t);
  case 4:
    Tempo=mot;
    riscaldamento (mot);
  }
}


int riscaldamento(Temp){ //inizio a riscaldare il mosto per la fase successiva

  if (analogRead(A1)<Temp)
  {
    digitalWrite(P, HIGH);

  }
  if (analogRead(A1)>=Temp)
  {
    ciclo++;
    return ciclo;
  }

}


non ho capito come si definisce le funzione?
Grazie a tutti smiley
« Last Edit: March 21, 2013, 07:31:59 pm by whteice » Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
int riscaldamento(Temp)
Devi definire di che tipo é la variabile Temp.

Perché ha scritto la funzion int riscaldamento(Temp) 2 volte?

Ciao Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 51
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie mille per la risposta  smiley
Temp non è definita in alto insieme alle altre variabili?
La ripetizione è un errore del copia e incolla, chiedo scusa  smiley-razz
correggo smiley
« Last Edit: March 21, 2013, 07:32:31 pm by whteice » Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Temp non è definita in alto insieme alle altre variabili?

Se definisci una funzione devi definire anche il tipo di variabili che passi. Questo perché una variabile definita all'interno di una funzione é un altra variabile che é definita fuori, anche se ha lo stesso nome.
Con
Code:
int riscaldamento(int Temp){};
definisci una variabile Temp che esiste solo all interno della funzione e che non ha che fare niente con la variabile Temp definita all'inizio. Oltre questo puoi passare alla funzione qualsiasi variabile non solo una che si chiama Temp.

Leggiti questo: http://arduino.cc/en/Reference/Scope oppure un altro tutoral riguardante la visibilitá delle variabili ( locali e globali )

Ciao Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 51
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie mille
tutto risolto razie a te smiley
grazie
Logged

Pages: [1]   Go Up
Jump to: