Arduino
Registrador de temperatura en SD
DS18S20
xsetaseta@gmail.com
Registrador de temperatura en SD
DS18S20
xsetaseta@gmail.com
Este montaje utiliza la tarjeta Arduino Ethernet Shieldb como lectora de tarjetas micro SD para almacenar la temperatura de dos sensores DS18S20 colocados en un cable de dos hilos utilizando la librería OneWire.
Lo primero recomiendo leer varios tutoriales sobre el funcionamiento del sistema de comunicaciones OneWire, http://en.wikipedia.org/wiki/1-Wire .
También es fundamental ver la descripción del DS18S20, un medidor de temperaturas desde -55ºC a +125ºC y con un margen de +\- 0,5ºC.
Si queremos más resolución podemos emplear los registros COUNT REMAIN y COUNT PER °C, pero en este montaje no se va emplear. Si alguno desea saber como hacerlo, recomiendo la lectura del manual del CI, no es difícil su realización.
Este integrado posee la cualidad de poder alimentarse desde la propia línea de datos al poseer un condensador interno. Esto nos posibilita el poder utilizar un simple cable de dos hilos. Además podemos colocar varios DS18S20 a lo largo del cable para de esta forma poder medir diferentes temperaturas.
Esquema del circuito.
Circuito montado y funcionando.
Los datos se almacenan en la SD y se mandan a través del puerto serie.
Como vemos en la imagen hemos colocado un led a modo de piloto para indicar si funciona la microSD y cuando podemos extraer la tarjeta microSD. Este led se coloca junto con una resistencia en serie de 1k al pin 3 del arduino.
Sonda exterior colocada en la calle mediante un cable de dos hilos.
Si queremos dejarla fija, deberiamos sellarla con silicona para impedir que se moje.
Vemos mediante la consola la temperatura de los dos sensores.
He colocado un contador para seguir cada serie de lecturas.
El programa crea un fichero de texto TEMPE.TXT donde se registra la temperatura de los distintos sensores.
Las lecturas en la SD se van acumulando.
Para conseguir temperaturas negativas he tenido que meter la sonda al frigorífico.
// Programa hecho por JUAN GALAZ |
Como se puede observar el código para determinar la temperatura es un tanto particular, es debido a que no quiero utilizar float.
Un saludo.
JUAN GALAZ
Bibliografía:
http://en.wikipedia.org/wiki/1-Wire .
tallerarduino.wordpress.com David Alvarez Medina
http://bildr.org/2011/07/ds18b20-arduino/
http://owfs.org/index.php?page=ds18s20