Se sei già registrato           oppure    

Orario: 02/05/2024 09:16:31  

 

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)


aiuto su variazione programmazione arduino
FinePagina

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 01/10/2016 13:43:56

Se usi il promini, me ne sono capitati di difettosi con i pin A6 ed A7 invertiti.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 01/10/2016 20:07:56

allora sto usando il mega io ed ho lo stesso problema sulla sensore 3 della temperatura come al listato che mi hai dato tu, e pure e tutto ok ho cambiato pin e messo un pin29 è il problema persiste

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 02/10/2016 02:01:59

La sonda é collegata correttamente? Prova a collegarla al posto di un'altra sonda, se funziona é il collegamento. Altrimenti é rotta la sonda.

Non é un problema di mega o di promini, il software deve funzionare, ora é corretto, vi sarà qualche errore nell'elettronica. Poi alla fine non sono che poche righe di codice.
L'unico mio dubbio é che nella tua scheda non funzioni la porta A6. Lunedi sera ti consiglierò una verifica.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 02/10/2016 11:27:59

la sonda funzionava sicuramente perché nelle prime prove era l'unica collegata.
comunque ho invertito il sensore 1 con il 3 è sempre sulla stessa riga del display abbiamo il valore 0C°



Modificato da epry - 02/10/2016, 11:40:56
 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 02/10/2016 15:01:30

Il software di gestione delle 3 sonde é uguale se una non funziona vi è qualche errore nel collegamento. Prova a staccare, una alla volta le atre due, riavvia e controlla cosa accade. Perché quelle sonde hanno un codice interno da 1 a 255, quindi potrebbe essere che due sono uguali.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 02/10/2016 16:08:12

CITAZIONE (calcola, 02/10/2016 15:01:30 ) Discussione.php?213983&4#MSG49

Il software di gestione delle 3 sonde é uguale se una non funziona vi è qualche errore nel collegamento. Prova a staccare, una alla volta le atre due, riavvia e controlla cosa accade. Perché quelle sonde hanno un codice interno da 1 a 255, quindi potrebbe essere che due sono uguali.

ho invertito il sensore1 con il sensore3 cioè ho messo la sonda che va sul pellet collegata apposta del termocamino è sul display sempre sulla terza riga c'è l'errore di lettura quindi non è la sonda e il programma. perché ho cambiato anche il numero del pin è la storia si ripete sempre sulla terza riga del display

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 02/10/2016 22:30:27

Dalla lettura del listato emerge chiaramente che la gestione delle sonde è uguale per le tre sonde, le righe di codice per le letture sono ripetitive. Se la colleghi al pin 2 o 3 la sonda funziona?

Se colleghi la sonda2, che ora è sul pin 2, al pin 12, la sonda funziona?
Se la sonda 3 sul pin 2 o 3 continua a non funzionare è la sonda che è rotta se invece funziona vuol dire che il sistema dei tre bus wire in parallelo non è gestito da arduino.

Non credo di avere a casa tre sonde già cablate, vedo cosa posso fare per simulare la tua situazione.

Poi vi è ancora il problema del pin A6, bisogna capire se il tuo arduino gestisce il pin A6. Se ritieni di usare il mega, il problema non si pone, è sufficiente spostare il sensore UV su altra porta analogica libera e modificare il valore nelle dichiarazioni iniziali.



Modificato da calcola - 02/10/2016, 22:33:35


---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 02/10/2016 23:55:38

Ho provato a collegare tre sonde come hai fatto tu e una non funziona. Negli esempi della libreria usano solo due bus, non tre, probabilmente creare tre bus non è previsto e pare anche abbastanza inutile, infatti un bus regge 255 sonde. Molti sensori si possono collegare così, tutti in parallelo ed una resistenza da 4,7K tra 5V ed il pinout, però la resistenza non saldarla in modo definitivo, potrebbe rendersi necessario cambiarla con una di altro valore. Nello schema usano il pin 10, tu usa il pin2.



Immagine Allegata: ds18b20doppio.jpg
 
ForumEA/N/ds18b20doppio.jpg



Modificato da calcola - 03/10/2016, 00:07:07


---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 03/10/2016 00:00:57

Il software diventa come di seguito, tenendo conto che la sonda con codice esadecimale più basso è chiamata 0, l'altra di seguito 1 e la terza 2. Per scoprire quale delle tre è la 1, la 2 o la 3, devi tenerle singolarmente in mano e vedere quale sale, scrivi il numero sulla stessa sonda poi occorrerà abbinare la sonda al servizio, ma andiamo per gradi.

