leggere 2 sonde contemporaneamente

Ciao ragazzi mi servirebbe un aiutimo oggi ho preso due sonde di temperatura ML35dz ho eseguito questo:

int pin = 0; // Imposta il numero di pin analogico
int tempc = 0; // Dichiara e inizializza la variabile che conterrà la temperatura rilevata

void setup()
{
Serial.begin(9600); // Inizializza la comunicazione seriale
}

void loop()
{

tempc = ( 5.0 * analogRead(pin) * 100.0) / 1024.0; // Questa formula interpreta il segnale analogico acquisito trasformandolo in gradi centigradi

Serial.print(tempc,DEC); // Invia il dato alla porta seriale

tempc = 0;

delay(1000); // Attende 1 secondo prima di rilevare nuovamente la temperatura
}

e fin qui tutto bene, però ora non so come scrivere per far leggere la seconda sonda di temperatura, ogni cosa che modifico a questo sketch mi da errore.
Cosa dovrei aggiungere per far leggere le due sonde contemporaneamente senza che mi dia errore quando cerco di uploadare all’ Arduino ?

Devi semplicemente dichiarare un altro pin (l'1, ad esempio) e replicare le funzioni di settaggio del pin e lettura dello stesso.

ho provato a dichiarare un altro pin (adesempio 1) ma mi da errore.
riusciresti a fare un esempio grazie leo

A parte che non so che errore ti dia, che codice stai usando... ecc... devi usare una variabile differente. Dichiara pin2=1 e poi replica il codice che stai usando mettendo 2 analogRead.

ho provato a fare cosi dimmi se sbaglio

int pin = 0; // Imposta il numero di pin analogico int tempc = 0; // Dichiara e inizializza la variabile che conterrà la temperatura rilevata int pin2 = 1; int tempc2 = 1; void setup() { Serial.begin(9600); // Inizializza la comunicazione seriale } void loop() {

tempc2 = (5.0 * analogRead(pin2)* 100.0 / 1024.0; tempc = ( 5.0 * analogRead(pin) * 100.0) / 1024.0; // Questa formula interpreta il segnale analogico acquisito trasformandolo in gradi centigradi

Serial.print(tempc,DEC); // Invia il dato alla porta seriale Serial.print(tempc,DEC); tempc = 0; tempc = 1 delay(1000); // Attende 1 secondo prima di rilevare nuovamente la temperatura }

perche cosi non mi lascia caricare e mi sottolinea in giallo questo: tempc2 = (5.0 * analogRead(pin2)* 100.0 / 1024.0;

Manca una parentesi ")" dopo 100.0. Cmq per favore per le prox volte... metti gli errori come vengono segnalati nella finestra in basso, altrimenti come facciamo a sapere che ti sta succedendo? :roll_eyes:

Ok grazie delliuto, cmq scusa e che sono alle prime armi con sto benedetto arduino,comunque secondo te il sketch che ho fatto dovrebbe funzionare per leggere le due sonde?

qui:

Serial.print(tempc,DEC); // Invia il dato alla porta seriale Serial.print(tempc,DEC); tempc = 0; tempc = 1 delay(1000); // Attende 1 secondo prima di rilevare nuovamente la temperatura

stai usando sempre tempc, forse in due righe dovresti usare tempc2; inoltre dopo tempc = 1 devi mettere il ";"

Sì, ma poi a che serve assegnare dei valori a quelle variabili se conterranno le letture dei sensori? ;)

Due sonde contemporaneamente è solo teoria il processore esegue una funziona alla volta ma in maniera veloce!

leo72: Sì, ma poi a che serve assegnare dei valori a quelle variabili se conterranno le letture dei sensori? ;)

boh, non sapendo cosa deve farci mi sono limitato ad indicargli cose che non vanno palesemente, non capisco nemmeno perché una la imposti a 0 e l'altra a 1, secondo me sta facendo casino tra dispositivo e lettura.

@ etti: ovvio ciò che dici, lo è anche per lui, credo, visto che le righe le mette in sequenza, la velocità del micr4o è tale da poter considerare "contemporanea" la lettura; se provi ad inviare i dati ad un LCD, mettendo le letture in due punti diversi, non te ne accorgeresti nemmeno che si stanno modificando, se non fosse per la variazione dei valori.

le variabili sono nell'esempio, lui ha tolto il ciclo for e l'array di campionamento dei valori , gli sono rimaste le variabili a fare nulla :)