You are on page 1of 11

03/10/12

Tutorial Arduino # 0005 - Sensor de temperatura NTC

INICIO

ARDUINO

WASPMOTE

3D PRINTERS

HW & ANDROID

NOTICIAS

YOUTUBE

ABOUT

Tutorial Arduino # 0005 Sensor de temperatura NTC


04 dic 2011 A LA RMA T EMPERA T URA , A rduino, ECUA CION NT C, NT C, PT C by Pablo Murillo

62

Subscribers

1,129 1,318

Followers

Fans

Buscas algo..???

# Sensor de temperatura NTC


Bienvenidos a un nuevo tutorial para sacar el mximo partido a vuestro Arduino, seguimos con los sensores, en este caso exploramos las posibilidades de un sensor de temperatura NTC: Nivel: Bsico Coste: <30 Tiempo: 25

Suscrbete a Arduteka!!
Os recomiendo leer previamente los anteriores tutoriales por si tenis dificultades en alguna parte de este proyecto, o bien, para recordar conceptos de programacin ya mostrados.

Parte 1: Que vamos a hacer?


En este proyecto vamos a aprender a implementar un sensor de temperatura a nuestros proyectos Arduino, en este proyecto simularemos cinco estados de aviso de exceso de temperatura, sobre los cuales los cuales podramos conectar cualquier elemento que quisiramos que actuara llegado dicho nivel, podramos conectar circuitos de ventilacin de manera que si no consiguieran mitigar el exceso de calor llegara un punto que desconectara el sistema que estemos monitorizando, en resumen, en cualquier lugar donde un control de exceso de temperatura sea necesario.

Introduce aqu tu e-mail y recibe al instante todas las novedades de Arduteka!! nete a otros 166 suscriptores

Correo electrnico Suscribir ahora!!

Recientes Tambin vamos a controlar la temperatura va puerto serie, ya que todava no hemos hablado de cmo utilizar los LCD en nuestro Arduino, todo llegar.

Populares

Comentarios

Comparativa - Pulsadores para proyectos

www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/

1/11

03/10/12

Tutorial Arduino # 0005 - Sensor de temperatura NTC


De nuevo hemos incorporado un pequeo potencimetro que nos permitir establecer una temperatura, a partir de la cual nos vaya dando los avisos (led) en unos intervalos fijados en nuestro programa. He elegido realizar un programa de aviso de exceso de temperatura, pero igualmente se podra utilizar el NTC para un sistema en que necesitemos controlar que no descienda la temperatura a partir de un punto crtico. Veamos un video que muestra el resultado final: 03 oct 2012, 1 Comment

Cmo construir una RepRap Prusa Mendel IT2 desde cero 01 oct 2012, 0 Comment Arduteka - Lo que en Len se esconde 27 sep 2012, 1 Comment

ULTIMOS VIDEOS

Material necesario para este proyecto: 1 x Arduino Uno 1 x Protoboard 1 x NTC 1 x Potencimetro 10k 5 x Diodos LED 5 x Resistencias 220 1 x Resistencia 1K 1 x Juego de Cables

Tweets Arduteka!

En el bal: Componentes - Los Resistores!! tinyurl.com/954vsqu 5 hours ago Felicidades a @MultiploRobot por su campaa en kickstarter an podis colaborar! 5 ltimos das! arduteka.com/2012/09/n8-rob 7 hours ago RT @lacolaborativa: Con

Parte 2: Diseando el hardware


En este nuevo proyecto Arduino tenemos que conseguir, mediante una NTC (Negative Temperature Coefficient o Coeficiente de Temperatura Negativo) activar 5 salidas de nuestro Arduino, una de esas salidas nos mostrar que la temperatura est por debajo del nivel crtico, y a partir de ese nivel, ir activando una salida tras otra cada dos grados que aumente la temperatura. Veris en el video que segn va aumentando la temperatura, se van incrementado los LED encendidos, lo he realizado as por que es ms visual para la comprensin del funcionamiento, podris ver en la seccin de programacin que es muy sencillo cambiar esto para que solo active un LED o varios, o lo que necesitis. Adems vamos a colocar un potencimetro para ajusta la temperatura, a partir de la cual, nos empezar a lanzar los avisos. Visto esto, estructuremos el circuito en tres partes: Entrada de temperatura ambiente. Entrada de ajuste mnimo de temperatura. Salidas.

