# Calibracion de sensor de monoxido de carbono(CO) MQ-7



## Ing1992 (Abr 3, 2012)

Hola, soy nuevo en el foro, alguien me puede ayudar con la calibracion de este sensor? en la hoja de datos me dice que tengo que hacer un circuito que me de 5 volts durante 90 segundos y 1.4 volts durante 60 segundos, los 1.4 volts pretendo sacarlos mediante un divisor de tension. el problema lo tengo para hacer el programa para el pic16f877a que me de los cambios en esos tiempos, alguna idea?


----------



## 300 KVA (Abr 11, 2012)

puedes hacer un programa como este

ciclo de 1 segundo: {lo que esta entre llaves son comentarios y tienes que eliminarlos del programa}
asumimos una frecuencia de trabajo de 4 mhz en el oscilador

st equ 0x03
pb equ 0x06
conta1 equ 0x20
conta2 equ 0x21
conta3 equ 0x22 {tres contadores}

org 0x07
bsf st,5
movlw 0xfc {los pines 0 y 1 del puerto b son configurados como salidas, el resto como entradas}
bcf st,5

bsf pb,0 {enciende el pin 0 de b para mandar la primera señal, por ejemplo energizando un transistor que mande los 5 v al sensor}

movlw 0x2c {carga 60 en hexadecimal en el contador 1
movwf conta1
alfa: {etiqueta 1}
movlw 0xff
movwf conta2 {carga 255 en el contador secundario}
beta: {etiqueta 2} 
movlw 0xff
movwf conta3 {carga 255 en el contador terciario}
nop {portate como diputado en la camara, es decir, no hagas nada}
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop {diez veces}
decfsz conta3 {decrementa conta3 y saltate la sig. instrucción cuando sea =0}
goto beta
decfsz conta2{hasta aqui usa aprox 1 segundo }
goto alfa
decfsz conta1{y con esto da el minuto}
goto alfa

bcf pb,0
bsf pb,1 {apaga y prende los pines 0 y 1 respectivamente}

movlw 0x2c {carga 60 en hexadecimal en el contador 1
movwf conta1
delta: {etiqueta 3}
movlw 0xff
movwf conta2 {carga 255 en el contador secundario}
epsilon: {etiqueta 4} 
movlw 0xff
movwf conta3 {carga 255 en el contador terciario}
nop {portate como diputado en la camara, es decir, no hagas nada}
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop {diez veces}
decfsz conta3 {decrementa conta3 y saltate la sig. instrucción cuando sea =0}
goto epsilon
decfsz conta2{hasta aqui usa aprox 1 segundo }
goto delta
decfsz conta1{y con esto da el minuto}
goto delta

{y listo, el sensor está calibrado}


----------

