Pablo Lopez
/
MQ135codigo
mq135
Diff: MQ135.cpp
- Revision:
- 0:59011d343342
- Child:
- 1:8944058d8e95
diff -r 000000000000 -r 59011d343342 MQ135.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MQ135.cpp Fri Jun 16 15:01:55 2017 +0000 @@ -0,0 +1,65 @@ +#include "MQ135.h" +#include "mbed.h" + +MQ135::MQ135(PinName pin) : _pin(pin) { + _pin = A0; + +} +void MQ135::initialize(){ + mqR = 22000; + rO = 41763; + a = 116.6020682; + b = -2.769034857; + adc_limit = 65535; + } +float MQ135::getPPM() { + Serial pc(USBTX,USBRX); + float adcRaw=_pin.read_u16(); + pc.printf("adc: %f\n\r", adcRaw); + + rS = ((adc_limit * mqR) / adcRaw) - mqR; + pc.printf("Rs: %d\n\r", rS); + rSrO = (float)rS / (float)rO; + pc.printf("RsrO: %f\n\r", rSrO); + float ppm = a * pow(rSrO, b); + pc.printf("ppm: %f\n\r", ppm); + return ppm; +} +int MQ135::air_quality(){ + Serial pc(USBTX,USBRX); + float adcRaw=_pin.read_u16()/64; + //Aire limpio + if(adcRaw <= 55){ + pc.printf("Aire limpio \n\r"); + pc.printf("\n\r"); + return 0; + } + + //Dioxido de carbono bajo (Respiracion humana) + if( adcRaw >= 56 && adcRaw <= 73){ + pc.printf("Aire con un poco de CO2 \n\r"); + pc.printf("\n\r"); + return 1; + } + + //Dioxido de carbono + if( adcRaw >= 74 && adcRaw <= 350){ + pc.printf("Dioxido de carbono CO2 \n\r"); + pc.printf("\n\r"); + return 2; + } + + //Gas propano y butano + if(adcRaw >= 400){ + pc.printf("Propano butano \n\r"); + pc.printf("\n\r"); + return 3; + } +} +long MQ135::getRs(){ + return rS; +} + +float MQ135::getRsRo(){ + return rSrO; +} \ No newline at end of file