@antoninoycinia, presentando a "Candela" en los #miercolesabiertos #DIYLeon #DIWOLeon #replicator CC @makintus h ... - 7 hours ago

Entrada de temperatura ambiente. Estamos utilizando una NTC, es decir, una resistencia con coeficiente de temperatura negativo respecto a la variacin de su resistencia, esto es que a ms temperatura, aumentar la concentracin de portadores, lo que har que su resistencia sea menor.

www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/

2/11

03/10/12

Tutorial Arduino # 0005 - Sensor de temperatura NTC


La manera de conectar este sensor a nuestro circuito va a ser formando un divisor de tensin con su salida a una entrada analgica (podis ver en este ejemplo como funciona una entrada analgica), en el que nuestra NTC ser la resistencia inferior, lo que adems nos proteger de un problema que tienen estos sensores, cuando la corriente que circula por l es baja, no tenemos ningn problema, pues la disipacin de calor es casi nula (VxI2) pero si la aumentamos, llegamos a un punto en que esa disipacin afecta a la resistencia del sensor, por lo que deducimos que la respuesta de una NTC no es lineal sino hiperblica, pero al colocarlo como un divisor de tensin la variacin de tensin Vout va a ser prcticamente lineal.

En cuanto a la otra resistencia que formar el divisor de tensin, utilizaremos una de 1K, esto es as para aprovechar el rango de muestreo que nos proporciona Arduino con un consumo de corriente limitado, veamos rpidamente el motivo. Si recordamos la ecuacin del divisor de tensin:

Veremos que si la resistencia mxima de nuestra NTC va a ser 10K, y la fija de 1K, tendremos una variacin de tensin entre 0v y 4,55v. Podis hacer cuentas vosotros mismos con otros valores y veris que si aumentamos la resistencia, disminuye el rango de Vout, y si la disminuimos, aumentar los consumos de corriente en exceso. Entrada de ajuste mnimo de temperatura. Para tener un mando sobre el que ajustar la temperatura mnima, simplemente colocaremos un potencimetro dispuesto como divisor de tensin, a una de las entradas analgicas y utilizaremos su muestreo para mapearlo a nuestro antojo como veremos en la seccin de programacin. Salidas. Para las salidas utilizaremos la ya conocida configuracin de LED ms resistencia. De manera que el esquema elctrico global nos quedara as:

www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/

3/11

03/10/12

Tutorial Arduino # 0005 - Sensor de temperatura NTC

Y las conexiones en nuestra protoboard

Parte 3: Programando
Veamos primero el cdigo al completo: 1 2 3 4 5 6 7 8 9 1 0 / * Ttra #00 AdioAaey-Sno NC uoil 05 run cdm esr T Cncao uaNCauaetaa oetms n T n nrd aaiapr cnrlrcnoslds nlgc aa otoa ic aia e fnind l tmearr. n uc e a eprtua Ae uiiaeo u pneimtopr dms tlzrms n otcer aa cnrlrl tmeauaapri d l ca otoa a eprtr atr e a ul s atvrnlsslds e cia a aia
?

www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/

4/11

03/10/12
1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 9 0 9 1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0

Tutorial Arduino # 0005 - Sensor de temperatura NTC