#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

#define ONE_WIRE_BUS 2


// Imposta la comunicazione oneWire per comunicare
// con un dispositivo compatibile
OneWire pin2(ONE_WIRE_BUS);


// Passaggio oneWire reference alla Dallas Temperature.
DallasTemperature sensors(&pin2); //Pin 2


// RS EN D4 D5 D6 D7
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

byte blocco = 1;
int i = 0;
int i2 = 0;
int soglia_sole = 5; //soglia UV oltre la quale è giorno
int sensoreUV = A6;    // PIN PER IL SENSORE UV
int range = 3; // oscillazione differenziale vale per uv e temperature **************************************************
int UV = 0;
int Ruv = 0 ;
String G1 = (" ");
String day = (" ");
int allarme = 80; //soglia di allarme modificabile da quì n.b. il preallarme (k6) interviene 10 gradi prima)  **************************************************  


void setup(void)
{
  pinMode(sensoreUV, INPUT); //A6
  pinMode(14, OUTPUT); // PORTA A 5V IL PIN ANALOGICO 1 QUINDI accende I RELè K1 E K2
  pinMode(16, OUTPUT);
  pinMode(17, OUTPUT);
  pinMode(18, OUTPUT);
  pinMode(19, OUTPUT); // preallarme (-10°)
  pinMode(14, OUTPUT);
  pinMode(10, INPUT);
  pinMode(11, INPUT);
  pinMode(13, INPUT);


  // Start up the library
  blocco = 1;
  sensors.begin();
  
  lcd.begin(20, 4);
  lcd.clear();
  lcd.setCursor(5, 1);
  lcd.print("Buongiorno");
  delay (2000);
  lcd.begin(20, 4);
  lcd.clear();
}

void loop(void)
{
  if ((blocco !=1) || (blocco !=2 )|| (blocco != 3)){blocco = 1;}
  
  UV = analogRead(sensoreUV);
  if (digitalRead(10) == 1){ G1 = ("Pieno");}
                      else {G1 = ("Vuoto");}

  if (UV >= soglia_sole) {day = ("SOLE");}
  if (UV <= soglia_sole - range) {day = ("OMBRA");}

  //  if (digitalRead(13) == 1) i2 = 1; else i2 = 0; //Disabilitato x mancanza porte utili
  if (digitalRead(13) == 1) {i2 = 2;}
              else i2 = 0;

  switch (i2){

  case 0:{

  if ((sensors.getTempCByIndex(0) > sensors.getTempCByIndex(1) ) && (sensors.getTempCByIndex(0) > sensors.getTempCByIndex(2)) && (blocco != 1)) {
     
        digitalWrite(15, HIGH); // quando t2>t1 --> ACCENDE K1 E K2 SUL PIN A1 
        digitalWrite(17, LOW); // quando t2>t1 --> Spegni K4 SUL PIN A3 
        digitalWrite(14, LOW); 
        delay(10000); 
        
        digitalWrite(15, LOW); 
        blocco = 1; 
        } 
        
        if ((sensors.getTempCByIndex(1) > (sensors.getTempCByIndex(0) - range)) &&  (sensors.getTempCByIndex(1) > (sensors.getTempCByIndex(2) - range)) && (blocco != 2)){
           
        digitalWrite(15, LOW); // quando t2 spegne K1 E K2 SUL PIN A1 
        digitalWrite(17, HIGH); // quando t2 ACCENDI K4 SUL PIN A3 
        digitalWrite(14, LOW); 
        delay(10000); 
        digitalWrite(17, LOW); 
        blocco = 2;
        
        } 
        
        if ((sensors.getTempCByIndex(2) > sensors.getTempCByIndex(0)) && (sensors.getTempCByIndex(2) > sensors.getTempCByIndex(1)) && (blocco != 3))  { 
        digitalWrite(15, LOW); // spegne t1
        digitalWrite(17, HIGH); // spegne t2
        digitalWrite(14, HIGH); // accende t3
        delay(10000); 
        digitalWrite(14, LOW);
        blocco = 3;
        
        }
        
        break;
          }


   case 1: //disabilitato x mancanza porte utili
      /*   analogWrite(A3, 0);
         analogWrite(A1, 1023);//forza k4 on e k1e2 off
         delay(10);
         */
      break;


    case 2: //forza  k4 off e k1e2 on
      {digitalWrite(17, HIGH);
      digitalWrite(15, LOW);//forza k4 off e k1e2 on
      delay(10);
      break;}

  }

  if (day == ("SOLE") && G1 == ("Vuoto")) {digitalWrite(16, LOW);} else digitalWrite(16, HIGH); //K3 ABILITATO QUANDO SOLE SI E G1 ABBASSATO


  if (digitalRead(11) == 1) {i = 1;}  // se viene premuto il tasto di riempimento pin 11
  switch (i)
  {
    case 0:
      lcd.setCursor(18, 3);
      lcd.print("  ");
      break;

    case 1: //abilita K3 FINCHè IL SERBATOIO NoN è PIENO
      {digitalWrite(16, LOW); //accende
      if (digitalRead(10) == 1) {
        digitalWrite(16, HIGH);
        i = 0 ;
      }

      lcd.setCursor(18, 3);
      lcd.print("R.");

      break;
  }
  }


  if (sensors.getTempCByIndex(0) > allarme) {digitalWrite(18, LOW);} // se T1 supera allarme abilita K4
  delay (10);
  if (sensors.getTempCByIndex(0) < (allarme - 1)) {digitalWrite(18, HIGH); }// se T1 scende di un grado sotto l'allarme disabilita K4

if (sensors.getTempCByIndex(0) > allarme-10) {digitalWrite(19, LOW);} // se T1 supera preallarme abilita K5
  delay (10);
  if (sensors.getTempCByIndex(0) < (allarme -11)) {digitalWrite(19, HIGH);} // se T1 scende di un grado sotto il preallarme disabilita K4



  sensors.requestTemperatures(); // Invia il comando di lettura delle temperatura

  delay(700);
  lcd.setCursor(0, 0);
  lcd.print("UV: ");
  lcd.setCursor(4, 0);
  lcd.print ("    ");
  lcd.setCursor(4, 0);
  lcd.print (UV);
  lcd.setCursor(15, 2);
  lcd.print("Serb:");
  lcd.setCursor(15, 3);
  lcd.print(G1);
  lcd.setCursor(13, 1);
  lcd.print(" ");
  lcd.setCursor(15, 1);
  lcd.print (day);
  lcd.setCursor(11, 0);
  lcd.print("All.: ");
  lcd.setCursor(17, 0);
  lcd.print (allarme);
  lcd.setCursor(0, 1);
  lcd.print("TS:");
  lcd.setCursor(6, 1);
  lcd.print (sensors.getTempCByIndex(0)); delay (100);
  lcd.print ("'C ");
  lcd.setCursor(0, 2);
  lcd.print("TC:");
  lcd.setCursor(6, 2);
  lcd.print (sensors.getTempCByIndex(1));
  lcd.print ("'C ");
  lcd.setCursor(0, 3);
  lcd.print("TP:");
  lcd.setCursor(6, 3);
  //lcd.print (sensors.getTempCByIndex(2)); delay (100);
  lcd.print ("'C ");


  delay(100);

}


