Se sei già registrato           oppure    

Orario: 13/05/2024 21:56:59  

 

Energia Alternativa ed Energia Fai Da Te > Arduino

VISUALIZZA L'ALBUM

Pagine: (10)   1   2   3   4   5   6   [7]   8   9   10    (Ultimo Msg)


Controllo termocamino
FinePagina

dani9191

Avatar
GigaWatt


Gruppo:Utente
Messaggi:780

Stato:



Inviato il: 25/07/2017 15:43:15

Questo è il codice completo

#include "DHT.h"                 // DHT & AM2302 library
#include "Nextion.h"             //librearia nextion
#include <SoftwareSerial.h>      //libreria seriale
#include <OneWire.h>             //libreria per ds18b20
#include <DallasTemperature.h>   //libreria per conversione valore
#include "max6675.h"

int ktcSO = 52;                  //sonda fumi max6675
int ktcCS = 53;
int ktcCLK = 51;

int CktcSO = 47;                  //sonda camera max6675
int CktcCS = 49;
int CktcCLK = 45;

MAX6675 ktcF(ktcCLK, ktcCS, ktcSO);
MAX6675 ktcC(CktcCLK, CktcCS, CktcSO);

#define ONE_WIRE_BUS_1 12          // Il terminale data del sensore H2O TERMO è connesso alla porta 12 di Arduino
#define ONE_WIRE_BUS_2 3          // Il terminale data del sensore H2O PUFFER è connesso alla porta 12 di Arduino

#define DHTTYPE DHT22            // DHT 22  (AM2302)
#define aspiratore 4             //imposto il pin 4 per l'aspiratore
#define coclea 5                 //imposto il pin 5 per la coclea
#define circolatore 6            //imposto il pin 6 per il circolatore
#define ventola 7                //imposto il pin 7 per la ventola
#define accenditore 8            //imposto il pin 8 per l'accenditore
#define DHTPIN 9

SoftwareSerial HMISerial(10, 11);// Nextion TX to pin 10 and RX to pin 11 of Arduino`

OneWire oneWire_in(ONE_WIRE_BUS_1);
OneWire oneWire_out(ONE_WIRE_BUS_2);

DallasTemperature sensor_inhouse(&oneWire_in);
DallasTemperature sensor_outhouse(&oneWire_out);

DHT dht(DHTPIN, DHTTYPE);   

int txh2o;                      //temperatura di soglia termocamino
int Th2oMax;                     //temperatura di soglia + 6 si massima
int Tfumi;                      //temperatura rilevata fumi
int Tcamera;                    //temperatura rilevata camera combustione
int umidita;                    //umidità rilevata
int tempamb;                    //temperatura rilevata ambiente
int temph2o;                    //temperatura acqua rilevata
int tempPuffer;                 //temperatura rilevata puffer
int allTempFumi=200;            //allarme temperatura fumi
int percentuale;                //percentuale aspiratore
int pwmfumi;                    //variabile per l'aspiratore
int Vcoclea=LOW;                //variabile velocita coclea
int Vstato=0;                     //lettura stato interrutore ON/OFF
int TcocleaOn;                    //variabile per mandata pellet ON
int TcocleaOff;                    //variabile per mandata pellet Off
int valCoclea=1;                //variabile per capire se in stato di accensione
int TempOk=1;                  //variabile per conoscere lo stato dell'acqua

unsigned long OldStartCoclea = 0;
unsigned long VarMillis = 0;
unsigned long OldStartAccenditore = 0;
unsigned long DeltaRestartMillis = 0;
unsigned long DeltaRestartMillis1 = 0;

boolean PrimoCicloON = true;
boolean CocleaCicloON =true ;