Et poet e d dmnopbio se ryco s e oii lc. * / /Aaio l lbe mt. /dms a irra ahh #nld <ahh icue mt.> /Pnspr lsLD /ie aa o E itpne1=8 n iLd ; itpne2=9 n iLd ; itpne3=1; n iLd 0 itpne4=1; n iLd 1 itpne5=1; n iLd 2 /Pnspr lsetaa aaia /ie aa a nrds nlgcs itaaoPn =0 n nlgi1 ; itaaoPn =1 n nlgi2 ; /Ecl d Aio /saa e vss itecl =2 n saa ; /Vral pr l tmeauad dsao /aibe aa a eprtr e ipr dul tmMn=00 obe epi .; /Dtspr lseucoe /ao aa a cains fotVn=50 la i .; / [] / V fotRia=10; / [h] la fj 00 / om fotR5=20; la 2 80 / [h] / om fotBt =30.;/ [] la ea 900 / K fotT =231; / [] la 0 9.5 / K fotVu =00 la ot .; fotRt =00 la nc .; fotTmK=00 la ep .; fotTmC=00 la ep .; vi stp){ od eu( /Cmnao l cmncc pet sre /oezms a ouiain uro ei Sra.ei(60; eilbgn90) /Dcaao pnsd sld /elrms ie e aia pnoepne1 OTU) iMd(iLd, UPT; pnoepne2 OTU) iMd(iLd, UPT; pnoepne3 OTU) iMd(iLd, UPT; pnoepne4 OTU) iMd(iLd, UPT; pnoepne5 OTU) iMd(iLd, UPT; /Ylspnsd etaa / o ie e nrd pnoeaaoPn,IPT; iMd(nlgi1 NU) pnoeaaoPn,IPT; iMd(nlgi2 NU) } vi lo( od op) { /Pieoleo e poecer /rmr ems l otnimto tmMn=aaoRa(nlgi2; epi nlgedaaoPn) /L mpao avlrsd -0 a80 /o aems aoe e 10 0 tmMn=mp(epi,0 12,-0,80; epi a tmMn , 03 10 0) /Yl dvdmsete1 pr dreu dcml / o iiio nr 0 aa al n eia tmMn=tmMn1; epi epi/0 /Ylnao e aut etbeiovasre / azms l jse salcd i ei Sra.rnl(------------------------) eilpitn"-----------------------"; Sra.rnl(; eilpitn) Sra.rn(AUT D TMEAUAMNM A"; eilpit"JSE E EPRTR IIA ) Sra.rn(epi) eilpittmMn; Sra.rnl( GAO CLIS) eilpitn" RDS ESU"; Sra.rnl(; eilpitn) Sra.rnl(------------------------) eilpitn"-----------------------"; /Yaoacluao l Tmeaua / hr aclms a eprtr /Pieol Vu dldvsr /rmr a ot e iio Vu=Vn12)(nlgedaaoPn); ot(i/04*aaoRa(nlgi1) /Aoal rssecad l NC /hr a eitni e a T Rt=Vu*fj)(i-ot; nc(otRia/VnVu) /Yprtm l tmeauae Kli / o lio a eprtr n evn TmK=Bt/lgRt/2)(eaT); ep ea(o(ncR5+Bt/0) /Yaoal psmsaclis / hr a aao esu TmC=TmK231; ep ep-7.5 /Yl msrmsprpet sre / o otao o uro ei Sra.rnl(; eilpitn) Sra.rn(L TMEAUAD L NCE D "; eilpit"A EPRTR E A T S E ) Sra.rn(ep) eilpitTmC; Sra.rnl( GAO CLIS) eilpitn" RDS ESU"; Sra.rnl(; eilpitn) /Aoalscmaainspr lsslds /hr a oprcoe aa a aia i(ep <tmMn fTmC epi) / [] / V / [h] / om / [] / K / [C / ] Tninaietc dldvsr es lmnain e iio Rssecafj dldvsr eitni ia e iio Vlrd NCa2 ao e T 5C PrmtoBt d NC aer ea e T Tmeauad rfrni e Kli eprtr e eeeca n evn Vral pr amcnrVu aibe aa laea ot Vral pr NCe omis aibe aa T n hno Tmeauasld e Kli eprtr aia n evn Tmeauasld e Clis eprtr aia n esu

www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/

5/11

03/10/12
18 0 19 0 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 10 2 11 2 12 2 13 2 14 2 15 2 16 2 17 2 18 2 19 2 10 3 11 3 12 3 13 3 14 3 15 3 16 3 17 3 18 3 19 3 10 4 11 4 12 4 13 4 14 4 15 4 16 4 17 4 18 4 19 4 10 5

Tutorial Arduino # 0005 - Sensor de temperatura NTC


