jueves, 25 de abril de 2019

MICRO CONTROLADORES

LABORATORIO NR°6
 Lectura de Entradas  Analógicas y Sensores de temperatura 



I. 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.

ll. MARCO TEÓRICO :

Sensores de temperatura:


Los sensores de temperatura son dispositivos que transforman los cambios de temperatura en cambios en señales eléctricas que son procesados por equipo eléctrico o electrónico. Hay tres tipos de sensores de temperatura, los termistores, los RTD y los termopares.
El sensor de temperatura, típica mente suele estar formado por el elemento sensor, de cualquiera de los tipos anteriores, la vaina que lo envuelve y que está rellena de un material muy conductor de la temperatura, para que los cambios se transmitan rápidamente al elemento sensor y del cable al que se conectarán el equipo electrónico.

Termistor: El termistor está basado en que el comportamiento de la resistencia de los semiconductores es variable en función de la temperatura. Existen los termistores tipo NTC y los termistores tipo PTC. En los primeros, al aumentar la temperatura, disminuye la resistencia. En los PTC, al aumentar la temperatura, aumenta la resistencia.
.
RTD: Un RTD es un sensor de temperatura basado en la variación de la resistencia de un conductor con la temperatura. Los metales empleados normalmente como RTD son platino, cobre, níquel y molibdeno.


Temopar: El termopar, también llamado termocupla y que recibe este nombre por estar formado por dos metales, es un instrumento de medida cuyo principio de funcionamiento es el efecto termoceléctrico.Un material termoeléctrico permite transformar directamente el calor en electricidad, o bien generar frío cuando se le aplica una corriente eléctrica.El termopar genera una tensión que está en función de la temperatura que se está aplicando al sensor. Midiendo con un voltímetro la tensión generada, conoceremos la temperatura.
Resultado de imagen para sensores de temperaturaImagen relacionada

 Como funcionamiento un sensor de temperatura  ?

Un sensor es un objeto capaz de detectar magnitudes físicas o químicas llamadas variables de instrumentación, que pueden ser la intensidad lumínica, la temperatura, distancia, aceleración, etc. El sensor de temperatura empleado más habitualmente es el sensor termopolar. Está formado por mecanismos muy sencillos constituidos por dos materiales metálicos de diferente naturaleza unidos mediante uniones llamadas unión fría y unión caliente. El grado de temperatura que detectan estas uniones genera una diferencia de potencial estrechamente dependiente de la naturaleza de los materiales. El sensor térmico transforma esta diferencia de potencial en una señal eléctrica.


Que son entradas Analógicas ?


Una señal eléctrica analógica es aquella en la que los valores de la tensión o voltaje varían constantemente y pueden tomar cualquier valor. En el caso de la corriente alterna, la señal analógica incrementa su valor con signo eléctrico positivo (+) durante medio ciclo y disminuye a continuación con signo eléctrico negativo (–) en el medio ciclo siguiente.

Un sistema de control (como un microcontrolador) no tiene capacidad alguna para trabajar con señales analógicas, de modo que necesita convertir las señales analógicas en señales digitales para poder trabajar con ellas.
La señal digital obtenida de una analógica tiene dos propiedades fundamentales:
  • Valores. Que valor en voltios define 0 y 1. En nuestro caso es tecnología TTL (0– 5V).

  • Resolución analógica: nº de bits que usamos para representar con una notación digital .
En el caso de un arduino Uno, el valor de 0 voltios analógico es expresado en digital como B0000000000 (0) y el valor de 5V analógico es expresado en digital como B1111111111 (1023). Por lo tanto todo valor analógico intermedio es expresado con un valor entre 0 y 1023, es decir, sumo 1 en binario cada 4,883 mV.

Resultado de imagen para que son entradas analogicas
lcd_gotoxy(): Nos da la posicion de acceso al LCD. por ejemplo: lcd_gotoxy(1,1), esto nos indica la primera posición de la primera linea y si fuera (1,2) seria primera posición de la segunda linea. 

