LABORATORIO N° 02-04 “Medición y Control de variables”

  INSTRUMENTACIÓN DIGITAL

LABORATORIO N° 02-04 

Medición y Control de variables


CAPACIDADES ESPECIFICAS DE LA SESIÓN


OBJETIVOS

  • Aprender a Usar y programar el arduino Mega
  • Realizar modificaciones usando sentencias diferentes.
  • Medir variables, manipular actuadores y controlar variables con dispositivos IoT, mostrando la información en indicadores.
Objetivos específicos 

  •                 Identificar los sensores, actuadores y controlador de un sistema.
  •             Medir temperatura usando un sensor y mostrar el valor en un display.
  •                 Controlar la temperatura de una cámara térmica, usando un sensor, un controlador, dos lámparas incandescentes, y un ventilador.

MARCO TEÓRICO


INTRODUCCIÓN TEÓRICA

A.     VARIABLES FÍSICAS y SENSORES, TRANSDUCTOR

Variable física: es la magnitud que cambia en el tiempo, una variable física es la magnitud que puede define el estado de un sistema físico. Por ejemplo: temperatura, resistencia eléctrica, peso, velocidad, fuerza, presión, etc.

Sensor: es un dispositivo de medición que transforma las magnitudes de variables físicas o químicas en magnitudes de otras variables, por ejemplo: presión en longitud de deformación, nivel de un tanque de agua en desplazamiento angular.

Transductor: es un dispositivo de medición que transforma las magnitudes de variables físicas o químicas en magnitudes de variables eléctricas. Por ejemplo: temperatura en tensión eléctrica, presión en corriente eléctrica.

En la tarjeta usada para el laboratorio podemos encontrar los siguientes sensores.

Temperatura y humedad: la tarjeta DHT11 (ver Figura 3) tiene un sensor para medir temperatura (0 °C a 50 °C) y un sensor para medir la humedad relativa del ambiente (20 % a 90 % RH). Esta tarjeta electrónica convierte la salida de los dos sensores en una señal digital en serie de ceros y unos. Se requiere el uso de la biblioteca DHT11.





Fotoresistor: (ver Figura 1) varía su resistencia en función de la intensidad de la luz. Si está oscuro, el sensor presentará un valor resistivo de millones de ohmios, pero a medida que la luz brilla cerca de él, su resistencia disminuye hasta cientos de ohmios. El sensor requiere un circuito de acondicionamiento implementado mediante un divisor de tensión para obtener una señal correcta.

 


Figura 2: Light Dependent Resistor (LDR).


Figura 3: Tarjeta con sensor LDR.


Barómetro, medidor de presión absoluta: el módulo BMP280 incluye un sensor de presión (30 kPa a 110 kPa; 0,296 atm a 1,085 atm) de alta precisión, y un sensor de temperatura (0 °C a 65 °C). La tarjeta electrónica convierte la salida de los sensores en una señal digital de ceros y unos, que utiliza el protocolo (Inter-Integrated Circuit (I2C).

 

Figura 4: Tarjeta barómetro BMP280.


B.        DISPOSITIVOS Y CIRCUITOS DE CONTROL.

 Para el desarrollo del laboratorio, haremos uso de la plataforma de desarrollo ARDUINO,  que incluye un microcontrolador ATmega 2560, con todas las interfaces para la entrada y salida de datos tanto analógicos como digitales. En la la Figura 5 vemos el detalle de sus terminales.

Figura 5: Arduino Mega 2560.

B.           DISPOSITIVOS ACTUADORES.

Para el laboratorio los dispositivos actuadores a usar son:

Relé: dispositivo electromagnético que cierra o abre sus contactos al recibir una tensión en la bobina, la bobina consume una corriente mucho menor que la puede circular por sus contactos.

                     
Figura 6: Relé

En la tarjeta se encuentran montados 4 relés con sus respectivas borneras para las bobinas y los contactos del relé.                                         

Figura 7: Módulo de 4 relés

                Lámpara incandescente: es de 12 V, se usa como fuente de calor y de luz

Figura 8: Lámpara incandescente de 12 V.

Ventilador: usado como elemento actuador para disminuir la temperatura.

Figura 9: Ventilador.

 

                  EQUIPOS Y MATERIALES

Tabla 1. Equipos y materiales.

Ítem

Descripción

Cantidad

1

Módulo IoT

1

2

PC con el software Arduino IDE

1

3

Cables de conexión PC – Módulo IoT

1

4

Fuente de 12 V para Módulo IoT

1

5

Jumper para ventilador

1

6

Jumper para lámpara

1

7

Jumper para Barómetro

1

8

Jumper para Pulsador

2

9

Jumper para relés

5


RECOMENDACIONES

Para la ejecución de sus actividades tome en cuenta lo siguiente:

a)     Tenga presente siempre las recomendaciones de seguridad durante su trabajo.

b)     Realice primero las conexiones del circuito base, una vez culminado,

c)     Desarrolle las actividades programadas, anotando sus observaciones y conclusiones.

d)     Al culminar su trabajo, apague sus instrumentos y equipos, ordénelos, ubique adecuadamente su silla y espere la orden para retirarse del ambiente de trabajo.

NOTA: Ante cualquier duda, consulte al profesor encargado.


Desarrollar el laboratorio 









Digite el programa sugerido para controlar los leds y los reles del módulo utilizando los pulsadores.



VIDEO , CODIGO DE PROGRAMACION , ARDUINO 

IMAGENES DE CODIGO DE PROGRAMACION 






Demostración con leds


Realice los siguientes cambios en el programa:

-       En lugar de controlar los leds, ahora controle los RELES con los pulsadores. Tenga en cuenta que estos se activan con nivel ALTO (HIGH).


Actualice el nombre de los accionadores, en lugar de decir RELE1, cambiar por VENTILADOR, igual con las lámparas.

VIDEO DE TODO :  EL PRIMER ESPERIMENTO 




Transcriba el código mostrado para realizar la lectura de la temperatura y humedad cada 2 segundos.
 

 El código arduino  de temperatura 

#include <DHT11.h>

#define pin 34

DHT11 dht11(pin);

float temp,humi;


#define pulsador1 9

#define pulsador2 10

#define pulsador3 11

#define pulsador4 12

#define pulsador5 13


#define RELE1 47

#define VENTILADOR 48

#define LAMPARA1 49

#define LAMPARA2 53


void setup ()

{

  Serial.begin (9600);


  pinMode (RELE1, OUTPUT);

  pinMode (VENTILADOR, OUTPUT);

  pinMode (LAMPARA1, OUTPUT);

  pinMode (LAMPARA2, OUTPUT);


  pinMode (pulsador1,INPUT);

  pinMode (pulsador2,INPUT);

  pinMode (pulsador3,INPUT);

  pinMode (pulsador4,INPUT);

  pinMode (pulsador5,INPUT);


  digitalWrite (RELE1, HIGH);

  digitalWrite (VENTILADOR, HIGH);

  digitalWrite (LAMPARA1, HIGH);

  digitalWrite (LAMPARA2, HIGH);

  

}

void loop ()

{


      //CONTROL DE LEDS

  if (digitalRead(pulsador1) == HIGH ) { digitalWrite (RELE1,LOW);}

  if (digitalRead(pulsador2) == HIGH ) { digitalWrite (VENTILADOR,LOW);}

  if (digitalRead(pulsador3) == HIGH ) { digitalWrite (LAMPARA1,LOW);}

  if (digitalRead(pulsador4) == HIGH ) { digitalWrite (LAMPARA2,LOW);}

 

  if  (digitalRead(pulsador5) == HIGH )

  {

      digitalWrite (RELE1,HIGH);

      digitalWrite (VENTILADOR,HIGH);

      digitalWrite (LAMPARA1,HIGH);

      digitalWrite (LAMPARA2,HIGH);

  }

  

  dht11.read (humi,temp );

  Serial.print("temperatura :");

  Serial.print (temp );

  Serial.print ("  Humedad:");

  Serial.print (humi);

  Serial.println ();

  delay (2000);

}


El experimento de  temperatura  



VIDEO DE TODO :  SEGUNDO  ESPERIMENTO  TEMPERATURA COMPLETO 







TEMPERATURA PANTALLA LED

Añada a este código el código anterior (control de lámparas y ventilador y lectura de temperatura y humedad con DHT11) de tal manera que estos datos se muestren en la pantalla OLED y presionando los pulsadores podamos manipular dichos valores.
Añada una condición de tal manera que si la temperatura excede 40 grados, se apaguen las lámparas y se encienda el ventilador.

Añada otra condición de tal manera que, si la temperatura disminuye por debajo de 39 grados, se apague el ventilador y enciendan las lámparas. Si conseguimos esto, habremos realizado un CONTROL ON-OFF.



 El código Arduino  de temperatura  OLED

// Añamuro Panduro y Carrizales Vera

#include <SPI.h>

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

#define SSD1306_LCDHETGHT 32

int variable=43;


#define pulsador1 9

#define pulsador2 10

#define pulsador3 11

#define pulsador4 12

#define pulsador5 13



#define RELE1 47

#define VENTILADOR 48

#define LAMPARA1 49

#define LAMPARA2 53


#include <DHT11.h>

#define pin 34

DHT11 dht11(pin);

float temp,humi;

int temp2;

int humi2;


void setup ()

{

  display.begin (SSD1306_SWITCHCAPVCC , 0X3C);

  display.clearDisplay ();

  display. display ();

  display.setTextColor(WHITE);


  Serial.begin (9600);



 pinMode (pulsador1,INPUT);

 pinMode (pulsador2,INPUT);

 pinMode (pulsador3,INPUT);

 pinMode (pulsador4,INPUT);

 pinMode (pulsador5,INPUT);


 pinMode (RELE1, OUTPUT);

 pinMode (VENTILADOR, OUTPUT);

 pinMode (LAMPARA1, OUTPUT);

 pinMode (LAMPARA2, OUTPUT);


 digitalWrite (RELE1, HIGH);

 digitalWrite (VENTILADOR, HIGH);

 digitalWrite (LAMPARA1, HIGH);

 digitalWrite (LAMPARA2, HIGH);

}

void loop ()

{

  dht11.read (humi,temp );

  temp2=temp;

  humi2=humi;

  Serial.print("temperatura :");

  Serial.print (temp2 );

  Serial.print ("  Humedad:");

  Serial.print (humi2);

  Serial.println ();

  delay (2000);


  

  display.setTextSize (1);

  display.setTextColor(WHITE);

  display.setCursor (0,0);

  display.print ( "Temperatura y Humeda");

  display.setTextSize (1);

  display.setCursor (0,21);

  display.print ( "Panduro y Carrizales");

  display.setTextSize(2);

  display.setTextColor (WHITE);

  display.setCursor (0,7);

  display.print (temp2);

  display .print ("C -");

  display.print (humi2);

  display .print (" %");

  display.display();


  delay(2000);

  display.clearDisplay ();


        //CONTROL DE LEDS

  if (digitalRead(pulsador1) == HIGH ) { digitalWrite (RELE1,LOW);}

  if (digitalRead(pulsador2) == HIGH ) { digitalWrite (VENTILADOR,LOW);}

  if (digitalRead(pulsador3) == HIGH ) { digitalWrite (LAMPARA1,LOW);}

  if (digitalRead(pulsador4) == HIGH ) { digitalWrite (LAMPARA2,LOW);}

 

  if  (digitalRead(pulsador5) == HIGH )

  {

      digitalWrite (RELE1,HIGH);

      digitalWrite (VENTILADOR,HIGH);

      digitalWrite (LAMPARA1,HIGH);

      digitalWrite (LAMPARA2,HIGH);

        }

  



  if( temp > 40.00 )

  {

    digitalWrite(VENTILADOR,LOW);

    digitalWrite(LAMPARA1,HIGH);

    digitalWrite(LAMPARA2,HIGH);

  }

 if( temp < 38.00 )

  {

    digitalWrite(VENTILADOR,HIGH);

    digitalWrite(LAMPARA1,LOW);

    digitalWrite(LAMPARA2,LOW);

  }    

}

      

}

VIDEO DE TODO :  TERCER  ESPERIMENTO OLED






.4  DESARROLLO DE LA EXPERIENCIA 4: LECTURA DEL SENSOR DE GAS Y SENSOR PIR

 

En esta siguiente experiencia usaremos los sensores de GAS y sensor PIR como detectores de alarma y seguridad ante posibles accidentes y/o intrusos. La activación de estos sensores deberán mostrarse en la pantalla OLED y activar dos LEDS indicadores.




CÓDIGO FINAL DEL PROYECTO


// Añamuro Panduro y Carrizales Vera

const int LEDPin= 33;

const int PIRPin= 36;


#include <SPI.h>

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

#define SSD1306_LCDHETGHT 32

int variable=43;


#define pulsador1 9

#define pulsador2 10

#define pulsador3 11

#define pulsador4 12

#define pulsador5 13


#define RELE1 47

#define VENTILADOR 48

#define LAMPARA1 49

#define LAMPARA2 53


#include <DHT11.h>

#define pin 34

DHT11 dht11(pin);

float temp,humi;

int temp2;

int humi2;

void setup ()

{

  display.begin (SSD1306_SWITCHCAPVCC , 0X3C);

  display.clearDisplay ();

  display. display ();

  display.setTextColor(WHITE);

  Serial.begin (9600);

 pinMode (pulsador1,INPUT);

 pinMode (pulsador2,INPUT);

 pinMode (pulsador3,INPUT);

 pinMode (pulsador4,INPUT);

 pinMode (pulsador5,INPUT);


 pinMode (RELE1, OUTPUT);

 pinMode (VENTILADOR, OUTPUT);

 pinMode (LAMPARA1, OUTPUT);

 pinMode (LAMPARA2, OUTPUT);


 digitalWrite (RELE1, HIGH);

 digitalWrite (VENTILADOR, HIGH);

 digitalWrite (LAMPARA1, HIGH);

 digitalWrite (LAMPARA2, HIGH);


  pinMode(LEDPin, OUTPUT);

  pinMode(PIRPin, INPUT);

}