{ dgtlrt(iLd,HG) iiaWiepne1 IH; dgtlrt(iLd,LW; iiaWiepne2 O) dgtlrt(iLd,LW; iiaWiepne3 O) dgtlrt(iLd,LW; iiaWiepne4 O) dgtlrt(iLd,LW; iiaWiepne5 O) } es i ((ep < (epi +ecl) &(ep >tmMn) le f (TmC = tmMn saa) TmC epi)) { dgtlrt(iLd,HG) iiaWiepne1 IH; dgtlrt(iLd,HG) iiaWiepne2 IH; dgtlrt(iLd,LW; iiaWiepne3 O) dgtlrt(iLd,LW; iiaWiepne4 O) dgtlrt(iLd,LW; iiaWiepne5 O) } es i ((ep<(epi+ecl*))(ep>epi+saa) le f (TmC=tmMn(saa2)&TmCtmMnecl)) { dgtlrt(iLd,HG) iiaWiepne1 IH; dgtlrt(iLd,HG) iiaWiepne2 IH; dgtlrt(iLd,HG) iiaWiepne3 IH; dgtlrt(iLd,LW; iiaWiepne4 O) dgtlrt(iLd,LW; iiaWiepne5 O) } es i (TmC=tmMn(saa3)&TmCtmMn(saa2) le f (ep<(epi+ecl*))(ep>epi+ecl*)) { dgtlrt(iLd,HG) iiaWiepne1 IH; dgtlrt(iLd,HG) iiaWiepne2 IH; dgtlrt(iLd,HG) iiaWiepne3 IH; dgtlrt(iLd,HG) iiaWiepne4 IH; dgtlrt(iLd,LW; iiaWiepne5 O) } es i (ep >(epi +(saa4) le f TmC tmMn ecl*)) { dgtlrt(iLd,HG) iiaWiepne1 IH; dgtlrt(iLd,HG) iiaWiepne2 IH; dgtlrt(iLd,HG) iiaWiepne3 IH; dgtlrt(iLd,HG) iiaWiepne4 IH; dgtlrt(iLd,HG) iiaWiepne5 IH; } /U pqeodlypr n vle lc a pet sre /n eu ea aa o ovr oo l uro ei dly50; ea(0)

Empecemos a sacarle brillo! La primera lnea que nos resulta desconocida es: 1 #nld <ahh icue mt.>
?

Cuando ponemos #include <librera.h> lo que hacemos es importar las funciones que haya en esa librera a nuestro programa, en este caso, la librera math.h nos va aadir la posibilidad de realizar operaciones matemticas algo ms complejas, es como cuando Neo aprenda a hacer cosas en Matrix en segundos.. (punto friki.. sorry). En arduino tenemos infinidad de libreras que iremos descubriendo poco a poco, sigamos! Lo siguiente que nos encontramos es la definicin de los pines de entrada y de salida, ya sabemos de sobra a que nos referimos si habis seguido los anteriores tutoriales. 1 2 3 4 5 6 7 8 9 1 0 /Pnspr lsLD /ie aa o E itpne1=8 n iLd ; itpne2=9 n iLd ; itpne3=1; n iLd 0 itpne4=1; n iLd 1 itpne5=1; n iLd 2 /Pnspr lsetaa aaia /ie aa a nrds nlgcs itaaoPn =0 n nlgi1 ; itaaoPn =1 n nlgi2 ;
?

Pero despus de esto declaramos la variable escala como entero: 1 itecl =2 n saa ;
?

Esta variable la utilizaremos para establecer el intervalo que queremos que haya entre alarmas, es decir, si yo pongo una temperatura de disparo de 20C, con una escala de 2 la primera alarma ser a 20, la segunda a 22, la tercera a 24, etc Ahora introduciremos los datos para hacer las ecuaciones que nos permitirn, en base a a la lectura de nuestra entrada analgica conectada al divisor de tensin, calcular la temperatura. 1 2 3 4 5 fotVn=50 la i .; / [] / V fotRia=10; / [h] la fj 00 / om fotR5=20; la 2 80 / [h] / om fotBt =30.;/ [] la ea 900 / K fotT =231; / [] la 0 9.5 / K Tninaietc dldvsr es lmnain e iio Rssecafj dldvsr eitni ia e iio Vlrd NCa2 ao e T 5C PrmtoBt d NC aer ea e T Tmeauad rfrni e Kli eprtr e eeeca n evn
?

www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/

6/11