void t8PopCallback(void *ptr);   //ambiente page home 0  
void t9PopCallback(void *ptr);   //ambiente page home 0  
void n0PopCallback(void *ptr);   //ambiente page home 0
void n1PopCallback(void *ptr);   //fumi page home 0
void n4PopCallback(void *ptr);   //fumi page home 0
void n2PopCallback(void *ptr);   //T.CAMERA COMBUSTIONE page home 0
void n3PopCallback(void *ptr);   //acqua page home 0
void n5PopCallback(void *ptr);   //UMIDITA page home 0
void n6PopCallback(void *ptr);   //TEMPERATURA RILEVATA PUFFER
void n30PopCallback(void *ptr);  //bagno page bagno 2
void b31PopCallback(void *ptr);  //bagno - page bagno 2
void b0PopCallback(void *ptr);  //INTERRUTTORE ON/OFF
void b32PopCallback(void *ptr);  //bagno + page bagno 2


 
NexNumber n0 = NexNumber(0, 1, "n0"); // ambiente
NexNumber n1 = NexNumber(0, 5, "n1"); // fumi
NexNumber n2 = NexNumber(0, 20, "n2"); // T.CAMERA COMBUSTIONE
NexNumber n3 = NexNumber(0, 3, "n3"); //acqua temp rilevata
NexNumber n4 = NexNumber(0, 8, "n4"); //aspiratore
NexNumber n5 = NexNumber(0, 11, "n5");//UMIDITA
NexNumber n6 = NexNumber(0, 13, "n6");//H2O PUFFER
NexNumber n30 = NexNumber(1, 3, "n30");//acqua temp impostata
NexButton b0 = NexButton(0, 22, "b0");//INTERRUTTORE ON/OFF
NexButton b31 = NexButton(1, 1, "b31");//set acqua
NexButton b32 = NexButton(1, 2, "b32");//set acqua

NexText t8 = NexText(0, 11, "t8"); 
NexText t9 = NexText(0, 14, "t9");
NexText t25 = NexText(2, 8, "t25");//CANDELETTA ON/OFF
NexText t26 = NexText(2, 9, "t26");//VENTOLA ON/OFF
NexText t27 = NexText(2, 10, "t27");//POMPA ON/OFF
NexText t28 = NexText(2, 11, "t28");//COCLEA ON/OFF
NexText t29 = NexText(2, 12, "t29");//aspiratore ON/OFF
NexNumber n12 = NexNumber(2, 19, "n12"); // MILLIS
NexNumber n13 = NexNumber(2, 21, "n13"); // TEMPO COCLEA
NexNumber n14 = NexNumber(2, 23, "n14"); // TEMPO CANDELETTA
char buffer[100] = {0};

NexTouch *nex_listen_list[] = 
{
    &t8,
    &t9,
    &t25,
    &t26,
    &t27,
    &t28,
    &t29,
    &n0,
    &n1,
    &n2,
    &n3,
    &n4,
    &n5,
    &n6,
    &n12,
    &n13,
    &n14,
    &n30,
    &b0,
    &b31,
    &b32,
    NULL
};

void t8PopCallback(void *ptr)
{
   
}
void t9PopCallback(void *ptr)
{
   
}
void t25PopCallback(void *ptr)
{
   
}
void t26PopCallback(void *ptr)
{
   
}
void t27PopCallback(void *ptr)
{
   
}
void t28PopCallback(void *ptr)
{
   
}
void t29PopCallback(void *ptr)
{
   
}
 void n0PopCallback(void *ptr)
{
    
}
void n1PopCallback(void *ptr)
{
    
}
void n2PopCallback(void *ptr)
{
    
}
 void n3PopCallback(void *ptr)
{
   
}
void n4PopCallback(void *ptr)
{
    
}
void n5PopCallback(void *ptr)
{
    
}
void n6PopCallback(void *ptr)
{
    
}
void n12PopCallback(void *ptr)
{
    
}
void n13PopCallback(void *ptr)
{
    
}
void n14PopCallback(void *ptr)
{
    
}
 void n30PopCallback(void *ptr)
{
  
}
void b0PopCallback(void *ptr)      //h2o termocamino
{
    dbSerial.flush();
    if(Vstato==0){
    Vstato=1;
    b0.setText("ON");
    }
    else{
    Vstato=0;
    b0.setText("OFF");   
}
delay(500);
}
void b31PopCallback(void *ptr)      //h2o termocamino
{
    dbSerial.flush();
    txh2o -= 1;
    n30.setValue(txh2o);
    delay(500);   
}
void b32PopCallback(void *ptr)     //h2o termocamino
{ 
    dbSerial.flush();
    txh2o += 1;
    n30.setValue(txh2o);
    delay(500);      
}


