Buongiorno
ho due sonde di temperatura poste in locali diversi con temperature diverse.
Riesco a visualizzare le due temperature, a intervalli di pochi secondi, su un solo
display tm 1637.
Sto cercando ora di visualizzare la temperatura Temper1 su un display e la temperatura Temper2 su un altro display (entrambi tm 1637)
(Ho trovato nelle discussioni la possibilità di fare questo con display lcd, ma vorrei insistere con la mia idea)
Ho provato con un ciclo IF ma ottengo errore
Ho fatto numerosi tentativi ed ora mi sono arreso ( il mio livello di programmazione con Arduino non è evidentemente ancora sufficiente)
Di seguito il mio programma
digita o incolla il codice qui
```/////////////////////////////////////////////////
// SENSORE TEMPERATURA DS18B20
//
#include "TM1637.h"
#include <DallasTemperature.h>
#include <OneWire.h> // dichiarazione di utilizzo della libreria OneWire.h
#define ONE_WIRE_BUS 2 // assegna il valore 2 al nome ONE_WIRE_BUS
OneWire oneWire(2); // associa alla porta 2 (valore di ONE_WIRE_BUS) il
// canale dati dei sensori
float tc=0.0 ;
int nsonde=0;
DallasTemperature temp(&oneWire); //trasferisce alle routine della libreria DallasTemperature
// il controllo delle funzioni OneWire
#define E 3
#define F 4
#define A 5
#define B 6
#define C 7
#define D 8
TM1637 tm1(A, B);
TM1637 tm2(C, D);
TM1637 tm3(E, F);
void setup(){
Serial.begin(9600); // inizializza la porta seriale per l'utilizzo del monitor seriale
temp.begin(); // inizializza i sensori
nsonde=temp.getDeviceCount();
//Serial.print("le sonde sono ");
//Serial.println(nsonde);
tm1.init(); //inizializzo il display
tm1.set(1);//valori da 0 a 7 per impostare la luminosità
tm2.init();
tm2.set(1);
tm3.init();
tm3.set(1);
}
void loop()
{
temp.requestTemperatures(); // invia ai sensori la richiesta di misurare la temperatura
for (int i=0; i<nsonde ; i++ ){
//Serial.print("sonda ");
//Serial.print(i);
tc = temp.getTempCByIndex (i);
//Serial.print(" C: ");
//Serial.println(tc);
//Serial.println(" ");
int Temper1=temp.getTempCByIndex(0);
int Temper2=temp.getTempCByIndex(1);
//Serial.print(Temper1);
//Serial.print(" ");
//Serial.println(Temper2);
//delay (1000); // attende un secondo per dare tempo ai sensori di effettuare la misurazione
shownumber(Temper1);
delay (2000);
shownumber(Temper2);
//delay (2000);
}
}
void shownumber(int Temper1) {
int d1= Temper1 % 10 ;
int d2= (Temper1/10) % 10 ;
tm1.display(2, d1) ;
tm1.display(3, d2) ;
}
//}
//void shownumber(int Temper2){
// int b1= Temper2 % 10 ;
// int b2= (Temper2/10) % 10 ;
//tm2.display(2, b1) ;
//tm2.display(3, b2) ;
//tm3.display(2, b1) ;
//tm3.display(3, b2) ;
//}
//}`