Professional Documents
Culture Documents
()
(
)
Valores relacionados, al conversor ADC de 10 bits del microcontrolador ATmega16.
Entonces:
(
)
2) Sensor de Presin MPX4115A
El dispositivo MPX4115A es un sensor anlogo que provee un voltaje de salida
proporcional a la presin absoluta en la atmosfera
Figura 4. Sensor de Presin MPX4115A y sus conexiones.
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
Figura 5. Curva caracterstica del sensor de Presin MPX4115A
( )
[]
[]
3) Sensor de Temperatura MCP9700A
El dispositivo MCP9700A es un sensor anlogo que provee un voltaje de salida
proporcional a la temperatura de ambiente.
Figura 6. Curva carcterstica del sensor de temperatura MCP9700A
De la hoja de datos de este sensor (Anexo C), se obtuvo la siguiente relacin entre la
temperatura y el voltaje de salida:
[] []
Valores relacionados, al conversor ADC de 10 bits del microcontrolador ATmega16.
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
Entonces:
(
)
4) Sensor de Gas CO2 TGS4161
El dispositivo TGS4161 es un sensor anlogo que provee los ppm de concentracin de CO2
presente en el rea de medida.
Caractersticas del sensor:
Amplio rango de deteccin de gas CO2 en ppm (350-1000).
Tamao reducido.
Notable independencia de la humedad.
Bajo consumo.
Costo bajo.
Durabilidad.
Figura 7. Sensor TGS4161 y su conexin de pines.
La tensin entre los terminales 2 (Counter electrode +) y 3 (Counter electrode -) muestra un
comportamiento lineal con el logaritmo de la concentracin de dixido de carbono CO2.
La figura mostrada a continuacin en representa la caracterstica tpica del sensor TGS4161,
adems muestra una dependencia lineal as como una alta selectividad al CO2 respecto a otros
gases (Un valor ms preciso de CO2 en convivencia con otros gases). El eje Y es indicado como
EMF que se define por lo siguiente:
EMF=EMF1 - EMF2
Donde:
EMF1=EMF a 350 ppm CO2
EMF2=EMF a la concentracin medida
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
Figura 8. Curva caracterstica y su dependencia respecto a la humedad del sensor TGS4161
MARCA Y MODELO FIGARO TGS4161
Tensin de Alimentacin (V) 5 0.2
Potencia consumida (mW) 240mW
Consumo de corriente (mA) 50
Condiciones de trabajo -10 a 50 C / 5 a 95 %RH
Tiempo de respuesta (seg) a 20 C 90
Rango de deteccin (ppm) 350-10000
Procesado de datos Simple
Circuito asociado Simple
Precio Aceptable
Tabla con las caractersticas del sensor de CO2 seleccionado
El sensor tiene una alta dependencia de la EMF absoluta con la temperatura. Por el contrario,
EMF se mantiene relativamente constante frente a los cambios de temperatura (anexo A, Fig. 5).
La tensin de calentamiento del sensor tambin es muy determinante en la EMF absoluta. En el
diseo del nodo sensor se deber tener en cuenta que esta tensin sea estable para no introducir
errores en la medida (anexo A, Fig. 7).
Debido a que el sensor tiene una impedancia de salida muy elevada el fabricante recomienda en
su hoja de especificaciones utilizar un amplificador operacional (como seguidor de tensin) con
alta impedancia de entrada (mayor que 100 G) y una corriente de polarizacin muy pequea
(menor que 1 pA) (anexo A, Fig.2 ).
5) Sensor de Gas NO2 MiCS-2710
El dispositivo MiCS-2710 es un sensor de gas que provee los ppm de concentracin de NO2
presente en el rea de medida.
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
Figura 9.
Parmetros del sensor de Gas NO2 MiCS2710
El voltaje de alimentacin Vcc=2.5V. Mientras que el valor del voltaje VH=1.7V.
Figura 10. Curva caracterstica del sensor MiCS-2710
De la siguiente relacin tomada de la hoja de datos del sensor, y para sus valores de
operacin:
RS = RL /(VCC - VS) x VS
Para un valor de VCC=2.5v
)
Para un valor RL=10k ohm
)
[V] Rs:[kohm]
6) Sensor de Gas Metano CH4 TGS-2611
El dispositivo TGS-2611 es un sensor de gas que provee los ppm de concentracin de CH4 presente
en el rea de medida.
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
Figura 11. Curva caracterstica del sensor CH4 TGS2611
La figura 11 muestra todos los valores de concentracin adquiridas bajo estndares en condiciones
de prueba adecuadas (Anexo F). El eje Y indica la ratio de resistencia de sensado (Rs/Ro) que se
define como:
Rs: Resistencia de sensado para varios gases incluido el gas metano CH4
Ro: Resistencia de sensado a 5000 ppm de gas metano CH4
Figura 12. Distribucin de los pines de conexin del sensor de gas CH4 TGS2611
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
De la siguiente relacin tomada de la hoja de datos del sensor, y para sus valores de
operacin:
)
[] []
7) Sensor de Oxgeno SK-25-F
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
2.- Mejora del algoritmo de adquisicin de gases txicos
DIAGRAMA DE FLUJO
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
ESQUEMTICO DE SIMULACION
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
CODIGO DESARROLLADO EN EL ENTORNO ATMELSTUDIO
#ifndef F_CPU
#define F_CPU 16000000UL // 16 MHz clock speed
#endif
#define D0 eS_PORTD0
#define D1 eS_PORTD1
#define D2 eS_PORTD2
#define D3 eS_PORTD3
#define D4 eS_PORTD4
#define D5 eS_PORTD5
#define D6 eS_PORTD6
#define D7 eS_PORTD7
#define RS eS_PORTC6
#define EN eS_PORTC7
#define LTHRES 500
#define RTHRES 500
double valor_ADC;
float conver;
float k=0.004883;
float Pressure1,Temp1;
// 5 1024
// x y
// y=(5*x)/1024=k*x
#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h" //Can be download from the bottom of this article
#include "MPL115A1.h"
#include <avr/interrupt.h>
#define ACK 0x7E
#define LONG_TIME 10000
// Prototype Functions
void spi_init_master(void);
unsigned char spi_tranceiver(unsigned char data);
void ADC_init();
char convert(int valor_ADC);
void roll_efect();
void show_gas();
int adc_read(int ch);
void show_Pressure();
void gethumedad();
// global variables
int A0,A1,A2,A3,A4,A5,A6,A7;
char n1,n2,n3,n4,n0;
char Gas1;
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
// main function
int main(void)
{ DDRA=0;
DDRD = 0xFF;
DDRC = 0xFF;
DDRB= DDRB | 0b10110000;
DDRB = DDRB & 0b10111111;
TCCR2 = (1<<CS21);//interrupt
// int i;
int adc_result0, adc_result1, adc_result2, adc_result3,
adc_result4,adc_result5,adc_result6,adc_result7;
float hum_val, pres_val, temp_val, CH4_val, CO2_val, NO2_val, O2_val;
int hum_val1, pres_val1, temp_val1, CH4_val1, CO2_val1, NO2_val1, O2_val1;
ADC_init();
//spi_init_master();
init_SPI();
sbi(PORTB,CS);
sbi(PORTB,SDN);
Lcd8_Init();
Lcd8_Set_Cursor(1,1);
roll_efect();
PORTC = 0x07;
while(1)
{
adc_result0 = adc_read(0); // read adc value at PA0
adc_result1 = adc_read(1); // read adc value at PA1
adc_result2 = adc_read(2); // read adc value at PA2
adc_result3 = adc_read(3); // read adc value at PA3
adc_result4 = adc_read(4); // read adc value at PA4
adc_result5 = adc_read(5); // read adc value at PA5
if (adc_result0 < LTHRES && adc_result1 < RTHRES){
PORTC = 0x04;
_delay_ms(200); }
else
PORTC = 0x00;
//adc0 -- Sensor H5V5
//%HR=(VHR_out)-0.8)/3.1
hum_val=(adc_result0-157)*15.77;
hum_val1=hum_val;
gethumedad(hum_val1);
//adc1 -- MCP9700A
convert(adc_result1);
PORTC=0X00;
_delay_ms(50);
Lcd8_Set_Cursor(1,1);
Lcd8_Clear();
Lcd8_Write_Char('T');
Lcd8_Write_Char('C');
show_gas();
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
Lcd8_Write_String(" C");
PORTC = 0x07;
//Temperature
Temp1=calculateTemp();
convert(Temp1);
PORTC=0X00;
_delay_ms(50);
Lcd8_Set_Cursor(1,1);
Lcd8_Clear();
Lcd8_Write_Char('T');
Lcd8_Write_Char('E');
Lcd8_Write_Char('M');
Lcd8_Write_Char('P');
show_gas();
Lcd8_Write_String(" Celsius");
PORTC=0X07;
//Pressure
Pressure1=calculatePressure();
convert(Pressure1);
PORTC=0X00;
_delay_ms(50);
Lcd8_Set_Cursor(1,1);
Lcd8_Clear();
Lcd8_Write_Char('P');
Lcd8_Write_Char('r');
show_Pressure();
Lcd8_Write_String(" Pa");
PORTC=0X07;
}
}
// Function
void gethumedad(int hum_val1){
convert(hum_val1);
PORTC=0X00;
_delay_ms(50);
Lcd8_Set_Cursor(1,1);
Lcd8_Clear();
Lcd8_Write_Char('%');
Lcd8_Write_Char('H');
Lcd8_Write_Char('R');
PORTC=0X01;
_delay_ms(10);
Lcd8_Set_Cursor(2,1);
Lcd8_Write_Char(n1);
Lcd8_Set_Cursor(2,2);
Lcd8_Write_Char(n2);
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
Lcd8_Set_Cursor(2,3);
Lcd8_Write_Char('.');
Lcd8_Set_Cursor(2,4);
Lcd8_Write_Char(n3);
Lcd8_Set_Cursor(2,5);
Lcd8_Write_Char(n4);
Lcd8_Set_Cursor(2,6);
PORTC=0X03;
_delay_ms(50);
Lcd8_Write_String(" %HR");
PORTC = 0x07;
}
void ADC_init(){
DDRA=0;
ADCSRA|=(1<<ADEN)|(1<<ADPS2) |(1<<ADPS1) |(1<<ADPS0);
}
char convert (int valor_ADC){
int d0,d1,d2,d3,d4;
d0=valor_ADC/10000;
d1=valor_ADC-d0*10000;
d1=valor_ADC/1000;
d2=valor_ADC-d0*10000-d1*1000;
d2=d2/100;
d3=valor_ADC-d0*10000-d1*1000-d2*100;
d3=d3/10;
d4=valor_ADC-d0*10000-d1*1000-d2*100-d3*10;
n0=d0+0x30;
n1=d1+0x30;
n2=d2+0x30;
n3=d3+0x30;
n4=d4+0x30;
return 0;
}
void roll_efect(){
int i;
Lcd8_Write_String(" Toxic Gases Acquisition ");
for(i=0;i<15;i++)
{
_delay_ms(10);
Lcd8_Shift_Left();
}
for(i=0;i<15;i++)
{
_delay_ms(10);
Lcd8_Shift_Right();
}
}
void show_gas()
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
{
PORTC=0X01;
_delay_ms(10);
Lcd8_Set_Cursor(2,1);
Lcd8_Write_Char(n1);
Lcd8_Set_Cursor(2,2);
Lcd8_Write_Char(n2);
Lcd8_Set_Cursor(2,3);
Lcd8_Write_Char(n3);
Lcd8_Set_Cursor(2,4);
Lcd8_Write_Char(n4);
Lcd8_Set_Cursor(2,5);
PORTC=0X03;
_delay_ms(50);
}
void show_Pressure(){
PORTC=0X01;
_delay_ms(10);
Lcd8_Set_Cursor(2,1);
Lcd8_Write_Char(n0);
Lcd8_Set_Cursor(2,2);
Lcd8_Write_Char(n1);
Lcd8_Set_Cursor(2,3);
Lcd8_Write_Char(n2);
Lcd8_Set_Cursor(2,4);
Lcd8_Write_Char(n3);
Lcd8_Set_Cursor(2,5);
Lcd8_Write_Char(n4);
Lcd8_Set_Cursor(2,6);
PORTC=0X03;
_delay_ms(50);
}
int adc_read(int ch)
{
ch &= 0b00000111;
ADMUX = (ADMUX & 0xF8)|ch;
ADCSRA |= (1<<ADSC);
while(ADCSRA & (1<<ADSC));
return (ADC);
}
void spi_init_master (void)
{
DDRB = (1<<5)|(1<<3)|(1<<7)|(0<<6)|(1<<2);
}
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
3.- Correccin de la tarjeta de adquisicin de gases txicos.
Figura. PCB (Board) de la tarjeta de adquisicin de gases
UNIVERSIDAD NACIONAL DE INGENIERA-UNI
Figura. PCB (Esquematico) de la tarjeta de adquisicin de gases