void setup(void)
{
    attachInterrupt(2, interruptDepressostato, RISING);
    attachInterrupt(3, interruptTermostato, RISING);
    attachInterrupt(4, interruptPressostato, RISING);
    
    Serial.begin(9600);
    HMISerial.begin(9600);
    dht.begin();
    sensor_inhouse.begin(); //AVVIO IL PRIMO DS18B20
    sensor_outhouse.begin(); //AVVIO IL SECONDO DS18B20
    txh2o=60;                               //temperatura di soglia acqua termocamino
    
    nexInit();
    t8.attachPop(t8PopCallback);
    t9.attachPop(t9PopCallback);
    t25.attachPop(t25PopCallback);
    t26.attachPop(t26PopCallback);
    t27.attachPop(t27PopCallback);
    t28.attachPop(t28PopCallback);
    t29.attachPop(t29PopCallback);
    n0.attachPop(n0PopCallback);   
    n1.attachPop(n1PopCallback);
    n2.attachPop(n2PopCallback); 
    n3.attachPop(n3PopCallback); 
    n4.attachPop(n4PopCallback);
    n5.attachPop(n5PopCallback);
    n6.attachPop(n6PopCallback);
    n12.attachPop(n12PopCallback);
    n13.attachPop(n13PopCallback);
    n14.attachPop(n14PopCallback);
    n30.attachPop(n30PopCallback);
    b0.attachPop(b0PopCallback);
    b31.attachPop(b31PopCallback);
    b32.attachPop(b32PopCallback);
     
    pinMode(aspiratore,OUTPUT);
    pinMode(coclea,OUTPUT);
    pinMode(circolatore,OUTPUT);
    pinMode(ventola,OUTPUT);
    pinMode(accenditore,OUTPUT);
    
 
    delay(1000);
}

