Lectura de ds18b20


saludos.
estoy intentando leer la temperatura en 3 sitios con 3 termómetros tipo ds18b20, pero no consigo que me salgan lecturas razonables.

he comprobado lo mejor que podido las conexiones, ya que no se me ocurre que el problema pueda ser por otra cosa, pero todo parece estar bien, y además son conexiones bien simples...: los cables amarillos los conectado entre sí, y con un cable que va al pin 42 de un arduino mega. están conectados "los cables rojos" con una única resistencia de 4,7 kohms. los cables rojos, conectados entre sí y la resistencia de 4,7 kohms  van una conexión 5 v. los cables negros, todos conectados entre sí, van tierra.

he probado también poner los cables rojos tierra (conexión parásita), pero tampoco sale una lectura correcta, y creo que la configuración anterior es mejor.


bueno, pues mejor o peor, ninguna me funciona.

cuando pruebo subir el ejemplo ds18x20_temperaturearduino de la librería onewire, compila todo correcto, y las direcciones, creo que me las da bien, pero la temperatura que mide es 80ºc para los 3 sensores, haga lo que haga:

esto es lo que veo en el monitor serial:

rom = 28 ff 5c a9 73 16 5 b4
chip = ds18b20
data = 1 50 5 4b 46 1f ff 1f 10 35  crc=35
temperature = 85.00 celsius, 185.00 fahrenheit
rom = 28 ff e2 b3 74 16 4 5e
chip = ds18b20
data = 1 50 5 4b 46 1f ff 1f 10 35  crc=35
temperature = 85.00 celsius, 185.00 fahrenheit
rom = 28 ff 25 b1 74 16 4 2a
chip = ds18b20
data = 1 50 5 4b 46 1f ff 1f 10 35  crc=35
temperature = 85.00 celsius, 185.00 fahrenheit
no more addresses.



he escrito el ino que copio debajo, que creo que es lo que necesito. también lo compila, y sube sin problemas, pero la temperatura me da 27,00ºc para los 3 sensores, utilizando las direcciones que obtenidas con el ejemplo de onewire, y no cambia nunca nada...¿qué puede estar pasando? ¿qué puedo hacer? mil gracias por vuestra ayuda!!

code: [select]
#include <utft.h>
#include <urtouch.h>
#include <onewire.h>
#include <dallastemperature.h>

onewire onewirebus(42);                   //sensores de temperatura conectados al pin 42.
dallastemperature sensors(&onewirebus);  
deviceaddress sensor_acuario= {0x28, 0xff, 0x25, 0xb1, 0x74, 0x16, 0x4, 0x2a };
deviceaddress sensor_sump = {0x28, 0xff, 0x5c, 0xa9, 0x73, 0x16, 0x05, 0xb4 };
deviceaddress sensor_habitacion = {0x28, 0xff, 0xe2, 0xb3, 0x74, 0x16, 0x04, 0x5e };

float tempc=0;              // temperatura de agua
float temps=0;            // temperatura del sump
float temphb=0;        //temperatura habiración


long previousmillis = 0;


void setup() {

serial.begin(9600);
sensors.begin();

}

void checktempc(){

sensors.requesttemperatures();  

tempc = (sensors.gettempc(sensor_acuario));  
temps = (sensors.gettempc(sensor_sump));  
temphb = (sensors. gettempc(sensor_habitacion));      


serial.print ("temp acuario= ");
serial.print (tempc);
serial.println(" c");

serial.print ("temp sump= ");
serial.print (temps);
serial.println(" c");


serial.print ("temperatura habitacion= ");
serial.print (temphb);
serial.println(" c");

}

void loop()
{

if (millis() - previousmillis > 5000)    // verifica las funciones cada 5 segundos.
{

previusmillis=millis();

  checktempc(); // verifica las temperaturas.

}

cable rojo entendemos que es alimentación, cable amarillo datos y cable negro masa, pero tendrás que asegurar que esto es así. para ello si no está encapsulado mirándolo de frente la parte plana el pin de mas la izquierda el 1 es gnd, el del medio pin 2 datos y el de la derecha pin 3 alimentación.
entonces gnd lo conectas gnd de arduino, datos al pin 42 del arduino y alimentación al pin de 5 voltios del arduino y la resistencia una patita en el pin 42 y la otra en el pin de 5v.
yo iría conectando de uno en uno, cuando consigas que funcione el primero conectas el segundo en paralelo y luego el tercero.
por descartar que alguno este mal.
nos cuentas.
un saludo.


Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > Lectura de ds18b20


arduino

Comments

Popular posts from this blog

Flip address is out of range arduino uno r3

Arduino Uno not uploading

Indesign and MathType fonts