Está en la página 1de 6

VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

FORMATO DE INFORME DE PRÁCTICA DE LABORATORIO / TALLERES /


CENTROS DE SIMULACIÓN – PARA ESTUDIANTES

CARRERA: INGENIERÍA ELECTRÓNICA ASIGNATURA: SISTEMA MICROPROCESADOS II


NRO. PRÁCTICA: 0 PRACTICA CON MODULOS COMPILADORES ARDUINO Y ATMEL
MARCO TEÓRICO
DHT11: SENSOR DE HUMEDAD/TEMPERATURA
El DHT11 es un sensor que proporciona una salida de datos digital. Entre sus ventajas podemos
mencionar el bajo coste y el despliegue de datos digitales. Esto supone una gran ventaja frente a los
sensores del tipo análogo, como el LM335 por ejemplo, en los cuales las fluctuaciones en el voltaje
alteran la lectura de datos.
Entre las desventajas pues, el DHT11 solo lee enteros, no podemos leer temperaturas con decimales
por lo que tenemos que pensarlo muy bien a la hora de utilizar este sensor para trabajos en los que se
requieran lecturas precisas de temperatura y/o humedad.

Fig1. Censor de humedad/temperatura.

PANTALLA LCD
Es un módulo de visualización electrónica y se puede encontrar en una amplia gama de aplicaciones. Un
módulo de pantalla LCD de 16x2 es muy básico y es muy utilizado en diversos dispositivos y
circuitos. Estos módulos se prefieren más de siete segmentos y otro segmento de múltiples LED’s. Las
razones son: las pantallas LCD son económicos; fácilmente programables; no tienen limitación de
visualizaciones especiales y aun caracteres personalizados (a diferencia de en siete
segmentos), animaciones y demás.
Un LCD 16x2 significa que puede mostrar 16 caracteres por línea y hay 2 tales líneas. En este LCD cada
carácter se muestra en la matriz de píxeles 5x7. Este LCD tiene dos registros: Comando y Datos.

Fig2.Pantalla LCD.
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

ARDUINO

Es una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware
flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en
crear entornos u objetos interactivos. Puede tomar información del entorno a través de sus pines de
entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores
y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de
programación Arduino (basasdo en Wiring) y el entorno de desarrollo Arduino (basado en Processing).

Fig2.Arduino Mega.

OBJETIVO ALCANZADO:
 En esta práctica se pudo implementar el funcionamiento del sensor de temperatura y humedad
´´DHT11´´´ proyectado dicha información en un LCD, para la configuración y programación de
este sensor utilizamos dos plataformas o lenguajes de comunicación ´´arduino’’ y ´´Atmel studio´´
Y lo simulamos en proteus para el correcto funcionamiento del sistema.

ACTIVIDADES DESARROLLADAS
1. Identificación del módulo, arduino y pantalla LCD
2. Implementación del código de programación y configuración del sensor.
3. Montaje del sistema.
4. Verificación del Sistema
RESULTADO(S) OBTENIDO(S):
Código de programación para el sensor DHT11 (ARDUINO):

// Incluimos librería
#include <DHT.h>
#include <LiquidCrystal.h> //Incluimos las librerias de el LCD
LiquidCrystal lcd(12,11,5,4,3,2); //Declaramos los pines del Arduino a usar con el LCD
// Definimos el pin digital donde se conecta el sensor
#define DHTPIN 8
// Dependiendo del tipo de sensor
#define DHTTYPE DHT11

// Inicializamos el sensor DHT11


DHT dht(DHTPIN, DHTTYPE);