Attenzione, ricarica, ho modificato.



Modificato da calcola - 03/10/2016, 00:22:08


---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 03/10/2016 04:50:52

il listato modificato da te bene parla in pomeriggio che lo provo ma siccome ho capito che vuoi dire ti dirò:
che per me è il sensore 3 perché in questo punto del display mi fa l'errore lettura;
lcd.setCursor(0, 3);
lcd.print("TP:");
lcd.setCursor(6, 3);
lcd.print (sensors3.getTempCByIndex(0)); delay (100);
lcd.print ("'C ");
e mi da temperatura C°0,00 oppure se si scollega la sonda 85,00 se non erro

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 03/10/2016 13:53:22

Ho provato ad usare tre bus wire ed in vario modo, in nessun caso è avvenuta la lettura delle tre sonde. Quindi non funziona, meglio scegliere una via più collaudata.

Questo è il listato con la possibilità di abbinare la sonda al servizio, se hai qualche dubbio, chiedi.


#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

#define ONE_WIRE_BUS 2


// Imposta la comunicazione oneWire per comunicare
// con un dispositivo compatibile
OneWire pin2(ONE_WIRE_BUS);


// Passaggio oneWire reference alla Dallas Temperature.
DallasTemperature sensors(&pin2); //Pin 2


// RS EN D4 D5 D6 D7
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

float sonda1;
float sonda2;
float sonda3;
byte blocco = 1;
int i = 0;
int i2 = 0;
int soglia_sole = 5; //soglia UV oltre la quale è giorno
int sensoreUV = A6;    // PIN PER IL SENSORE UV
int range = 3; // oscillazione differenziale vale per uv e temperature **************************************************
int UV = 0;
int Ruv = 0 ;
String G1 = (" ");
String day = (" ");
int allarme = 80; //soglia di allarme modificabile da quì n.b. il preallarme (k6) interviene 10 gradi prima)  **************************************************  