03/10/12
6 7 8 9 1 0 1 1

Tutorial Arduino # 0005 - Sensor de temperatura NTC


fotVu =00 la ot .; fotRt =00 la nc .; fotTmK=00 la ep .; fotTmC=00 la ep .; / [] / V / [h] / om / [] / K / [C / ] Vral pr amcnrVu aibe aa laea ot Vral pr NCe omis aibe aa T n hno Tmeauasld e Kli eprtr aia n evn Tmeauasld e Clis eprtr aia n esu

Veris que a la hora de definir el tipo de cada variable, tenemos algo nuevo, la variable de tipo float, esta variable es para los nmeros en coma flotante (nmero decimal), estas variables tienen un valor mximo 3.4028235E+38, y como mnimo -3.4028235E+38. Ocupan 4bytes (32bits) con una resolucin mucho mayor que los enteros, lo que nos permitir hacer clculos bastante precisos, debemos tener en cuenta no olvidarnos de poner la coma en los nmeros que utilicemos en la operacin como vemos en las lneas de cdigo, de manera que evitemos errores de interpretacin en nuestro programa. En cuanto a los parmetros necesitaremos conocer 2 datos de nuestra NTC que vendrn dispuestos en el datasheet, una resistencia de referencia a una temperatura determinada, en nuestro caso 2800 a 25 y la Beta de nuestra NTC en Kelvin, para nosotros 3950 K. Un poco ms abajo explicaremos en detalle todo esto. Un vez finalizada la declaracin de variables globales, nos toca configurar el setup, de nuevo tenemos una lnea nueva! 1 Sra.ei(60; eilbgn90)
?

Esta instruccin nos inicializa la comunicacin puerto serie desde Arduino al PC a una velocidad de 9600 baudios (bits por segundo), con esto, cualquier cosa que enviemos lo podremos visualizar en el monitor de puerto serie de nuestro software de Arduino o cualquier otro.