void loop(void){
   
  
  
  nexLoop(nex_listen_list);
  Th2oMax=txh2o+6;
  Tfumi=ktcF.readCelsius();
  Tcamera=ktcC.readCelsius();
  umidita = dht.readHumidity();           //leggo umidita ambiente
  tempamb = dht.readTemperature();        //leggo temperatura ambiente
  sensor_inhouse.requestTemperatures(); //AVVIO LETTURA TEMPERATURA DAL PRIMO SENSORE
  sensor_outhouse.requestTemperatures(); //AVVIO LETTURA TEMPERATURA DAL SECONDO SENSORE
  temph2o =sensor_inhouse.getTempCByIndex(0);    //leggo il sensore dell'acqua del termocamino
  tempPuffer=sensor_outhouse.getTempCByIndex(0);
 ///////////////////////////////////////////////////////////////////////////////////////////////////// 
 if(OldStartAccenditore > VarMillis){  // se millis si resetta (dopo circa 50 gg)
        DeltaRestartMillis = 4294967295 - OldStartAccenditore;
        OldStartAccenditore = 0;
      }
 if(OldStartCoclea > VarMillis){  // se millis si resetta (dopo circa 50 gg)
        DeltaRestartMillis1 = 4294967295 - OldStartCoclea;
        OldStartCoclea = 0;
      } 
 ///////////////////////////////////////////////////////////////////////////////////////////////////// 
  if((Vstato==1)&&(TempOk==1)){
   if(temph2o<90){
    if(Tfumi<allTempFumi){               // verifica se le condizioni sono vere procedo con:
       t9.setText("ON");
       VarMillis = millis();
     /////////////////////////////////////////////////////////////////////  
     if(PrimoCicloON){                   // se è la prima volta che entro nello stato ON
       PrimoCicloON = false;
       OldStartAccenditore = VarMillis;
       DeltaRestartMillis = 0;
       valCoclea=1;
       
     }
     /////////////////////////////////////////////////////////////////////
      if(CocleaCicloON){ 
          OldStartCoclea = VarMillis;                                   //Tiene in memoria l'ultima accensione 
          DeltaRestartMillis1=0;
          CocleaCicloON=false;
        } 
     if(valCoclea==1){                                                  //se il termo è in stato di accensione(PrimoCicloON)
       
        if(VarMillis + DeltaRestartMillis1 - OldStartCoclea < 300){   
          Vcoclea=HIGH;
        }else{
          Vcoclea=LOW;
        }
         if(VarMillis + DeltaRestartMillis1- OldStartCoclea > 3000){
           CocleaCicloON=true;
         }
     }else{                                                              //altrimenti se è acceso
       if(VarMillis + DeltaRestartMillis1 - OldStartCoclea < TcocleaOn){   
          Vcoclea=HIGH;
        }else{
          Vcoclea=LOW;
        }
         if(VarMillis + DeltaRestartMillis1- OldStartCoclea > TcocleaOn+TcocleaOff){
           CocleaCicloON=true;
         }
     }
       
         digitalWrite(coclea, Vcoclea);
     ////////////////////////////////////////////////////////////////////
       
     if(VarMillis + DeltaRestartMillis - OldStartAccenditore < 280000){    // se non sono trascorsi 3 minuti
       digitalWrite(accenditore, HIGH);
       t25.setText("ON");
      }
  else{
        digitalWrite(accenditore, LOW);
        valCoclea=0;
        t25.setText("OFF");
      }
  ////////////////////////////////////////////////////////////////////////    
      if (temph2o<txh2o){ 
         t8.setText("LAVORO");
         pwmfumi=255; 
         TcocleaOn=500;
         TcocleaOff=10000;
      }
     else if(temph2o>txh2o+6){
         pwmfumi=50;
         TcocleaOn=1000;
         TcocleaOff=1500;
         t8.setText("RIPOSO");
      }
    else  if(temph2o>txh2o+10){
         TempOk=0;
         t8.setText("STANDBY TEMP");
      }
      
  else{  
         pwmfumi=127;
         TcocleaOn=500;
         TcocleaOff=500;
         t8.setText("LAVORO MODULA");
      }   
      ////////////////////////////////////////////////////////////////////
         percentuale = map(pwmfumi,0,254,0, 100);
         digitalWrite(circolatore,HIGH);
         digitalWrite(ventola,HIGH);
         analogWrite(aspiratore,pwmfumi);
     
  
   ///////////////////////////////////////////////////////////////////////////////////////////  
   }else{
       t9.setText("ALLARME TEMP FUMI");
       digitalWrite(aspiratore,LOW);
       digitalWrite(circolatore,HIGH);
       digitalWrite(ventola,LOW);
       digitalWrite(accenditore,LOW);
       digitalWrite(coclea,LOW);
       percentuale =0;
       
     }
   }
  else{
      t8.setText("ALLARME TEMP H2O");
      digitalWrite(aspiratore,LOW);
      digitalWrite(circolatore,HIGH);
      digitalWrite(ventola,LOW);
      digitalWrite(accenditore,LOW);
      digitalWrite(coclea,LOW);
      percentuale =0;
  }
  }
  ////////////////////////////////////////////////////////////////////////////////////////////
 else if((Vstato==0) || (TempOk==0)){
      if(Tfumi<40){
        t9.setText("OFF");
        t8.setText("SPENTO");
        digitalWrite(aspiratore,LOW);
        digitalWrite(circolatore,LOW);
        digitalWrite(ventola,LOW);
        digitalWrite(accenditore,LOW);
        digitalWrite(coclea,LOW);
        PrimoCicloON = true;
        CocleaCicloON = true;
        TempOk=1;
        percentuale=0;
     }
   else{
       t8.setText("SPEGNIMENTO");
       digitalWrite(accenditore,LOW);
       digitalWrite(circolatore,HIGH);
       digitalWrite(ventola,HIGH);
       digitalWrite(coclea,LOW);
       analogWrite(aspiratore,255);
       percentuale=100;
      
     }}
  
      n0.setValue(tempamb);
      n5.setValue(umidita);
      n6.setValue(tempPuffer);
      n1.setValue(Tfumi);
      n2.setValue(Tcamera);
      n4.setValue(percentuale);
      n3.setValue(temph2o);
      n30.setValue(txh2o);
      n12.setValue(VarMillis);
      n13.setValue(OldStartCoclea);
      
       Serial.print("VARMILLIS: ");
       Serial.print(VarMillis);
       Serial.print("COCLEA_ON: ");
       Serial.print(OldStartCoclea);
       
      dbSerial.flush();//pulisci la seriale
      delay(500);
     }
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
 void interruptDepressostato(){
      t8.setText("MANCA DEPRESSIONE");
      digitalWrite(coclea, LOW);
      digitalWrite(aspiratore, LOW);
      digitalWrite(circolatore, LOW);
      digitalWrite(ventola, LOW);
      digitalWrite(accenditore, LOW);
      
}

 void interruptTermostato(){
      t8.setText("ALLARME TEMPERATURA");
      digitalWrite(coclea, LOW);
      digitalWrite(aspiratore, LOW);
      digitalWrite(circolatore, HIGH);
      digitalWrite(ventola, LOW);
      digitalWrite(accenditore, LOW);
      
}