void setup() {
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

// Inicializamos comunicación serie


Serial.begin(9600);
lcd.begin(16,2); //indicamos el tamaño del LCD
lcd.clear();
// Comenzamos el sensor DHT
dht.begin();

void loop() {
// Esperamos 5 segundos entre medidas
delay(5000);

// Leemos la humedad relativa


float h = dht.readHumidity();
// Leemos la temperatura en grados centígrados (por defecto)
float t = dht.readTemperature();
// Leemos la temperatura en grados Fahreheit
float f = dht.readTemperature(true);

// Comprobamos si ha habido algún error en la lectura


if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Error obteniendo los datos del sensor DHT11");
return;
}

// Calcular el índice de calor en Fahreheit


float hif = dht.computeHeatIndex(f, h);
// Calcular el índice de calor en grados centígrados
float hic = dht.computeHeatIndex(t, h, false);

Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Índice de calor: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");

lcd.setCursor(0,0);
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

lcd.print("Temp: ");
lcd.print(t);
lcd.print("C");

lcd.setCursor(0,1);
lcd.print("Humedad: ");
lcd.print(h);
lcd.print("%");
lcd.println();

Código de programación para el sensor DHT11 (ATMEL STUDIO):

#include <avr/io.h>
#include <stdlib.h>
#include <stdio.h>
#include "LCD16x2_4bit.h"
#define DHT11_PIN 7
uint8_t c=0,I_RH,D_RH,I_Temp,D_Temp,CheckSum;

void Request() /* Microcontroller send start pulse or request


*/
{
DDRD |= (1<<DHT11_PIN);
PORTD &= ~(1<<DHT11_PIN); /* set to low pin */
_delay_ms(20); /* wait for 20ms */
PORTD |= (1<<DHT11_PIN); /* set to high pin */
}

void Response() /* receive response from DHT11 */


{
DDRD &= ~(1<<DHT11_PIN);
while(PIND & (1<<DHT11_PIN));
while((PIND & (1<<DHT11_PIN))==0);
while(PIND & (1<<DHT11_PIN));
}

uint8_t Receive_data() /* receive data */


{
for (int q=0; q<8; q++)
{
while((PIND & (1<<DHT11_PIN)) == 0); /* check received bit 0 or 1 */
_delay_us(30);
if(PIND & (1<<DHT11_PIN)) /* if high pulse is greater than 30ms */
c = (c<<1)|(0x01); /* then its logic HIGH */
else /* otherwise its logic
LOW */
c = (c<<1);
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

while(PIND & (1<<DHT11_PIN));


}
return c;
}

int main(void)
{
char data[5];
lcdinit(); /* initialize LCD */
lcd_clear(); /* clear LCD */
lcd_gotoxy(0,0); /* enter column and row position */
lcd_print("Humedad = ");
lcd_gotoxy(0,1);
lcd_print("Temperatura = ");

while(1)
{
Request(); /* send start pulse */
Response(); /* receive response */
I_RH=Receive_data(); /* store first eight bit in I_RH */
D_RH=Receive_data(); /* store next eight bit in D_RH */
I_Temp=Receive_data(); /* store next eight bit in I_Temp */
D_Temp=Receive_data(); /* store next eight bit in D_Temp */
CheckSum=Receive_data();/* store next eight bit in CheckSum */

if ((I_RH + D_RH + I_Temp + D_Temp) != CheckSum)


{
lcd_gotoxy(0,0);
lcd_print("Error");
}

else
{
itoa(I_RH,data,10);
lcd_gotoxy(11,0);
lcd_print(data);
lcd_print(".");

itoa(D_RH,data,10);
lcd_print(data);
lcd_print("%");

itoa(I_Temp,data,10);
lcd_gotoxy(6,1);
lcd_print(data);
lcd_print(".");

itoa(D_Temp,data,10);
lcd_print(data);
lcddata(0xDF);
lcd_print("C ");

itoa(CheckSum,data,10);
VICERRECTORADO DOCENTE Código: GUIA-PRL-001

CONSEJO ACADÉMICO Aprobación: 2016/04/06

Formato: Guía de Práctica de Laboratorio / Talleres / Centros de Simulación

lcd_print(data);
lcd_print(" ");
}

_delay_ms(500);
}
}

Simulación:

CONCLUSIONES:
 Al concluir la practica con éxito se verifico diferentes aspectos del módulo DHT11 para la correcta
comunicación con el arduino y posteriormente con el LCD, para esta correcta comunicación la
configuración y la programación del módulo se realizó en dos plataformas como es: Arduino y
Atmel Studio.
RECOMENDACIONES:
 Verificar el esquema de conexión del módulo con el arduino.
 Verificar el funcionamiento mediante simulaciones antes del montaje del sistema.
 La alimentación del circuito debe ser de 5 V para un funcionamiento eficaz.

Nombre de estudiantes: Danny Salto ; Juan Vazquez

También podría gustarte