void setup(void)
{
  pinMode(sensoreUV, INPUT); //A6
  pinMode(14, OUTPUT); // PORTA A 5V IL PIN ANALOGICO 1 QUINDI accende I RELè K1 E K2
  pinMode(16, OUTPUT);
  pinMode(17, OUTPUT);
  pinMode(18, OUTPUT);
  pinMode(19, OUTPUT); // preallarme (-10°)
  pinMode(14, OUTPUT);
  pinMode(10, INPUT);
  pinMode(11, INPUT);
  pinMode(13, INPUT);


  // Start up the library
  blocco = 1;
  sensors.begin();
  
  lcd.begin(20, 4);
  lcd.clear();
  lcd.setCursor(5, 1);
  lcd.print("Buongiorno");
  delay (2000);
  lcd.begin(20, 4);
  lcd.clear();
}

void loop(void)
{
  
  sensors.requestTemperatures();

///////// ABBINARE SONDA CON CODICE //////////
   
   sonda1 = sensors.getTempCByIndex(0);
   sonda3 = sensors.getTempCByIndex(1);
   sonda2 = sensors.getTempCByIndex(2);

   ///////////////////////////////////////////
   
   delay(800); // non modificare tempo necessario alla lettura
  
  if ((blocco !=1) || (blocco !=2 )|| (blocco != 3)){blocco = 1;}
  
  UV = analogRead(sensoreUV);
  if (digitalRead(10) == 1){ G1 = ("Pieno");}
                      else {G1 = ("Vuoto");}

  if (UV >= soglia_sole) {day = ("SOLE");}
  if (UV <= soglia_sole - range) {day = ("OMBRA");}

  //  if (digitalRead(13) == 1) i2 = 1; else i2 = 0; //Disabilitato x mancanza porte utili
  if (digitalRead(13) == 1) {i2 = 2;}
              else i2 = 0;

  switch (i2){

  case 0:{

  if ((sonda1 > sonda2) && (sonda1 > sonda3) && (blocco != 1)) {
     
        digitalWrite(15, HIGH); // quando t2>t1 --> ACCENDE K1 E K2 SUL PIN A1 
        digitalWrite(17, LOW); // quando t2>t1 --> Spegni K4 SUL PIN A3 
        digitalWrite(14, LOW); 
        delay(10000); 
        
        digitalWrite(15, LOW); 
        blocco = 1; 
        } 
        
        if ((sonda2 > (sonda1 - range)) &&  (sonda2 > (sonda3 - range)) && (blocco != 2)){
           
        digitalWrite(15, LOW); // quando t2 spegne K1 E K2 SUL PIN A1 
        digitalWrite(17, HIGH); // quando t2 ACCENDI K4 SUL PIN A3 
        digitalWrite(14, LOW); 
        delay(10000); 
        digitalWrite(17, LOW); 
        blocco = 2;
        
        } 
        
        if ((sonda3 > sonda1) && (sonda3 > sonda2) && (blocco != 3))  { 
        digitalWrite(15, LOW); // spegne t1
        digitalWrite(17, HIGH); // spegne t2
        digitalWrite(14, HIGH); // accende t3
        delay(10000); 
        digitalWrite(14, LOW);
        blocco = 3;
        
        }
        
        break;
          }


   case 1: //disabilitato x mancanza porte utili
      /*   analogWrite(A3, 0);
         analogWrite(A1, 1023);//forza k4 on e k1e2 off
         delay(10);
         */
      break;


    case 2: //forza  k4 off e k1e2 on
      {digitalWrite(17, HIGH);
      digitalWrite(15, LOW);//forza k4 off e k1e2 on
      delay(10);
      break;}

  }

  if (day == ("SOLE") && G1 == ("Vuoto")) {digitalWrite(16, LOW);} else digitalWrite(16, HIGH); //K3 ABILITATO QUANDO SOLE SI E G1 ABBASSATO


  if (digitalRead(11) == 1) {i = 1;}  // se viene premuto il tasto di riempimento pin 11
  switch (i)
  {
    case 0:
      lcd.setCursor(18, 3);
      lcd.print("  ");
      break;

    case 1: //abilita K3 FINCHè IL SERBATOIO NoN è PIENO
      {digitalWrite(16, LOW); //accende
      if (digitalRead(10) == 1) {
        digitalWrite(16, HIGH);
        i = 0 ;
      }

      lcd.setCursor(18, 3);
      lcd.print("R.");

      break;
  }
  }


  if (sonda1 > allarme) {digitalWrite(18, LOW);} // se T1 supera allarme abilita K4
  delay (10);
  if (sonda1 < (allarme - 1)) {digitalWrite(18, HIGH); }// se T1 scende di un grado sotto l'allarme disabilita K4

if (sonda1 > allarme-10) {digitalWrite(19, LOW);} // se T1 supera preallarme abilita K5
  delay (10);
  if (sonda1 < (allarme -11)) {digitalWrite(19, HIGH);} // se T1 scende di un grado sotto il preallarme disabilita K4



 // sensors.requestTemperatures();// Invia il comando di lettura delle temperatura
  
  
  lcd.setCursor(0, 0);
  lcd.print("UV: ");
  lcd.setCursor(4, 0);
  lcd.print ("    ");
  lcd.setCursor(4, 0);
  lcd.print (UV);
  lcd.setCursor(15, 2);
  lcd.print("Serb:");
  lcd.setCursor(15, 3);
  lcd.print(G1);
  lcd.setCursor(13, 1);
  lcd.print(" ");
  lcd.setCursor(15, 1);
  lcd.print (day);
  lcd.setCursor(11, 0);
  lcd.print("All.: ");
  lcd.setCursor(17, 0);
  lcd.print (allarme);
  lcd.setCursor(0, 1);
  lcd.print("TS:");
  lcd.setCursor(6, 1);
  lcd.print (sonda1); 
  lcd.print ("'C ");
  lcd.setCursor(0, 2);
  lcd.print("TC:");
  lcd.setCursor(6, 2);
  lcd.print (sonda2);
  lcd.print ("'C ");
  lcd.setCursor(0, 3);
  lcd.print("TP:");
  lcd.setCursor(6, 3);
  lcd.print (sonda3); 
  lcd.print ("'C ");


  delay(100);

}