void interruptPressostato(){
      t8.setText("MANCA PRESSIONE");
      digitalWrite(coclea, LOW);
      digitalWrite(aspiratore, LOW);
      digitalWrite(circolatore, LOW);
      digitalWrite(ventola, LOW);
      digitalWrite(accenditore, LOW);
      
}
    


Per la gestione della coclea mi sono basato sul codice di Elix qui sotto, usa la funzione millis, 300uS,ma è un numero a caso per capire se funziona o meno.
unsigned long VarMillis = 0;
unsigned long OldStartAccenditore = 0;
unsigned long DeltaRestartMillis = 0;
boolean PrimoCicloON = true;
...



**********************************************************************************************************



case 0:                                               //se stato è 0 (spento)
   ...
   ...
   PrimoCicloON = true;
   ...
   break;



**********************************************************************************************************




case 1:                                               // se stato è 1 (acceso)
   if(Tfumi < allTempFumi)                            // verifica se le condizioni sono vere procedo con:
   {
      t9.setText("ON");
      VarMillis = millis();

      if(PrimoCicloON)                                // se è la prima volta che entro nello stato ON
      {
         PrimoCicloON = false;
         OldStartAccenditore = VarMillis;
         DeltaRestartMillis = 0;
      }

      if(OldStartAccenditore > VarMillis)             // se millis si resetta (dopo circa 50 gg)
      {
         DeltaRestartMillis = 4294967295 - OldStartAccenditore;
         OldStartAccenditore = 0;
      }

      if(VarMillis + DeltaRestartMillis - OldStartAccenditore < 180000)    // se non sono trascorsi 3 minuti
      {
         digitalWrite(accenditore, HIGH);
      }
      else
      {
         digitalWrite(accenditore, LOW);
      }

   }



---------------
Non è impossibile se è fattibile!

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 25/07/2017 15:48:52

Acceso 3 sec? E spento?



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

dani9191

Avatar
GigaWatt


Gruppo:Utente
Messaggi:780

Stato:



Inviato il: 25/07/2017 15:50:33


CITAZIONE

Invece di passare la var boolen passiamo il duty cicle di accensione cosi puoi regolarlo a piacimento e solo la prima volta e diverso

Ok ma è stabile come impostazione?

If dcicl > 0 { IF TEMPO < DCICLO {digitalwrite(val,HIGH)

}ELSE{
DIGITALWRITE(VAL,LOW)}
}ELSE {DIGITALWRITE(VAL,LOW)}

TEMPO=TEMPO+1
IF TEMPO >INTERVALLODESIDERATO{
TEMPO =0
} 


Ecco, ma 1 a quanto corrisponde nel tempo reale?
Ipotizziamo che mi serve un tempo on di 1secoondo e un tempo off di 3secondi



---------------
Non è impossibile se è fattibile!

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 25/07/2017 16:00:26

Come dicevo se ci sono dei delay nel programma devi tenerne conto ma e regolabilissimo ogni ciclo fa un piu 1 una volta che trovi i valori giusti di solito se ce un delay 1000 alla fine ogni +3 e 1 sec alla fine con qualche prova a banvo trovi tutti i valori da modello a modello i timings cambiano un po aiutati col debug ma come codice e molto piu leggibile se c e un errore lo vedi subito e non usi variabili naturalmente nel setup devi aggiungere dcicle =0 che poi passi a programma in base alle esigenze 0= spento

