Boa tarde,
Estou com um problema ao ler dados de sensores em portas analógicas no Arduino.
Tenho um Arduino Uno, com um sensor de temperatura LM35, que funciona otimamente enquanto nao ligo mais sensor nenhum ao Ardino.
Aconteceu-me à dias ligar ao mesmo Arduino um sensor de monóxido de carbono (MQ7), e o sensor de temperatura começar a dar valores disparatados, e assim que desligo o sensor de monóxido de carbono o de temperatura volta ao normal.
Hoje tentei ligar no mesmo Arduino um sensor de NO2 (MiCS-2710), e quando tenho os dois ligados ao Arduino o LM35 fica como o mesmo problema, tao depressa me mostra a temperatura correto como ao fim de um bocado me mostra um valor completamente fora do normal, e de repente volta a mostrar valores coerentes. Reparei ainda que isto não acontece pelo facto de ter outro sensor ligado mas sim, de efetuar uma leitra do outro sensor ou ou nao. Ou seja, tenho os dois sensores ligados ao arduino em funcionamento e, quando executo o programa de modo a ler apenas os dados do LM35 tudo corre bem, se mandar o programa ler os valores de ambos os sensores à sempre alturas em que vai ler valores errados no LM35.
O meu código é este:
int NO2_VCC_PIN = 3;
int NO2_HEATING_PIN = 5;
int NO2_SENSOR_PIN = 0;
int TEMP_SENSOR_PIN = 1;
int no2Value;
float tempValue;
void setup(){
Serial.begin(9600);
pinMode(NO2_SENSOR_PIN, INPUT);
pinMode(NO2_VCC_PIN, OUTPUT);
pinMode(NO2_HEATING_PIN, OUTPUT);
pinMode(TEMP_SENSOR_PIN, INPUT);
analogWrite(NO2_VCC_PIN, 130);
analogWrite(NO2_HEATING_PIN, 100);
}
void loop(){
//no2Value = analogRead(NO2_SENSOR_PIN);
Serial.print("NO2: ");
Serial.println(no2Value);
tempValue = (((500*analogRead(TEMP_SENSOR_PIN))/1024));;
Serial.print("Temperatura: ");
Serial.println(tempValue);
delay(100);
}
Alguém me pode ajudar a resolver o problema?
O que poderá ser que faz isto?
Cumprimentos