#DEVICE: permite definir al PIC con el que se realizara.

setup_adc(ADC_CLOCK_INTERNAL):  modo para la configuración del modula AD correspondiente a los 7:6 del ADCON0.  

setup_adc_ports(AN0): Es el valor de las entradas analógicas correspondiente a los bit 3-0 del ADCON1. 


TAREA A REALIZAR 

1.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 printf cambie “%4u” por “%4lu”. ¿Cuál es el cambio mostrado en la pantalla LCD? ¿por qué?.
  • Convierta el valor leído en valor de voltaje de 0 a 5 voltios. Para esto cambie la variable “lectura” a variable tipo float y 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í “Tension: 3.456 v”.
  • 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.

#include <16f877a.h>             // Incluimos archivo con PIC a utilizar
#device adc=10                    // Utilizamos 8 bits de RESOLUCION de lectura 
#use delay (clock=20M)           // Indicamos al compilador que trabajaremos a 20Mhz
#fuses HS, NOPROTECT, NOWDT      // Configuración básica de los fusibles

#define LCD_ENABLE_PIN        PIN_D3   //Definimos los pines a ser utilizados por la
#define LCD_RS_PIN            PIN_D2   //pantalla LCD
#define LCD_RW_PIN            PIN_A0   
#define LCD_DATA4             PIN_D4
#define LCD_DATA5             PIN_D5
#define LCD_DATA6             PIN_D6
#define LCD_DATA7             PIN_D7  
#include <lcd.c>                 //
float lectura=0;

void main ()
{
   lcd_init () ;                       // Inicializamos pantalla LCD
   printf (lcd_putc, "\fLECTURA ANALOGICA") ;  // Mandamos mensaje por única vez

   //Configuración del puerto analógico
   setup_adc_ports (AN0_AN1_AN3);
   setup_adc (ADC_CLOCK_INTERNAL);
   set_adc_channel (3); //lectura del canal analogico 3
   delay_us (20);
   
   WHILE (true)
   {
      lectura = read_adc (); 
      lectura = lectura / 204.6;  // Leemos Canal A0
      delay_ms (20) ;               // esperamos para una correcta lectura
      lcd_gotoxy(1,2);              // ubicamos cursos en LCD
      printf (lcd_putc, " Tension : %1.1f", lectura); // imprimimos valor
      delay_ms(100);  
      IF (lectura > 4.5)
      {
       lcd_gotoxy(1,1);
       printf(lcd_putc,"      WARNING     ");// esperamos
      }
      ELSE 
      {
       lcd_gotoxy(1,1);
       printf(lcd_putc," LECTURA ANALOGICA ");// esperamos
      }
      
    }
}


VÍDEO DE EXPLICACIÓN: 



CONCLUSIONES:
  • Se concluyo que nos servir de mucho las entradas analógicas del PIC 16F877A, las cuales convertimos a digitales para poder leerlas en una pantalla LCD.
  • Se concluyo que se puede simular un sensor de temperatura con un potenciómetro conectado a una fuente de 5 voltios.
  • Se concluyo que cada tipo de variables debemos utilizar según sea nuestra necesidad.
  • Se conoció el funcionamiento de un Display LCD en la tarjeta PIC16F877A.
OBSERVACIONES: 
  • Se observo que el convertidor analógico digital (adc) puede trabajar a una resolución de 8 bits, con la cual puede contarse de 0 hasta 255 y con una resolución de 10 bits, de 0 a 1023.
  • Se observo señal analógica de entrada la obtuvimos a partir de un potenció metro colocado en configuración divisor de tensión de 0 a 5 voltios.
  • Tambien se oBservo que setup_adc_ports(x,x) es donde nuestra variables analógicas toman valor  correspondiente a los 3-0 bits. 
  • El LCD es un dispositivo electrónico que sirve para mostrar información que deseamos ver.

1 comentario: