Buongiorno a tutti,
Sto utilizzando un sensore di pressione.
Dichiaro una variabile globale prima del setup.
leggo il sensore nel setup e attribuisco il valore letto alla variabile precedentemente dichiarata (mi serve da"zero").
se stampo (su seriale) la variabile nel setup è tutto ok.
se la stampo nel loop (nel quale, per ora, non faccio nulla) mi stampa 0 (zero) come se avesse azzerato la variabile stessa tra il setup ed il loop.
Dove sbaglio?
Grazie e scusate, sono alle prime armi e quasi settantenne....
#include <Wire.h>
// Indirizzo del dispositivo I2C
#define DEVICE_ADDRESS 0x28
const int ActPress;
void setup() {
// Inizializza la comunicazione I2C
Wire.begin();
// Inizializza la comunicazione seriale per il debug
Serial.begin(9600);
// Richiedi 2 byte di dati dal dispositivo I2C all'indirizzo 0x00
Wire.requestFrom(DEVICE_ADDRESS, 2);
// Attendi fino a quando i dati sono disponibili
while(Wire.available() < 2);
// Leggi i 2 byte di dati
byte data1 = Wire.read();
byte data2 = Wire.read();
// Combina i byte letti per ottenere il valore
//questo è il riferimento della pressione atmosferica vigente
const int ActPress = (data1 << 8) | data2;
Serial.print(ActPress);
}
void loop() {
//int ActualPressure=ActualPressure;
// Richiedi 2 byte di dati dal dispositivo I2C all'indirizzo 0x00
Serial.print(ActPress);
/* Wire.requestFrom(DEVICE_ADDRESS, 2);
// Attendi fino a quando i dati sono disponibili
while(Wire.available() < 2);
// Leggi i 2 byte di dati
byte data1 = Wire.read();
byte data2 = Wire.read();
// Combina i byte letti per ottenere il valore
int value = (data1 << 8) | data2;
//1PSI =70,3069 cmH2O
//0% output 0 in uscita
//10% outuput 1638 output in uscita
//100%output 16383 in uscita
// Stampa il valore letto
Serial.print(ActPress);
Serial.print("Dati letti: ");
Serial.println(value);
Serial.print("pari a ");
Serial.println((value)-(ActPress));
*/
// Attendi per un tempo prima di leggere nuovamente
delay(500);
}
Se dichiari una variabile const non puoi assegnare un nuovo valore.
E comunque le variabili che usi nel setup e quella che stampi nel loop sono due variabili diverse perché quella usata nel setup è locale