Modificato da calcola - 03/10/2016, 20:40:56


---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

farstar1965

Avatar
KiloWatt


Gruppo:Utente
Messaggi:293

Stato:



Inviato il: 03/10/2016 14:04:07

Nel mio "scatolotto per la caldaia" ho collegate 8 sonde di temperatura ds18b20 tutte in parallelo e funzionanti da più di 3 anni. Nella'ultima modifica ho allungato i fili e per non avere errori di lettura ho dovuto portare la resistenza di pullup da 5k a 2k. Se il sensore è scollegato mi restituisce il valore di -128 ( o -124 non ricordo bene)
P.S. forse non ho capito bene il problema ma vi assicuro che le sonde one -wire non mi hanno mai dato broblemi.



---------------
Più impari più ti rendi conto di quanto sei ignorante.

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 03/10/2016 15:44:41

epry ha collegato tre sonde facendo tre bus wire su tre pin diversi, negli esempi della libreria questa soluzione funziona per due sonde e quindi 2 bus e non tre. Ho provato con il mio arduino e neanche nel mio la soluzione di tre sonde su tre bus funziona. Quindi ora gli ho modificato il codice inserendo le tre sonde in parallelo sullo stesso bus.

Comunque se le sonde non sono alimentate o viste la lettura è -124, se invece vi è errore di lettura il valore è 85, si può correggere diminuendo la resistenza di pullup o aumentando/inserendo un delay nel codice, in genere con 700 o 1000 ms il problema si risolve.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 03/10/2016 18:45:11

CITAZIONE (calcola, 03/10/2016 15:44:41 ) Discussione.php?213983&4#MSG57

epry ha collegato tre sonde facendo tre bus wire su tre pin diversi, negli esempi della libreria questa soluzione funziona per due sonde e quindi 2 bus e non tre. Ho provato con il mio arduino e neanche nel mio la soluzione di tre sonde su tre bus funziona. Quindi ora gli ho modificato il codice inserendo le tre sonde in parallelo sullo stesso bus.

Comunque se le sonde non sono alimentate o viste la lettura è -124, se invece vi è errore di lettura il valore è 85, si può correggere diminuendo la resistenza di pullup o aumentando/inserendo un delay nel codice, in genere con 700 o 1000 ms il problema si risolve.

quindi @calcola se le devo mettere 3 in parallelo non mi serviranno più tre resistenze ma soltanto una giusto?

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 03/10/2016 19:22:29

ok funziona tutto tranne il sensore uv poi mi sono reso conto che è stato spostato sul pin A6.
per il resto sembra tutto ok ora mi devo dedicare con calma a montare il tutto su banco e testare tutto poi montare il resto

 
 InizioPagina
 

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

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum