Ingeniera Electrnica
Segundo laboratorio: SENSOR DE DETECCIN DE GAS
30 de Noviembre 2016
Informe No. 03
ESPECIFICOS:
FUNCIONAMIENTO:
Al energizar se genera una luz infrarroja y esta luz
llega a un detector de luz infrarroja que genera una
tensin de salida cerrando el circuito. Si no se activa la
luz o no le llega la luz al detector (se genera un
bloqueo), este no generara tensin de salida.
Universidad Surcolombiana
Ingeniera Electrnica
Segundo laboratorio: SENSOR DE DETECCIN DE GAS
30 de Noviembre 2016
DESARROLLO PRCTICO
Se hizo un estudio de reconocimiento del sensor de
ranura, pues el sensor no cuenta con una referencia
visible para as guiarnos de su respectivo DataSheet
que nos diera informacin acerca del dispositivo.
Seguido a esto iniciamos con la programacin del pic
16F877a (software) donde fueron ledos los cambios
de flanco por el sensor y se ingresaron al pic para ser
posteriormente multiplicados por 5s (60/12) siendo 12
el nmero de ranuras y 60 la constante de conversin a
RPM. Para la visualizacin del tacmetro (Hardware)
definimos un estndar hacia los puertos B del pic
donde se conect el LCD. As mismo se realiz la
debida proteccin (resistencias) y variacin de
intensidad lumnica.
En el Adjunto A se presenta el cdigo en C del
tacmetros escrito en el compilador Mikro C, luego se
compilo y se obtuvo el archivo .hex el cual se us en la
simulacin junto a un generador de pulsos de onda
cuadrada.
Universidad Surcolombiana
Ingeniera Electrnica
Segundo laboratorio: SENSOR DE DETECCIN DE GAS
30 de Noviembre 2016
CONCLUSIONES
GENERAL:
BIBLIOGRAFA
Instrumentacin Industrial CREUS
ANEXOS
Adjunto A
#include <16f877a.h>
#device adc=10 //Usa resolucin de 10 bits
#use delay(clock=4000000)
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
#include "lcd.c"
#use standard_io (D)
void main (void)
{
float SN,medicion;
lcd_init();
//Inicia LCD
lcd_putc(" Gasimetro\n"); //Saca texto
lcd_putc(" MQ5"); //Saca texto
delay_ms(2000);
lcd_putc("\f");
//Limpia pantalla
lcd_putc("se detecta\n"); //Saca texto
lcd_putc("GAS?");
//Saca texto
delay_ms(1000);
while (1)
{
lcd_gotoxy(8,2); //Acomoda cursor LCD
lcd_putc(" "); //Limpia ese sector de pantalla
lcd_gotoxy(8,2); //Acomoda cursor LCD
setup_adc (adc_clock_internal);
setup_adc_ports (all_analog);
set_adc_channel (0); //Elige canal a medir RA0
delay_us (20);
medicion=read_adc (); //Hace conversin AD
setup_adc (adc_off); //Apaga ADC
SN=medicion*(0.0048875); //Pasa binario a C
//***********si la temperatura es mayor que 35
if(SN>=2) {
output_high(pin_a1);
output_high(pin_a2);
output_low(pin_a3);
lcd_gotoxy(5,2);
printf(lcd_putc," SI (x.x)");
delay_ms(200); }
//****************si la temperatura es correcta o menor que 35
else {
output_low(pin_a1);
output_low(pin_a2);
output_high(pin_a3);
lcd_gotoxy(5,2);
printf(lcd_putc," NO \(^-^)/");
delay_ms(200);
}
}
}
Adjunto B