Lecturas erroneas de temperatura

hola!

Os cuento, si mido la temperatura sola me da el valor correcto, al añadirle las lineas referentes a la activación del relé también, pero al desactivarlo la temperatura da un valor erroneo. Hay que decir que todo es atraves de internet.
Os paso el código:
if(readString == ("GET /?L=1 HTTP/1.1") )

  • {*
  • //led has to be turned ON*
  • digitalWrite(ledPin, HIGH); // set the LED on*
  • digitalWrite(relayPin, HIGH);*
  • LEDON = true;*
  • }*
  • else{*
  • //led has to be turned OFF*
  • digitalWrite(ledPin, LOW); // set the LED OFF*
  • digitalWrite(relayPin, LOW);*
  • LEDON = false; *
  • }*

Jossema106:
hola!

Os cuento, si mido la temperatura sola me da el valor correcto, al añadirle las lineas referentes a la activación del relé también, pero al desactivarlo la temperatura da un valor erroneo. Hay que decir que todo es atraves de internet.
Os paso el código:
if(readString == ("GET /?L=1 HTTP/1.1") )

  • {*
  • //led has to be turned ON*
  • digitalWrite(ledPin, HIGH); // set the LED on*
  • digitalWrite(relayPin, HIGH);*
  • LEDON = true;*
  • }*
  • else{*
  • //led has to be turned OFF*
  • digitalWrite(ledPin, LOW); // set the LED OFF*
  • digitalWrite(relayPin, LOW);*
  • LEDON = false; *
  • }*

como esta conectado el rele? diagrama,foto, caracteristicas del rele?

el rele esta conectado al pin 2 de los digitales y el termometro al 2 de los analogicos, por separado funciona bien, si lo pongo el rele que se active con delay todo bien

Jossema106:
el rele esta conectado al pin 2 de los digitales y el termometro al 2 de los analogicos, por separado funciona bien, si lo pongo el rele que se active con delay todo bien

como esta conectado el rele? diagrama, foto, caracteristicas del rele?
decir que esta conectado al pin 2 solo es el 5% de todo lo que implica conectar un rele al arduino.
cual es el codigo con delay?
cual es el código completo sin delay que te da problemas?

#include <Ethernet.h>
#include <SPI.h>
/*
Simple Ethernet Test

Arduino server outputs simple text to browser

The circuit:

  • Arduino Duemilanove
  • Arduino Ethernet shield
  • Basic FTDI breakout 5V
    *LED connected to GND and digital pin 4 via resistor

By Minde
http://www.sciencprog.com/
*/

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = {192, 168, 1, 33 }; // ip in lan
byte gateway[] = {192, 168, 2, 254 }; // internet access via router
byte subnet[] = {255, 255, 255, 0 }; //subnet mask
EthernetServer server(5675); //server port
byte sampledata=50; //some sample data - outputs 2 (ascii = 50 DEC)
int ledPin = 7; // LED pin
String readString = String(30); //string for fetching data from address
boolean LEDON = false; //LED status flag
boolean ReleON = false; //LED status flag

int relayPin = 2; // PIN al que va conectado el relé
int pinTemperatura = 0; // Damos un nombre al pin de la temp
int tempValor ; // La variable donde guardaremos la temperatura

void setup(){
//start Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
//Set pin 4 to output
pinMode(ledPin, OUTPUT);
//enable serial datada print
pinMode(relayPin, OUTPUT);

Serial.begin(9600);
}
void loop(){

/* digitalWrite(relayPin, HIGH); // ENCENDIDO
delay(1000);
digitalWrite(relayPin, LOW); // APAGADO
delay(1000);*/

// Primero transformamos la lectura analógica de tensión a un valor de temperatura
tempValor = ( 5.0 * analogRead(pinTemperatura) * 100.0) / 1024.0;
// Ahora imprimimos el valor en el puerto serie donde podremos monitorizarlo
Serial.print("Temperatura (Celsius) = ");
Serial.println(tempValor);

// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 30)
{
//store characters to string
readString += c;
}
//output chars to serial port
Serial.print(c);
//if HTTP request has ended
if (c == '\n') {
//lets check if LED should be lighted
readString.trim();
if(readString == ("GET /?L=1 HTTP/1.1") )
{
//led has to be turned ON
digitalWrite(ledPin, HIGH); // set the LED on

LEDON = true;
}
else{
//led has to be turned OFF
digitalWrite(ledPin, LOW); // set the LED OFF

LEDON = false;
}
if(readString == ("GET /?L=2 HTTP/1.1") )
{
//led has to be turned ON

digitalWrite(relayPin, HIGH);
ReleON = true;
}
else{
//led has to be turned OFF

digitalWrite(relayPin, LOW);
ReleON = false;
}
// now output HTML data starting with standart header

client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");
client.println();
//set background to yellow
// client.print("");
//send first heading
client.println("

HTTP test routines

");
client.println("

" + readString + "

");
client.println("
");
client.println("
");
//output some sample data to browser
client.println("Sample data: ");
client.print(sampledata);//lets output some data
client.println("
");//some space between lines
client.println("
");
//drawing simple table
client.println("Simple table: ");
client.println("
");
client.println("");
client.println("
row 1, cell 1 row 1, cell 2
row 2, cell 1 row 2, cell 2
");
client.println("
");
client.println("
");
//controlling led via checkbox
client.println("

LED control

");
//address will look like http://192.168.1.110/?L=1 when submited
client.println("LED
Rele
");
client.println("
");
//printing LED status
client.print("LED status: ");
if (LEDON)
client.println("ON");
else
client.println("OFF");
if (ReleON)
client.println("ON");
else
client.println("OFF");
client.println("
");
client.println("
");

client.println("temp: ");
client.println(tempValor);
client.println("");

//clearing string for next read
readString="";
//stopping client
client.stop();
}
}
}
}
}

lo siento jossema, me he cansado, que te ayude otro. Que conste que lo he intentado.

Lee mis post y veras porque.
Suerte en tu proyecto.

Pues que quieres que tediga, que no lo entiendo!

Pero gracias

De todas formas creo que tengo una ligera idea de porque puede ser, al conectar el releno le puse el diodo.