void loop ()

{

  dht11.read (humi,temp );

  temp2=temp;

  humi2=humi;

  Serial.print("temperatura :");

  Serial.print (temp2 );

  Serial.print ("  Humedad:");

  Serial.print (humi2);

  Serial.println ();

  delay (2000);


  if (digitalRead(PIRPin)==HIGH)

 {

  display.clearDisplay();

  display.setTextSize(1);//tamaño

  display.setCursor(0,0);//posicion

  display.print("Panduro y Carrizales");//texto

  display.setTextSize(2);

  display.setCursor(6,10);

  display.print("DETECTADO");

  display.display();

  delay (500);

 }

  else

 {

  int adc_MQ = analogRead(A0); //Lemos la salida analógica del MQ

  float voltaje = adc_MQ * (5.0 / 1023.0); //Convertimos la lectura en un valor de voltaje

  display.clearDisplay ();

  display.setTextSize (1);

  display.setTextColor(WHITE);

  display.setCursor (0,0);

  display.print ( "  Temp-Humi-adc-Vol");

  display.setTextSize (1);

  display.setCursor (0,21);

  display.print ( "Panduro y Carrizales");

  display.setTextSize(1);

  display.setTextColor (WHITE);

  display.setCursor (25,7);

  display.print (temp2);

  display .print ("C -");

  display.print (humi2);

  display .print (" %");

  display.setCursor (14,14);

  display.print("adc:");

  display.print(adc_MQ);

  display.print(" Vol:");

  display.println(voltaje);

  display.display();


  delay(1000);

 }

        //CONTROL DE LEDS

  if (digitalRead(pulsador1) == HIGH ) { digitalWrite (RELE1,LOW);}

  if (digitalRead(pulsador2) == HIGH ) { digitalWrite (VENTILADOR,LOW);}

  if (digitalRead(pulsador3) == HIGH ) { digitalWrite (LAMPARA1,LOW);}

  if (digitalRead(pulsador4) == HIGH ) { digitalWrite (LAMPARA2,LOW);}

 

  if  (digitalRead(pulsador5) == HIGH )

  {

      digitalWrite (RELE1,HIGH);

      digitalWrite (VENTILADOR,HIGH);

      digitalWrite (LAMPARA1,HIGH);

      digitalWrite (LAMPARA2,HIGH);

        }

  if( temp > 40.00 )

  {

    digitalWrite(VENTILADOR,LOW);

    digitalWrite(LAMPARA1,HIGH);

    digitalWrite(LAMPARA2,HIGH);

  }

 if( temp < 38.00 )

  {

    digitalWrite(VENTILADOR,HIGH);

    digitalWrite(LAMPARA1,LOW);

    digitalWrite(LAMPARA2,LOW);

  }    

}

         VIDEO DE AVANSE 

 
VIDEO MEJORADO DEL  ULTIMO  EXPERIMENTO 



  Observaciones

  •  Al momento de configurar el programa Arduino debemos especificar las características como el tipo de arduino MEGA y el puerto
  •  El Arduino Mega se conecta con el cable USB y ala vez tiene un cable de alimentación de 12 V
  • La programación en Arduino debe ser de declarada con librerías y asu vez debe ser especificados los pines
  • El Arduino Mega lleva diferentes equipos electrónicos como un sensor de gas y pantalla led


Conclusiones

  •  Logramos realizar un código de programación donde se usen los focos incandescentes y ventilador para el sensor de temperatura
  •  Logramos mostrar las magnitudes medidas en la pantalla Led, además de mostrar textos fijos
  •  Agregamos interrupciones a las diferentes operaciones q se ejecutaban como la del sensor infrarrojo que muestre el texto DETECTADO cuando lectura algo
  • Finalmente realizamos el video y mostramos todas las evidencias respectivas en el.blogg


 

 

Alumnos:

  • Carrizales Vera Jose Andree 
  • Añamuro Panduro Alexis

Grupo

:

 

Profesor: Edgar Mamani Paco 

Nota:

Semestre

:

 

Fecha de entrega

:

 

 

 

 

 

 

Comentarios

Entradas populares de este blog

LABORATORIO N° 05-07 " Medicion y control con IOT"