jueves, 4 de octubre de 2018

Laboratorio N°6



LABORATORIO N° 06
"LECTURA DE ENTRADAS ANALÓGICAS Y SENSOR DE TEMPERATURA"



1. COMPETENCIA ESPECIFICA DE LA SESIÓN:
  • Lecturas analógicas de un canal del PIC
  • Configuración de un Sensor de Temperatura
  • Lectura analógica en una pantalla LCD
2. MARCO TEÓRICO:


SEÑAL ANALÓGICA 

Una señal analógica es un tipo de señal generada por algún tipo de fenómeno electromagnético; que es representable por una función matemática continua en la que es variable su amplitud y periodo (representando un dato de información) en función del tiempo. Algunas magnitudes físicas comúnmente portadoras de una señal de este tipo son eléctricas como la intensidad, la tensión y la potencia, pero también pueden ser hidráulicas como la presión y térmicas como la temperatura.

En la naturaleza, el conjunto de señales que percibimos son analógicas, así la luz, el sonido, la energía etc, son señales que tienen una variación continua. Incluso la descomposición de la luz en el arco iris vemos como se realiza de una forma suave y continúa.

Una onda sinusoidal es una señal analógica de una sola frecuencia. Los voltajes de la voz y del video son señales analógicas que varían de acuerdo con el sonido o variaciones de la luz que corresponden a la información que se está transmitiendo.

¿COMO FUNCIONAN?

Los módulos de entrada analógicas permiten que los autómatas programables trabajen con accionadores de mando analógico y lean señales de tipo analógico como pueden ser la temperatura, la presión o el caudal.

Los módulos de entradas analógicas convierten una magnitud analógica en un numero que se deposita  en una variable interna del autómata. Lo que realiza es una conversión A/D, puesto que el autómata solo trabajar con señales digitales. Esta conversión se realiza con una precisión o resolución determinada (numero de bits) y cada cierto intervalo de tiempo (periodo muestreo).

Tarea de investigación: 

Averigüe cómo funciona un sensor LM35 y cómo se puede leer dicha temperatura en una pantalla LCD

SENSOR LM35

El LM35 es un circuito electrónico sensor que puede medir temperatura. Su salida es analógica, es decir, te proporciona un voltaje proporcional a la temperatura. El sensor tiene un rango desde −55°C a 150°C. Su popularidad se debe a la facilidad con la que se puede medir la temperatura. Incluso no es necesario de un microprocesador o microcontrolador para medir la temperatura. Dado que el sensor LM35 es analógico, basta con medir con un multímetro, el voltaje a salida del sensor.

Para convertir el voltaje a la temperatura, el LM35 proporciona 10mV por cada grado centígrado. También cabe señalar que ese sensor se puede usar sin offset, es decir que si medimos 20mV a la salida, estaremos midiendo 2°C.

SENSOR LM35 Y PANTALLA LCD 

CODIGO (ARDUINO) :

#include <LiquidCrystal.h>          //Incluir esta libreria para poder usar el lcd

int Ana1 = A0;                      //Entrada analogica de LM35
LiquidCrystal lcd(12,11,5,4,3,2);   //Definimos la pantalla LCD
int Temp = 0;
char Grados = 'º';

void setup(){
  Serial.begin(9600);      
  lcd.begin(16,2);  
  pinMode(13,OUTPUT);
  digitalWrite(13, HIGH);          //Activamos la retroiluminacion
}

void loop(){
  Temp = analogRead(Ana1);          //Leemos el valor de la entrada analogica
  Temp = map(Temp,0,1024,-55,150);  //Escalamos la señal a grados centigrados
  
  //Mostramos los grados en el serial
  Serial.print("Grados: ");
  Serial.print(Temp);
  Serial.print(Grados);
  Serial.println("C");
  
  
  //Mostramos los grados en la pantalla LCD
  lcd.setCursor(0,0);            //Con este comando decimos en que linea queremos escribir
  lcd.print("Temperatura: ");
  lcd.setCursor(0,1);            
  lcd.print(Temp); 
  
  
  delay(10000);                  //Al ser temperatura no hace falta leerlo tan seguido
}

LO MISMO CON UN SENSOR DS18B20.

CÓDIGO (ARDUINO) :

incluye  < LiquidCrystal.h >
# incluye  < OneWire.h >
# incluye  < DallasTemperature.h >

# define  ONE_WIRE_BUS  2

LiquidCrystal lcd ( 8 , 9 , 4 , 5 , 6 , 7 );
OneWire oneWire (ONE_WIRE_BUS);
DallasTemperature sensores (y OneWire);

 configuración del vacío ()
{
  sensores comenzar ();           // Inicializa los sensores
  lcd comienzo ( 16 , 2 );          // Inicializa la librería
  lcd claro ();
  lcd setCursor ( 0 , 0 );       // Coloca el cursor en el 0,0
  lcd impresión ( " Acuario 1 " );   // Imprime este mensaje
}

 bucle de vacío ()
{
  lcd setCursor ( 0 , 1 );                // Mueve el cursor al principio de la segunda línea
  lcd impresión ( " T " );                    // Imprime este mensaje   
  lcd setCursor ( 3 , 1 );                // Mueve el cursor a la segunda línea, caracter 3  
  sensores Temperaturas de solicitud ();     // Mide la temperatura
  lcd imprimir (sensores. getTempCByIndex ( 0 ), 1 ); // Imprime el valor recogido
  lcd impresión ( " C " );                         // Imprime este mensaje
}


TRABAJO EN CLASES:

2.Realice los cambios sugeridos a continuación y muestre sus resultados. Donde dice “#device adc=8” cambie por “#device adc=10”; convierta la variable “lectura” en entero de 16 bits y la línea printfcambie “%4u” por “%4lu”. ¿Cuál es el cambio mostrado en la pantalla LCD? ¿por qué?.

b. Convierta el valor leído en valor de voltaje de 0 a 5 voltios. Para esto cambie la variable “lectura” a variable tipo floaty configure su forma de mostrarse en el LCD. Luego, en la función While(true),  añada la instrucción “lectura= lectura / 204.6”.Cambie las instrucciones para que en la pantalla del LCD aparezca algo así “Tensión: 3.456 v”.

c. Finalmente agregue una condición IF para que si el valor de voltaje supera 4.5 voltios, mostrar el mensaje “WARNING” en la primera línea del LCD.



VIDEOS:

Agüero Cueva Jorge Alonso



                                       




Torres Umina Renzo Claudio





OBSERVACIONES 


-La variable de lectura debe ser de tipo float si queremos trabajar con decimales 
-Para la obtención de un valor de 0-5 voltios se tuvo que realizar una division entre 204.6 
-Si queremos comparar valores para el caso de 4.5 a mas se debe de realizar con una condicional.


CONCLUSIONES 

-Se realizo la lectura de una variación de voltaje con el puerto analógico dado por el potencio metro, dándonos la visualización dependiendo de la cantidad de bits asignados a nuestra variable de almacenamiento "lectura".

-El uso de la condicional IF  es necesaria al momento de hacer comparaciones en este caso a numeros mayores de 4.5

-Para que la impresión de los valores en el LCD no sean interrumpidos es necesario establecer bien las condiciones IF Y ELS si en caso la condicion no se cumpla   

INTEGRANTES:


Agüero Cueva Jorge Alonso

Torres Umiña Renzo Claudio














No hay comentarios:

Publicar un comentario