Go Down

Topic: ds1820 problem (Read 3471 times) previous topic - next topic

medina

#15
Jun 29, 2012, 08:43 am Last Edit: Jun 29, 2012, 08:45 am by medina Reason: 1

Resumiendo: Las sondas (TODAS, LAS 6!!!!!!) estaban mal.   :smiley-roll-blue: :smiley-sad-blue: :smiley-eek-blue: :smiley-eek: =( =(

Bueno, la cuestión es que ya te funciona.  :)

¿Has probado todos los ejemplos de los que hemos hablado? Estaría bien que los comprobases para ver que no estabamos haciendo alguna burrada.

Ya contarás


si he provado todos los ejemplos ...........y para cortarme la cabeza jorge resulta que me comi el color rojo de las resistencia (es decir 4,7 ohms) las cambie y resuelto ,ahora me encuentro en que tengo las tres sondas pero dos de ellas me dan la misma temperatura este es el frag del codigo
Quote
void Temperatura(int minutos, int horas)
{
 float T1;
 float T2;
  float T3;
 sensores.requestTemperatures();
 T1=sensores.getTempCByIndex(0)+1;
 T2=sensores.getTempCByIndex(1)+1;
 T3=sensores.getTempCByIndex(2)+1;
  lcd.clear();
 lcd.setCursor(0,0);
 lcd.print("TEMPERATURA");
  lcd.print("   ");
 if (hour < 10) lcd.print("0");
 lcd.print(hour, DEC);
 lcd.print(":");  
 if (minute < 10) lcd.print("0");
 lcd.print(minute, DEC);
  lcd.setCursor(0, 1);
 lcd.print("AIR-1:");
 lcd.print(T1);
 lcd.print((char)223);
 lcd.print(" ");
  lcd.setCursor(0, 2);
 lcd.print("AIR-2:");
 lcd.print(T2);
 lcd.print((char)223);
 lcd.print(" ");
 
 lcd.setCursor(0,3);
 lcd.print("WATER:");
 lcd.print(T3);
 lcd.print((char)223);
 lcd.print(" ");
 if (T3 < 25) EstadoCalent=0;
 if (T3 > 26) EstadoCalent=1;
 if (T1 < 25) EstadoVentil=0;
 if (T1 > 26) EstadoVentil=1;
 if (T2 < 25) EstadoCentil=0;
 if (T2 > 26) EstadoCentil=1;
 lcd.setCursor(16, 3);
   if(EstadoCalent==1 ){
   digitalWrite(PinCalentador, LOW);
   lcd.write(6);lcd.write(5);lcd.write(5);
 }
 else
 {
   digitalWrite(PinCalentador, HIGH);
   lcd.write(6);
 }
 lcd.setCursor(16, 1);
 if(EstadoVentil==1 )//decimos al rele el encendido y apagado//
 {
   digitalWrite(PinVentilador, LOW);
   lcd.write(6);lcd.write(5);lcd.write(5);
 }
 else
 {
   digitalWrite(PinVentilador, HIGH);
   lcd.write(6);
 }
   lcd.setCursor(16, 2);
 if(EstadoVentil==1 )//decimos al rele el encendido y apagado//
 {
   digitalWrite(PinVentilador, LOW);
   lcd.write(6);lcd.write(5);lcd.write(5);
 }
 else
 {
   digitalWrite(PinVentilador, HIGH);
   lcd.write(6);
 }

 delay(Retraso);
}


jorgepl

Supongo que en la función Temperatura() ya habrás comprobado a enviar por puerto serie T1, T2 y T3 para ver que estás leyendo del onewire y es ahí donde ves que los valores son iguales, ¿no? Si es así el código que has puesto no dice nada, porque el problema está antes.

Por cierto, ¿qué dos valores son iguales? ¿deberían ser distintos? ¿son siempre los mismos? ¿Son valores lógicos o fuera de rango?

Por otro lado, supongo que en el setup habrás puesto la inicialización que te indicaba Humphrey, ¿verdad?

Hola
He mirado un poco por encima el código y me parece que lo que falta es iniciarlizar los sensores, con:

sensores.begin();

en el setup debería servirte.

medina

#17
Jun 29, 2012, 12:25 pm Last Edit: Jun 29, 2012, 12:48 pm by medina Reason: 1
jorge esta en el setup
tengo que decirte   que
sin conectar la sonda t2  la temperatura en pantalla es la misma para t1(conectada) y t2 ( desconectada ) y la t3(conectada) marca su temperatura ,en cuanto conecto la sonda t2 a sus hermanas  se pone como en corto y marca todas 1º mando en zip el codigo .y gracias por tu interes
estan juntadas  las  data (amarillo)junto al positivo+r4.7k a vcc y  (rojo y negro) al gnd( son ds1820 enfundados )vamos cuando esta dos sondas va de fabula tres como que no  :smiley-zipper:

jorgepl


jorge esta en el setup
tengo que decirte   que
sin conectar la sonda t2  la temperatura en pantalla es la misma para t1(conectada) y t2 ( desconectada ) y la t3(conectada) marca su temperatura ,en cuanto conecto la sonda t2 a sus hermanas  se pone como en corto y marca todas 1º mando en zip el codigo .y gracias por tu interes
estan juntadas  las  data (amarillo)junto al positivo+r4.7k a vcc y  (rojo y negro) al gnd( son ds1820 enfundados )vamos cuando esta dos sondas va de fabula tres como que no  :smiley-zipper:

No entiendo muy bien que quieres decir

Debes ir probando las cosas poco a poco, para asegurarte de que vas haciendo las cosas bien y, si tienes un fallo, poder localizarlo fácilmente. Para saber si es un problema de hardware o del 1-wire, configura el puerto serie del arduino para poder utilizar el monitor serie (serial.begin() en el setup) y en la función temperatura manda por puerto serie las lecturas de las sondas cuando las hagas:

Code: [Select]

void Temperatura(int minutos, int horas)
{
  float T1;
  float T2;
   float T3;
  sensores.requestTemperatures();
  T1=sensores.getTempCByIndex(0)+1;
  T2=sensores.getTempCByIndex(1)+1;
  T3=sensores.getTempCByIndex(2)+1;
  serial.print("T1: ");
  serial.println(T1,2);
  serial.print("T2: ");
  serial.println(T2,2);
  serial.print("T3: ");
  serial.println(T3,2);


Así, verás en el monitor serie los valores que estás leyendo de cada sonda.

Con este código empieza a hacer pruebas de conexión de las sondas una a una, desconexión de sondas una a una,...Así podrás ver si es una en concreto la que falla o es siempre la última sonda que conectas o ....

Si es una sonda la que falla siempre, prueba a cambiarla. Si tienes más sondas, prueba también con ellas.

Si ves que las lecturas del monitor serie son correctas, entonces el problema estará en tu código y entonces le echaremos un vistazo a ver que pasa.


medina

jorge muchisimas gracias por tu ayuda y por el seguimiento de mi problema desde el principio ,por el tema del serial port  no pude verlo ya que mi lcd no es serial ,despues de cambiar serial x lcd ,aun seguia sin ver nada por el monitor serial,de todas forma con tu codigo he conseguido que se vean las tres temperaturas diferentes , al final eran dos cosas una sonda mala  que reclamare al chino (hay que tener cuidado  con este material barato  pero quebradero )y el codigo incompleto  .
un enorme thank you  para ti jorge
atentamente miguel angél

jorgepl

De nada, hombre, de nada.  ;)

medina

#21
Jun 29, 2012, 06:47 pm Last Edit: Jun 29, 2012, 06:49 pm by medina Reason: 1
OTRA COSILLA  CADA VEZ QUE INTRODUZCO EL CODIGO Y RETIRO EL USB  EL LCD SE VUELVE MAJARA ,LE DOY AL RESET Y SE PONE  SUAVEEEEEE ,TE LO COMENTO POR QUE ES UN COÑ.....ZO TENER QUE PULSAR EL RESET DESPUES DE INSERTAR UN CODIGO
POR CASUALIDAD JORGE NO SERAS "jmcadsl"

Go Up