Luego, como siempre, declaramos que pines van a ser entradas y cuales van a ser salidas. 1 2 3 4 5 6 7 8 9 1 0 /Dcaao pnsd sld /elrms ie e aia pnoepne1 OTU) iMd(iLd, UPT; pnoepne2 OTU) iMd(iLd, UPT; pnoepne3 OTU) iMd(iLd, UPT; pnoepne4 OTU) iMd(iLd, UPT; pnoepne5 OTU) iMd(iLd, UPT; /Ylspnsd etaa / o ie e nrd pnoeaaoPn,IPT; iMd(nlgi1 NU) pnoeaaoPn,IPT; iMd(nlgi2 NU)
?

Ahora comenzamos con el bucle, en primer lugar leemos la seal de nuestro potencimetro para establecer una temperatura de referencia sobre la que comparar la temperatura de la NTC y disparar los avisos. Primero leemos el valor del pin analgico 2 y lo almacenamos en tempMin: 1 tmMn=aaoRa(nlgi2; epi nlgedaaoPn)
?

Acniuc tnmsuaneaisrcin otnain eeo n uv ntuc: 1 tmMn=mp(epi,0 12,-0,80; epi a tmMn , 03 10 0)


?

L fninmpteeet etutr: a uc a in sa srcua map(valor, fromLow, fromHigh, toLow, toHigh) E dcr cm s l djrms Tasmm epi qepeei d 0a12 e s ei, oo i e iao: rnfrae tmMn, u ud r e 03 n vlrseclndsypoocoao dse-0 hs80 aoe saoao rprinds ed 10 a 0. Cnet aatmsl lcuadlptnimtoau rnod -0 a80 et l o so dpao a etr e oecer n ag e 10 0, so o hmshcoapr qea dvdrete1 e vlr eo eh s aa u l iii nr 0 l ao: tempMin = tempMin/10; Nos devuelva una temperatura de referencia entre -10.0 y +80.0, con esto podremos ajustar la temperatura de disparo con una precisin de 0.1. A continuacin lo que hacemos es mandar por el puerto serie el dato prefijado para tener una referencia visual del mismo.

www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/

7/11

03/10/12
1 2 3 4 5 6 7

Tutorial Arduino # 0005 - Sensor de temperatura NTC


Sra.rnl(------------------------) eilpitn"-----------------------"; Sra.rnl(; eilpitn) Sra.rn(AUT D TMEAUAMNM A"; eilpit"JSE E EPRTR IIA ) Sra.rn(epi) eilpittmMn; Sra.rnl( GAO CLIS) eilpitn" RDS ESU"; Sra.rnl(; eilpitn) Sra.rnl(------------------------) eilpitn"-----------------------";
?

Vemos dos instrucciones nuevas: 1 2 Sra.rnl(;/IpieyslaaLnaNea eilpitn) /mrm at e uv Sra.rn(; /Ipiee l msalna eilpit) /mrm n a im e
?

Esto nos enviar por puerto serie cualquier cosa que incluyamos dentro de ( ), si es una variable, con poner el nombre de la variable es suficiente, como se puede ver con tempMin, pero tambin podemos mandar cualquier texto que queramos, siempre que lo incluyamos entre comillas, como se puede ver, yo lo nico que he hecho es crear unas lneas de separacin entre la variable que lanzo, para que se lean mejor los datos va serie. Y ahora llega lo ms complicado del programa, el clculo de temperatura a partir de la medida analgica. Para realizar esto debemos conocer algo de teora. Teniendo en cuenta que el fabricante nos da el valor resistivo para una temperatura en concreto (en nuestro caso 2800 para 25) y la Beta (Temperatura caracterstica del material entre 2000K y 4000K) podemos utilizar la ecuacin que relaciona la resistencia de la NTC y la temperatura para calcular esta ltima, primero veamos la ecuacin:

Siendo: Rt = Resistencia a temperatura T en grados Kelvin (k = C + 273,15) Ro = Resistencia de referencia a una temperatura To en Kelvin. B = Valor Beta de nuestra NTC. To = Temperatura de referencia en Kelvin. T = Temperatura a medir.

Con esta ecuacin podremos saber cual ser la resistencia mxima que nos va a dar nuestra NTC al calcular su curva caracterstica, en nuestro caso, 10K lo que nos sirve para disear el divisor de tensin.

Observamos que, si calculamos Rt, tendremos todos los datos para hallar la temperatura en un valor de resistencia determinado despejando T, veamos la ecuacin despejada que utilizaremos en nuestro programa:

www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/

8/11

03/10/12

Tutorial Arduino # 0005 - Sensor de temperatura NTC


Bien, ya tenemos la ecuacin para hallar la temperatura, pero nos faltara saber cual es la resistencia de la NTC, para esto primero calcularemos cual es la tensin de entrada de nuestra entrada analgica, es decir, la Vout de nuestro divisor de tensin:

Con esto hallamos cuanto vale cada bit de la conversin analgico-digital (recordemos que nuestro conversor divide los 5 voltios entre 1024 cachitos) y lo multiplicamos por la cantidad de bit que nos lee la entrada analgica, con lo que tenemos la tensin que le est llegando a la entrada analgica. Una vez tenemos esto, si recordamos la frmula del divisor de tensin:

Vemos que tenemos todos los datos a excepcin de Rinferior, que es justo la resistencia de la NTC que necesitamos para calcular la temperatura, por lo que despejando nos queda:

Con esto ya tenemos todos los datos para calcular nuestra temperatura a partir de las lecturas de la entrada analgica, de manera que nos quedar de la siguiente manera al plasmarlo en nuestro programa. 1 2 3 4 5 6 7 8 9 1 0 1 1 /Pieol Vu dldvsr /rmr a ot e iio Vu=Vn12)(nlgedaaoPn); ot(i/04*aaoRa(nlgi1) /Aoal rssecad l NC /hr a eitni e a T Rt=Vu*fj)(i-ot; nc(otRia/VnVu) /Yprtm l tmeauae Kli / o lio a eprtr n evn TmK=Bt/lgRt/2)(eaT); ep ea(o(ncR5+Bt/0) /Aoal psmsaclis /hr a aao esu TmC=TmK231; ep ep-7.5
?

Ahora lo nico que hacemos es enviarlo como antes he explicado por el puerto serie: 1 2 3 4 5 Sra.rnl(; eilpitn) Sra.rn(L TMEAUAD L NCE D "; eilpit"A EPRTR E A T S E ) Sra.rn(ep) eilpitTmC; Sra.rnl( GAO CLIS) eilpitn" RDS ESU"; Sra.rnl(; eilpitn)
?

Para mostrar las salidas podis ver que el cdigo es muy similar al del proyecto del diodo LED, si necesitis que lo explique no tengo inconveniente, pero no quiero repetir demasiadas cosas en los post, creo que se entienden muy bien las comparaciones. El delay que hemos puesto al final es para que los mande la temperatura cada medio segundo por el puerto serie. Y esto es todo!! Como veis vamos aumentando el nivel progresivamente, espero que no sean demasiado bruscos los cambios, si es as decrmelo!! Hasta pronto!!

Sobre el autor...

Comparte en tu red social!


www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/ 9/11

03/10/12

Tutorial Arduino # 0005 - Sensor de temperatura NTC

9 Comments
Jorge
5 diciembre, 2011 at 14:15 Responder

Excelente tutorial, he aprendido un huevo.

fuseprods

6 diciembre, 2011 at 13:02 Responder

Excelente tutorial, lstima que justo ayer me compr tres sensores LM35 para empezar a cacharrear con temperaturas... xD Pingback: Componentes Sensor de temperatura NTC | ARDUINO ACADEMY

Alejandro

30 enero, 2012 at 22:30 Responder

Perdona, pero, en el cdigo usas log, no debera ser ln (neperiano) o algo as?

Arduino Academy

30 enero, 2012 at 23:58 Responder

Hola! No, la sintaxis log(valor) ya hace referencia al logaritmo neperiano, si quisieras trabajar en otra base, sera log10(valor) para base 10 por ejemplo. Te dejo aqu algo de referencia, es algo lioso.. XD Un saludo!! double cos (double __x) // devuelve el coseno de x en radianes double fabs (double __x) // valor absoluto de un nmero en coma flotante double fmod (double __x, double __y) // modulo en coma flotante double modf (double __value, double *__iptr) //calcula el valor del argumento double sin (double __x) // devuelve el seno de x en radianes double sqrt (double __x) // devuelve la raz cuadrada de x en radianes double tan (double __x) // devuelve la tangente de x en radianes double exp (double __x) // devuelve el valor exponencial de x double atan (double __x) // arco tangente de x double atan2 (double __y, // arco tangente de y/x double log (double __x) // logaritmo neperiano de x double log10 (double __x) // logaritmo en base 10 de x double pow (double __x, double __y) // x elevado a y double square (double __x) // cuadrado de x

David

6 marzo, 2012 at 17:14 Responder

Hola,podrais adaptar el programa para un sensor de magnetismo?(Es con un cable de cobre.La pgina donde lo encontr es:http://www.aaronalai.com/emf-detector

Arduino Academy

6 marzo, 2012 at 22:55 Responder

Psate por el foro y expn all tus dudas, seguro que te ayudan!! http://www.arduinoacademy.com/foro

Marius

17 marzo, 2012 at 17:01 Responder

Hola! La temperatura de referencia (T0) tiene que ser 298.15 (25 grados Celsius). Lo que hay ahora serian 20 grados. Gracias por el tutorial! Muy bueno! Ahora intento usar el cdigo para leer una temperatura. Hasta pronto! Pingback: Componentes - Sensor de temperatura NTC

www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/

10/11

03/10/12

Tutorial Arduino # 0005 - Sensor de temperatura NTC

Deja un comentario
Aade tu comentario aqu...

Flickr Arduteka

Sitios de inters
Arduino.cc Clone Wars Cooking Hacks Libelium

Facebook Arduteka!
Arduteka en Facebook
Me gusta A 1,318 personas les gusta Arduteka.

P ierre-o

Jordi

A lex

C arlitos

A aron

Ingeniero

Jav i

Rodolfo

Made by Frutos Radikal Desig


A lbert E guzki Rafa Ricardo Keto C hao A lejandro G abriel Josue P lug-in social de F acebook

Copyright 2012 Arduteka - Todos los derechos reservados - Acceso

www.arduteka.com/2011/12/tutorial-arduino-0005-sensor-de-temperatura-ntc/

11/11

You might also like