reporte de sensores y lcd rgb1
Post on 27-Oct-2014
88 Views
Preview:
TRANSCRIPT
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
1
SENSORES BMP085, TSL2561 y LCD RGB
OBJETIVO:
Obtener las lecturas de temperatura ( °C), presión (pascal), altitud (msnm),
cantidad de luz existente (luxes) y mostrarlos en un LCD rgb, el cual hará una
transición de colores de fondo con las combinaciones posibles del rojo, verde y
azul.
MATERIALES Y DESCRIPCIÓN:
1. SENSOR BMP085 DE ADAFRUIT:
El BMP085 es un sensor básico que se ha diseñado específicamente para medir
la presión barométrica y la temperatura, pero debido a los cambios de presión con
la altitud también se puede utilizar como un altímetro, ya que a medida que
caminamos a partir del nivel del mar a una montaña alta, la presión del aire
disminuye. Otro uso importante para la medición de la presión, es predecir el
tiempo, ya que es sabido que cuando la presión disminuye, es porque el aire es
más caliente, por lo tanto menos denso, esto generalmente se asocia a un mal
tiempo, desde leves lluvias hasta tormentas más grandes. Se establece como baja
presión cuando se sitúa por debajo de 1013.25 hpa, que es el valor aproximado de
una presión estándar.
DETALLES TÉCNICOS.
• Vin: de 3 a 5 VCC
• Lógica: compatible con valores de 3 a 5 VCC
• Rangos de operación: presión: 300-1100 hPa (500 a 9000msnm)
• Hasta 0.03hPa / 0,25 m de resolución
• Temperatura: - 40 a + 85 ° C, ± 2 ° C precisión de la temperatura
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
2
MONTAJE CON ARDUINO:
CONSIDERACIONES TEÓRICAS:
El código empleado se muestra en el anexo, un detalle a considerar con este
sensor, es la determinación de la altitud, ya que esta se obtiene mediante el
comando bmp.readTemperature(), pero estimando una presión estándar de
1013.25hpa, es decir, que puede no ser precisa, dependiendo de los valores
actuales, por lo que se permite escribir el valor de presión que se considere
adecuado, el modo correcto es revisar en alguna pagina del clima, la presión a
nivel del mar actual donde se desee medir la altitud, para este ejemplo
corresponde a un valor no muy lejano del estándar: 1014hpa, que es el nivel de
presión actual en Chiapas. Para determinar la altitud real se escribe el comando
como sigue: bmp.readAltitude(101400).
La presión atmosférica en un punto coincide numéricamente con el peso de una
columna estática de aire de sección recta unitaria que se extiende desde ese
punto hasta el límite superior de la atmósfera. Como la densidad del aire
disminuye conforme aumenta la altura, no se puede calcular ese peso a menos
que seamos capaces de expresar la variación de la densidad del aire ρ en función
de la altitud z o de la presión p. Por ello, no resulta fácil hacer un cálculo exacto de
la presión atmosférica sobre un lugar de la superficie terrestre; por el contrario, es
muy difícil medirla, por lo menos, con cierta exactitud ya que tanto la temperatura
como la presión del aire están variando continuamente .
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
3
La presión atmosférica en un lugar determinado experimenta variaciones
asociadas con los cambios meteorológicos. Por otra parte, en un lugar
determinado, la presión atmosférica disminuye con la altitud, como se ha dicho. La
presión atmosférica decrece a razón de 1 mmHg o Torr por cada 10 m de
elevación en los niveles próximos al del mar. En la práctica se utilizan unos
instrumentos, llamados altímetros, que son simples barómetros aneroides
calibrados en alturas; estos instrumentos no son muy precisos.
La presión atmosférica normalizada, 1 atmósfera, fue definida como la presión
atmosférica media al nivel del mar que se adoptó como exactamente 101 325 Pa o
760 Torr. Sin embargo, a partir de 1982, la IUPAC recomendó que si se trata de
especificar las propiedades físicas de las sustancias "el estándar de presión"
debía definirse como exactamente 100 kPa o (≈750,062 Torr). Aparte de ser un
número redondo, este cambio tiene una ventaja práctica porque 100 kPa
equivalen a una altitud aproximada de 112 metros, que está cercana al promedio
de 194 m de la población mundial. (Wikipedia)
En el siguiente cuadro se muestra la relación de presión y altitud.
Presión en función de la altitud ()
Altitud
(m) 0 100 200 300 400 500 600 700 800 900
0 1013 1001 990 978 967 955 944 933 921 901
1000 899 888 877 867 856 845 835 825 816 805
2000 795 785 776 766 757 747 738 729 719 710
3000 701 693 684 676 667 658 650 641 633 624
4000 616 608 600 593 585 577 570 562 555 547
5000 540 533 526 519 512 505 498 492 485 479
Fuente: http://www.tutiempo.net/silvia_larocca/Temas/ecuaciones.htm#humedad
La fórmula para obtener la presión en función de la altitud es la siguiente
P1 = Po / EXP [Z * g /( R * Tm)] P1= Presión a una altitud de Z metros (en Hpa) Po= Presión en superficie (en Hpa) Z= altitud del nivel de presión P1 (en metros) g= aceleración de la gravedad = 9.80617 m/seg2 R= Constante de los gases =287.04 m2/seg2ºK
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
4
Tm = Temperatura media entre los niveles de presión P1 y Po - Se puede escribir como Tm = (To + T1) / 2 y como T1=To-g*Z, podemos escribir Tm=(To+To-(g*Z))/2 => Tm=To-g*Z/2 , donde To es la temperatura en superficie (en ºK), g es el gradiente térmico vertical y Z es la altitud Si tenemos en cuenta una atmósfera standard Po = 1013.3 Hpa To = 15ºC = 288ºK g = 0.65ºC/100 m Reemplazando en la fórmula original, la fórmula para una atmósfera standard es:
P1 = 1013.3 / EXP [Z /(8430.15 - Z * 0.09514)] donde: P1 = Presión en Hpa a la altitud Z Z = altitud en m 2. SENSOR TSL2561 DE ADAFRUIT:
Este sensor encuentra su uso en una amplia gama de situaciones de la luz,
además es más preciso que otros como los LDR, lo que permite cálculos exactos
de lux existente y se puede configurar para diferentes rangos de ganancia / tiempo
con lo que se pueden detectar rangos de luz de 0,1 - 40.000 + Lux sobre la
marcha. La mejor parte de este sensor es que contiene diodos infrarrojos y de
espectro completo. Eso significa que se puede medir por separado la luz infrarroja
de amplio espectro o humano visible. La mayoría de los sensores sólo pueden
detectar uno o el otro, que no representan con exactitud lo que los ojos humanos
ven (ya que no podemos percibir la luz infrarroja que es detectada por la mayoría
de los fotodiodos).
El sensor tiene una cámara digital (I2C) de la interfaz. Puede seleccionar una de
tres direcciones por lo que puede tener hasta tres sensores en una tabla, cada uno
con una dirección I2C diferente. Cuenta con ADC, lo que significa puede usarse
con cualquier microcontrolador, incluso si no tiene entradas analógicas. El
consumo de corriente es muy bajo, por lo que es genial para los datos de baja
potencia-sistemas de registro.
DETALLES TÉCNICOS.
• Se aproxima a la respuesta del ojo humano
• Precisa iluminancia (lumen) en distintas condiciones de iluminación
• Rango de temperatura: de -30 a 80 °C
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
5
• Rango dinámico (Lux): de 0,1 a 40.000 Lux
• Rango de voltaje: 2.7-3.6V
• Interfaz: I2C
MONTAJE CON ARDUINO.
CONSIDERACIONES TEÓRICAS:
El lux (símbolo lx) es la unidad derivada del Sistema Internacional de Unidades para la iluminancia o nivel de iluminación. Equivale a un lumen /m². Se usa en fotometría como medida de la intensidad luminosa, tomando en cuenta las diferentes longitudes de onda según la función de luminosidad, un modelo estándar de la sensibilidad a la luz del ojo humano. 1 lx
= 1 lm/m2
= 1 cd · sr/m2
El lux es una unidad derivada, basada en el lumen, que a su vez es una unidad derivada basada en la candela. Un lux equivale a un lumen por metro cuadrado, mientras que un lumen equivale a una candela x estereorradián. El flujo luminoso total de una fuente de una candela
equivale a lúmenes (puesto que una esfera comprende estereorradianes). (Wikipedia)
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
6
Para comprender mejor lo que es un lux se anexa el siguiente cuadro
Fuente: wikipedia
Iluminancia Abr. Ejemplo
0,00005 lux 50 µlx Luz de una estrella (Vista desde la tierra)
0,0001 lux 100 µlx Cielo nocturno nublado, luna nueva
0,001 lux 1 mlx Cielo nocturno despejado, luna nueva
0,01 lux 10 mlx Cielo nocturno despejado, cuarto creciente o menguante
0,25 lux 250 mlx Luna llena en una noche despejada
1 lux 1 lx Luna llena a gran altitud en latitudes tropicales
3 lux 3 lx Límite oscuro del crepúsculo bajo un cielo despejad
50 lux 50 lx Sala de una vivienda familiar
80 lux 80 lx Pasillo/cuarto de baño
400 lux 4 hlx Oficina bien iluminada
400 lux 4 hlx Salida o puesta de sol en un día despejado.
1000 lux 1 klx Iluminación habitual en un estudio de televisión
32.000 lux 32 klx Luz solar en un día medio (mín.)
100.000 lux 100 klx Luz solar en un día medio (máx.)
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
7
3. LCD RGB DE ADAFRUIT:
Esta es una actualización a la norma 16x2 LCD, en lugar de tener color azul y
blanco, o rojo y negro, este LCD tiene caracteres negros sobre una luz de fondo,
color RGB. Eso significa que se puede cambiar el color de fondo a todo lo que se
requiera - rojo, verde, azul, rosa, blanco, amarillo morado, verde azulado, salmón
o simplemente lo deja fuera de un fondo neutro.
MONTAJE CON ARDUINO.
Este dispositivo se conecta típicamente como se muestra en el diagrama, como se
mencionó antes es un LCD de 16 columnas x 2 filas su funcionamiento es similar a
un LCD normal, solo que este tiene la peculiaridad de poder variarse la luz de
fondo emitida, por lo que con el código que se muestra en el anexo, se hace una
variación de los tres led´s (RGB) de manera ascendente y descendente en forma
intercalada, para obtener una amplia gama de colores visibles.
REFERENCIAS:
www.adafruit.com
www.wikipedia.com
http://www.tutiempo.net/silvia_larocca/Temas/ecuaciones.htm#humedad
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
8
ANEXOS:
MONTAJE FINAL:
Montaje final
Caso 1. < 5, enciende el led indicador, según se establece en el código
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
9
Caso 2. Lux > 5 y temp < 28°C, ambos leds indicadores permencen en Off,
según código
Caso 3. Temp > 28°C, enciende led Caso 4. temp > 28°C y lux < 5,
indicador. se activan ambos indicadores.
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
10
CÓDIGO PARA DETERMINAR, TEMPERATURA, PRESIÓN, ALTURA Y
ALTURA REAL USANDO EL BMP085:
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
//se incluyen las librerias adecuadas.
void setup() {
Serial.begin(9600);
bmp.begin();
}
void loop() {
Serial.print("Temperatura = ");
Serial.print(bmp.readTemperature()); //con este comando se lee la temperatura
// del sensor y se imprime en pantalla
Serial.println(" *C");
Serial.print("Presion = ");
Serial.print(bmp.readPressure()); // lee la presión del sensor y se imprime en
//pantalla
Serial.println(" Pa");
Serial.print("Altitude = ");
Serial.print(bmp.readAltitude()); //lee la altura del sensor asumiendo una
//presión estándar de 1013.25 hpa
Serial.println(" meters");
Serial.print("Real altitude = ");
Serial.print(bmp.readAltitude(101400)); //este comando permite introducir el
//valor actualizado de la presión
//atmosférica al nivel del mar, que en
//estos momentos (checando una
//pagina de internet del clima mundial),
//para la región de Chiapas se
//encuentra a 1014 hpa
Serial.println(" meters");
Serial.println();
delay(500);}
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
11
CÓDIGO PARA DETERMINAR CANTIDAD DE LUZ INFRARROJA (ir),
ESPECTRO COMPLETO (full), HUMANO VISIBLE (visible) Y LUXES (lux)
INCIDENTE.
#include <Wire.h>
#include <TSL2561.h>
TSL2561 tsl(TSL2561_ADDR_FLOAT);
// se incluyen las librerias adecuadas.
void setup(void) {
Serial.begin(9600);
if (tsl.begin()) {
Serial.println("Found sensor");
} else {
Serial.println("No sensor?");
while (1);
}
//tsl.setGain(TSL2561_GAIN_0X); //con estos comandos puede cambiarse la
//ganancia en el tiempo, para adaptarse de
//brillo intense a atenuado.
tsl.setGain(TSL2561_GAIN_16X);
// puede cambiarse el tiempo de sensado
//de la intensidad de luz
tsl.setTiming(TSL2561_INTEGRATIONTIME_13MS);//corto
//tsl.setTiming(TSL2561_INTEGRATIONTIME_101MS);//medio
//tsl.setTiming(TSL2561_INTEGRATIONTIME_402MS); //largo
}
void loop(void) {
uint16_t x = tsl.getLuminosity(TSL2561_VISIBLE);
//uint16_t x = tsl.getLuminosity(TSL2561_FULLSPECTRUM);
//uint16_t x = tsl.getLuminosity(TSL2561_INFRARED);
//con estos comandos se elige entre, luz visible, espectro completo o infrarrojo
Serial.println(x, DEC);
uint32_t lum = tsl.getFullLuminosity();
uint16_t ir, full;
ir = lum >> 16;
full = lum & 0xFFFF;
Serial.print("IR: "); Serial.print(ir); Serial.print("\t\t\t");
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
12
Serial.print("Full: "); Serial.print(full); Serial.print("\t");
Serial.print("Visible: "); Serial.print(full - ir); Serial.print("\t");
Serial.print("Lux: "); Serial.println(tsl.calculateLux(full, ir));
/*aqui se calcula mediante los comandos correspondientes la cantidad de luz ir,
visible y de espectro complete, finalmente la cantidad de lux, y se Mandan a
imprimir a pantalla*/
delay(100); }
CÓDIGO DEL LCD RGB, PARA VARIAR LOS COLORES DE FORMA
CONSECUTIVA, ASCENDENTE Y DESCENDENTE.
// include the library code:
#include <LiquidCrystal.h>
#include <Wire.h>
#define REDLITE 3
#define GREENLITE 5
#define BLUELITE 6
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int brillo = 255;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(6,0);
lcd.print("Hola");
lcd.setCursor(6,1);
lcd.print("mundo");
brillo = 255;
} void loop() { //variación de los colores emitidos de 0 a 255 y viceversa
for (int i = 0; i < 255; i++)
{ setBacklight(i, 0, 255-i);
delay(5); }
for (int i = 0; i < 255; i++)
{ setBacklight(255-i, i, 0);
delay(5); }
for (int i = 0; i < 255; i++)
{ setBacklight(0, 255-i, i);
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
13
delay(5); }
}
void setBacklight(uint8_t r, uint8_t g, uint8_t b) {
r =map(r, 0, 255, 0, 100);
g =map(g, 0, 255, 0, 150);
r =map(r, 0, 255, 0, brillo);
g =map(g, 0, 255, 0, brillo);
b =map(b, 0, 255, 0, brillo);
r =map(r, 0, 255, 255, 0);
g =map(g, 0, 255, 255, 0);
b =map(b, 0, 255, 255, 0);
Serial.print("R = ");
Serial.print(r, DEC);
Serial.print(" G = ");
Serial.print(g, DEC);
Serial.print(" B = ");
Serial.println(b, DEC);
analogWrite(REDLITE, r);
analogWrite(GREENLITE, g);
analogWrite(BLUELITE, b);
}
CÓDIGO PARA SENSAR TEMPERATURA, PRESIÓN ATMOSFÉRICA,
ALTITUD SNM Y CANTIDAD DE LUXES Y ACTIVAR O APAGAR UN CLIMA Y
UNA LÁMPARA SEGÚN SEA EL CASO REQUERIDO
#include <LiquidCrystal.h>
#include <Wire.h>
#include <TSL2561.h>
TSL2561 tsl(TSL2561_ADDR_FLOAT);
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
#define REDLITE 3
#define GREENLITE 5
#define BLUELITE 6
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
14
int Led_temp = 13;
int Led_lux = 2;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); //iniciar la libreria con esos pines
int brillo = 255;
void setup() {
Serial.begin(9600);
pinMode (Led_temp, OUTPUT);
pinMode (Led_lux, OUTPUT);
bmp.begin();
lcd.begin(16, 2);
brillo = 255;
if (tsl.begin()) {
Serial.println("Leyendo sensores");
} else {
Serial.println("No sensor?");
while (1);
}
tsl.setGain(TSL2561_GAIN_16X);
tsl.setTiming(TSL2561_INTEGRATIONTIME_13MS);
}
void loop() {
for (int i = 0; i < 255; i++)
{
setBacklight(i, 0, 255-i);
delay(5);
}
for (int i = 0; i < 255; i++)
{
setBacklight(255-i, i, 0);
delay(5);
}
for (int i = 0; i < 255; i++)
{
setBacklight(0, 255-i, i);
delay(5);
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
15
}
uint16_t x = tsl.getLuminosity(TSL2561_VISIBLE);
uint32_t lum = tsl.getFullLuminosity();
uint16_t ir, full;
ir = lum >> 16;
full = lum & 0xFFFF;
if (tsl.calculateLux(full, ir)< 5) //apagar o encender lampara, segun condición
{
digitalWrite (Led_lux,1);
}
else
{
digitalWrite (Led_lux,0);
}
//imprimir lux en pantalla y en lcd
Serial.print("Lux: "); Serial.println(tsl.calculateLux(full, ir));
delay(5);
lcd.setCursor (9,1);
lcd.print ("Lux: "); lcd.print (tsl.calculateLux(full, ir));
//imprimir temperatura en pantalla y en lcd
Serial.print("Temperatura = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
lcd.setCursor (10,0);
lcd.print (bmp.readTemperature()); lcd.print ("C");
//imprimir presion en pantalla y en lcd
Serial.print("Presion = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
lcd.setCursor (0,1); lcd.print(bmp.readPressure()); lcd.print ("Pa");
//imprimir altitud con presión estandar en pantalla y en lcd
Serial.print("Altitud = ");
Serial.print(bmp.readAltitude());
UNIVERSIDAD DE CIENCIA Y TECNOLOGÍA DESCARTES. MAESTRÍA EN TECNOLOGÍAS DE LA INFORMÁTICA.
SISTEMAS DIGITALES 2. SARAÍN ESCOBEDO DE LEÓN.
TUXTLA GUTIÉRREZ, 06/JULIO/2012
16
Serial.println(" msnm");
//imprimir altitud con presión actual en pantalla y en lcd
Serial.print("Real altitude = ");
Serial.print(bmp.readAltitude(101400));
Serial.println(" msnm");
Serial.println();
delay(10);
lcd.setCursor (0,0);
lcd.print (bmp.readAltitude(101400)); lcd.print ("mts");
}
void setBacklight(uint8_t r, uint8_t g, uint8_t b) {
r =map(r, 0, 255, 0, 100);
g =map(g, 0, 255, 0, 150);
r =map(r, 0, 255, 0, brillo);
g =map(g, 0, 255, 0, brillo);
b =map(b, 0, 255, 0, brillo);
r =map(r, 0, 255, 255, 0);
g =map(g, 0, 255, 255, 0);
b =map(b, 0, 255, 255, 0);
analogWrite(REDLITE, r);
analogWrite(GREENLITE, g);
analogWrite(BLUELITE, b);
if (bmp.readTemperature()>= 28) //apagar o encender el clima según condición
{
digitalWrite (Led_temp,1);
}
else
{
digitalWrite (Led_temp,0);
}
}
top related