Se vuoi fare 3 sec on e off
Metti intervallo desiderato = 6000 o 600 e da provare
E dcicl= 3000 o 300
Verifichi il tempo se e avvio passi 5999 o 299

Spero di essermi spiegato devi solo teovare i timings adatti
In caso se e troppo lento fai un +2 o + 3 ecc alla fine non puoi sgarrare



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

dani9191

Avatar
GigaWatt


Gruppo:Utente
Messaggi:780

Stato:



Inviato il: 25/07/2017 16:07:09

Il problema che con il delay, come si parlava qualche messaggio fa vanno a interferire con le altre istruzioni e si optava per la funzione millis.
Il problema e che qualsiasi numero imposto i valori letti nel debug rimangono uguali, boooo..
Comunque provo lo stesso come mi stai suggerendo



---------------
Non è impossibile se è fattibile!

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 25/07/2017 16:14:56

Io non ho metto di usare il delay... Non ho visto se ce se non ce gira piu veloce il listato e puoi usare numeri piu alti ed e piu preciso

Ma se alla fine hai messo un delay(x) ti fa da offaet x il ciclo quindi e meno preciso



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

dani9191

Avatar
GigaWatt


Gruppo:Utente
Messaggi:780

Stato:



Inviato il: 25/07/2017 17:07:12

E se invece di delay e millis usiamo un interrupt interno ad arduino.Il pin usato è il 5 quindi utilizza timer0.
come si imposta?Ad esempio richiamare l'interrupt ogni 500us



---------------
Non è impossibile se è fattibile!

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 25/07/2017 17:12:10

Perche vuoi complicarti la vita?

al massimo usi il realtime clock o un ne555 a questo punto e aumenti il contatore al cambio di stato



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

dani9191

Avatar
GigaWatt


Gruppo:Utente
Messaggi:780

Stato:



Inviato il: 25/07/2017 17:32:50

No il fatto e che anche quello appena proposto da te li devo studiare come soluzioni perche non li conosco. Ma piu che altro voglio cercare un modo intanto funzionante, ma anche strutturalmente stabile, sempre nel limite dell'hardware



---------------
Non è impossibile se è fattibile!

 

dani9191

Avatar
GigaWatt


Gruppo:Utente
Messaggi:780

Stato:



Inviato il: 25/07/2017 17:36:53

Pero la cosa piu strana è che la parte dell'accenditore che la scritta elix(con la funzione millis) impostando il valore 18000 funziona alla grande(3minuti precisi e si spegne),io ho riportato la stessa impostazione per la coclea e non funziona.



---------------
Non è impossibile se è fattibile!

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 25/07/2017 17:40:25

Ah ecco hai usato nomi diversi x le variabili?



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 25/07/2017 17:41:13

Tieni presente che col codice che ti ho scritto se non ci sono delay al massimo sfori di 1 ciclo cioe 100 ms al massimo.

Certo devi solo metterlo a punto



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

dani9191

Avatar
GigaWatt


Gruppo:Utente
Messaggi:780

Stato:



Inviato il: 25/07/2017 17:42:02

Si modificando solo il nome coclea,ad esempio oldstartAccenditore, lo chiamato oldstartCoclea



---------------
Non è impossibile se è fattibile!

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 25/07/2017 20:26:40

Ci credo che non funziona XD se quello prima lavora sulle stesse variabili..
Aggiungi un 2 alla fine di ogni var e anvhe nelle dichiarazioni se dovuto in caso integra in una procedura che chiami in 2 punti diversi con passaggio di valore boolean e pin di output
Cosi riduci le variabi



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

dani9191

Avatar
GigaWatt


Gruppo:Utente
Messaggi:780

Stato:



Inviato il: 25/07/2017 20:39:01

Guarda non sono cosi tecnico abbi pazienza,ma sono alle prime armi nella programmazione mi puoi spiegare meglio?
Le variabili che ho usato sono diverse tra loro, cioè per laccenditore ha le sue e per la coclea ho aggiunto altre variabili prendendo come esempio limpostazione dell'accenditore



---------------
Non è impossibile se è fattibile!

 
 InizioPagina
 

//libreria seriale [b">

Pagine: (10)   1   2   3   4   5   6   [7]   8   9   10    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum