Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Blog
Cursos
Tienda
arduino
sensores
.
Los sensores de temperatura son los primeros sensores que utilizaremos en muchos de nuestros proyectos y
cada vez es ms comn tenerlos en formato digital con una interfaz fcil de manejar como el nuestro =). Asi que
empezemos conectando tu tarjeta Hotboards Temp a tu Arduino como lo muestra la siguiente imagen:
.
La libreria de la tarjeta la encuentras aqui
Leyendo la temperatura
Leemos la temperatura de un nico sensor, este sensor se comunica via i2c por lo que ocupamos usar e
inicializar la librera Wire antes de usar nuestro sensor. Una vez inicializado en la funcin setup, leemos la
temperatura cada dos segundos y la desplegamos por serial en la funcin loop. El valor de la temperatura estara
en grados centgrados con una resolucin de 0.5C ( valor por default ).
#include<Arduino.h>
#include<Wire.h>
#include<Hotboards_temp.h>
//Declaramosnuestrosensordetemperatura
Hotboards_tempsensor(Sensor_7);
voidsetup(void)
{
//iniciamosnuestropuertoserial
Serial.begin(9600);
//comoelsensorusalalibreriawire,lainicializamos
Wire.begin();
//despuesinicializamosnuestrosensor
sensor.begin();
}
voidloop(void)
{
//leemoslatemperaturaengradoscelsius
floatval=sensor.read();
//desplegamoselvalorleidoenelpuertoserial
Serial.print("Temp:");
Serial.print(val);
Serial.println("C");
//esperamos2segundosparanoleertanseguido
delay(2000);
}
Si te jas cuando declaramos nuestro sensor le pasamos el parmetro Sensor_7, este valor representa la
direccin de nuestro sensor y se puede congurar en tu tarjeta cortocircuitando los puentes A0, A1 y A2, la
siguiente tabla te muestra la direccin que tendr el sensor dependiendo del valor de estos puentes.
Direccion
A2
A1
A0
Sensor_7
Sensor_6
Sensor_5
Sensor_4
Sensor_3
Sensor_2
Sensor_1
Sensor_0
Nota: "*" puente cerrado ( _cortocircuito_ ) "-" puente abierto ( _sin cortocircuitar_ )
.
Antes de continuar: Con un pequeo cautn y un poco de soldadura asigna la direccin Sensor_5 y ajusta tu
cdigo.
.
Ampliando la resolucin
La librera del sensor digital asigna por default una resolucin de 0.5C pero el sensor puede trabajar con una
resolucin mucho mayor, esto te permite medir con mayor precisin la temperatura ambiental, pero a un
pequeo coste, a mayor resolucin mayor el tiempo de conversin de la temperatura, esto se traduce a que tan
rpido puedes leer una temperatura vlida del sensor. Para una resolucin de 0.5C podemos leer tan seguindo
como 30ms mientras que para la mayor resolucin de 0.0625C podemos leer tan seguido como 250ms.
#include<Arduino.h>
#include<Wire.h>
#include<Hotboards_temp.h>
//Declaramosnuestrosensordetemperatura
Hotboards_tempsensor(Sensor_7);
voidsetup(void)
{
//iniciamosnuestropuertoserial
Serial.begin(9600);
//comoelsensorusalalibreriawire,lainicializamos
Wire.begin();
//despuesinicializamosnuestrosensor
sensor.begin();
//cambiamoslaresoluciona0.0625C
sensor.setResolution(_0p0625C);
}
voidloop(void)
{
//leemoslatemperaturaengradoscelsius
floatval=sensor.read();
//desplegamoselvalorleidoenelpuertoserial
Serial.print("Temp:");
Serial.print(val);
Serial.println("C");
//lasiguientelecturaladebemoshacercomomnimoalos250ms
//enestecasousamosundelayde2segundos,asiquenohayproblema
delay(2000);
}
.
Antes de continuar: investiga las dems resoluciones que maneja el sensor, adems establece un valor de alarma
en el cual se encienda un led cuando la temperatura alcance ese valor.
.
.
El echo de tener un sensor digital con una interfaz tipo bus como lo es el i2c nos facilita en mucho el conectar
mas de un sensor, pues al nal no ocuparemos ms pines de nuestro Arduino, ambos sensores del siguiente
ejemplo comparten los mismos pines (excepto la seal de ALERT).
#include<Arduino.h>
#include<Wire.h>
#include<Hotboards_buttons.h>
//Declaramoselprimersensordetemperatura
Hotboards_tempsensor1(Sensor_7);
//Declaramoselsegundosensorcondirecion6,A0estacortocircuitadaenlatarjeta
Hotboards_tempsensor2(Sensor_6);
voidsetup(void)
{
//iniciamosnuestropuertoserial
Serial.begin(9600);
//comoelsensorusalalibreriawire,lainicializamos
Wire.begin();
//despuesinicializamosambosensores
sensor1.begin();
sensor2.begin();
}
voidloop(void)
{
//leemosalprimersensorylodesplegamos
floattemp1=sensor1.read();
Serial.print("Sensor1:");
Serial.print(temp1);
Serial.print("C,");
//leemosalsegundosensor
floattemp2=sensor2.read();
Serial.print("Sensor2:");
Serial.print(temp2);
Serial.println("C");
//esperamos2segundosparanoleertanseguido
delay(2000);
}
.
Antes de continuar: suma el valor de ambas temperaturas y despliega su promedio, adems despliega su valor
en grados Fahrenheit y Kelvin.
.
Puedes revisar ms ejemplos en los codigos que acompaan la libreria y ademas no se te olvide revisar su
repositorio en GitHub.
Establecemos alarmas superior e inferior
Convertimos temperatura a grados Farenheit
Anterior
Siguiente
Comments
COMMENTS
No comments found
Powered by Komento
REGISTRARSE
Usuario
Contrasea
Recurdeme
Identificarse
CATEGORIAS
CATEGORIAS
Toolchain(30)
pepper(8)
stm32cube(6)
boards(25)
TAGCLOUD
android
arduino
eclipse
9
28
keyboard,
mbed
pepper
programming
14
storage
git
microhip
12
WIFI,
arm
4
2
registros
wireless,
Audio,
gnu-arm
nucleo
7
3
sensores
Bluetooth,
14
gpios
inputs
nucleos
5
2
st
26
cortex
cmsis
22
stm32
debug
interfaces
openocd
stm32cube
Hotboards
401Megusta
Megustaestapgina
Selprimerodetusamigosen
indicarquelegustaesto.
davispropertymanagement.com