- MQ6-kaasuanturi
- Kuinka mitata PPM MQ-kaasuantureilla?
- Vaaditut komponentit
- Kaavamainen
- MQ-anturi PIC-ohjelmoinnilla
MQ-sarjan kaasuanturit ovat hyvin yleisiä antureja, joita käytetään kaasunilmaisimissa tietyntyyppisten kaasujen havaitsemiseksi tai mittaamiseksi. Näitä antureita käytetään laajalti kaikissa kaasuihin liittyvissä laitteissa, kuten yksinkertaisista savuilmaisimista teollisiin ilmanlaadunvalvontalaitteisiin. Olemme jo käyttäneet näitä MQ-kaasuantureita Arduinon kanssa haitallisten kaasujen, kuten ammoniakin, mittaamiseen. Tässä artikkelissa opitaan, kuinka näitä kaasuantureita käytetään PIC-mikrokontrollereiden kanssa mittaamaan kaasun PPM-arvo ja näyttämään se 16x2-nestekidenäytöllä.
Kuten aiemmin mainittiin, markkinoilla on erilaisia MQ-sarjan antureita, ja jokainen anturi voi mitata erityyppisiä kaasuja alla olevan taulukon mukaisesti. Tämän artikkelin vuoksi käytämme PIC: llä varustettua MQ6-kaasuanturia, jota voidaan käyttää nestekaasun läsnäolon ja pitoisuuden havaitsemiseen. Samaa laitteistoa ja laiteohjelmistoa käyttämällä voidaan kuitenkin käyttää myös muita MQ-sarjan antureita ilman suuria muutoksia koodi- ja laitteisto-osassa.
Sensori | Tunnistaa |
MQ-2 | Metaani, butaani, nestekaasu, savu |
MQ-3 | Alkoholi, etanoli, savu |
MQ-4 | Metaani, CNG-kaasu |
MQ-5 | Maakaasu, nestekaasu |
MQ-6 | Nestekaasu, butaanikaasu |
MQ-7 | Hiilimonoksidi |
MQ-8 | Vetykaasu |
MQ-9 | Hiilimonoksidi, syttyvät kaasut. |
MQ131 | Otsoni |
MQ135 | Ilmanlaatu (bentseeni, alkoholi, savu) |
MQ136 | Rikkisulfidikaasu |
MQ137 | Ammoniakki |
MQ138 | Bentseeni, tolueeni, alkoholi, asetoni, propaani, formaldehydikaasu, vety |
MQ214 | Metaani, maakaasu |
MQ216 | Maakaasu, kivihiilikaasu |
MQ303A | Alkoholi, etanoli, savu |
MQ306A | Nestekaasu, butaanikaasu |
MQ307A | Hiilimonoksidi |
MQ309A | Hiilimonoksidi, syttyvät kaasut |
MG811 | Hiilidioksidi (CO2) |
AQ-104 | Ilman laatu |
MQ6-kaasuanturi
Alla olevassa kuvassa on MQ6-anturin nastakaavio. Vasen kuva on kuitenkin moduulipohjainen MQ6-anturi liitäntää varten mikrokontrolleriyksikön kanssa, myös moduulin pin-kaavio näkyy siinä kuvassa.
Nasta 1 on VCC, nasta 2 on GND, nasta 3 on digitaalinen lähtö (logiikka vähissä, kun kaasua havaitaan.) Ja nasta 4 on analoginen lähtö. Pottia käytetään herkkyyden säätämiseen. Se ei ole RL. RL-vastus on DOUT-LEDin oikea vastus.
Jokaisella MQ-sarjan anturilla on lämmityselementti ja tunnistusvastus. Kaasun konsentraatiosta riippuen tunnistusvastus muuttuu ja havaitsemalla muuttava vastus voidaan mitata kaasupitoisuus. Ja mittaamaan kaasun pitoisuus PPM kaikki MQ anturit logaritminen kaavio, joka on erittäin tärkeä. Kaavio antaa yleiskuvan kaasupitoisuudesta RS: n ja RO: n suhteen.
Kuinka mitata PPM MQ-kaasuantureilla?
RS on aistivastus tietyn kaasun läsnä ollessa, kun taas RO on aistivastus puhtaassa ilmassa ilman erityistä kaasua. Alla oleva tietolomakkeesta otettu logaritminen kaavio antaa yleiskuvan kaasupitoisuudesta MQ6-anturin aistivastuksella. MQ6-anturia käytetään nestekaasun pitoisuuden havaitsemiseen. Siksi MQ6-anturi tarjoaa erityisen kestävyyden puhtaan ilman aikana, kun nestekaasua ei ole saatavana. Vastus muuttuu myös aina, kun MQ6-anturi havaitsee nestekaasun.
Joten meidän on piirrettävä tämä kaavio laiteohjelmistoon samanlainen kuin mitä teimme Arduino Gas Detector Project -projektissamme. Kaavassa on oltava 3 erilaista datapistettä. Kaksi ensimmäistä datapistettä ovat nestekaasukäyrän alku X- ja Y-koordinaateina. Kolmas tieto on kaltevuus.
Joten, jos valitsemme syvän sinisen käyrän, joka on nestekaasukäyrä, käyrän alku X- ja Y-koordinaateissa on 200 ja 2. Joten ensimmäinen logaritmisen asteikon datapiste on (log200, log2), joka on (2,3, 0,30).
Tehdään se muodossa, X1 ja Y1 = (2,3, 0,30). Käyrän loppu on toinen datapiste. Samalla yllä kuvatulla prosessilla X2 ja Y2 ovat (log 10000, log0,4). Siten X2 ja Y2 = (4, -0,40). Käyrän kaltevuuden saamiseksi kaava on
= (Y2-Y1) / (X2-X1) = (- 0,40 - 0,30) / (4 - 2,3) = (-0,70) / (1,7) = -0,41
Tarvittava kaavio voidaan antaa
LPG_Curve = {alkava X ja alkava Y, kaltevuus} LPG_Curve = {2.3, 0.30, -0.41}
Muita MQ-antureita varten hanki yllä olevat tiedot datalehdestä ja logaritmisen kuvaajan kaaviosta. Arvo eroaa mitatun anturin ja kaasun perusteella. Tätä moduulia varten siinä on digitaalinen tappi, joka antaa tietoja vain kaasusta tai ei. Tätä projektia varten sitä käytetään myös.
Vaaditut komponentit
Tarvittavat komponentit MQ-anturin liittämiseksi PIC-mikrokontrolleriin on annettu alla-
- 5 V: n virtalähde
- Leipälauta
- 4.7k vastus
- LCD 16x2
- 1k vastus
- 20MHz kristalli
- 33pF kondensaattori - 2kpl
- PIC16F877A-mikrokontrolleri
- MQ-sarjan anturi
- Berg ja muut kytkentäjohdot.
Kaavamainen
Kaavio tälle kaasuanturille PIC-projektilla on melko suoraviivainen. Analoginen nasta on kytketty RA0: een ja digitaalinen RD5: een kaasuanturimoduulin tarjoaman analogisen jännitteen mittaamiseksi. Jos olet PIC: ssä aivan uusi, sinun kannattaa ehkä tutustua PIC ADC -oppaaseen ja PIC LCD -oppaaseen ymmärtääksesi tätä projektia paremmin.
Piiri on rakennettu leipälautaan. Kun liitännät on tehty, määritykseni näyttää tältä, kuten alla on esitetty.
MQ-anturi PIC-ohjelmoinnilla
Tämän koodin pääosa on päätoiminto ja muut siihen liittyvät oheislaitetoiminnot. Complete-ohjelma löytyy tämän sivun alareunasta, tärkeät koodinpätkät selitetään seuraavasti
Alla olevaa toimintoa käytetään anturin vastusarvon saamiseen vapaassa ilmassa. Kun käytetään analogista kanavaa 0, se saa dataa analogiselta kanavalta 0. Tämä on tarkoitettu MQ-kaasuanturin kalibrointiin.
kelluva SensorCalibration () { int count; // Tämä toiminto kalibroi anturin vapaassa ilmakellossa val = 0; for (count = 0; count <50; count ++) {// ota useita näytteitä ja laske keskiarvo val + = Laske resistanssi (ADC_Read (0)); __viive_ms (500); } val = val / 50; val = val / RO_VALUE_CLEAN_AIR; // jaettuna RO_CLEAN_AIR_FACTOR: lla antaa Ro- paluuventtiilin; }
Toiminnon alapuolella käytetään MQ-anturin analogisten arvojen lukemiseen ja keskiarvon laskemiseen Rs-arvo
float read_MQ () { int määrä; kelluva rs = 0; for (count = 0; count <5; count ++) {// ottaa useita lukemia ja keskiarvo. rs + = laske vastus (ADC_Lue (0)); // rs muuttuu kaasupitoisuuden mukaan. _ viive_ms (50); } rs = rs / 5; paluu rs; }
Alla olevaa toimintoa käytetään laskemaan vastus jännitteenjakajan vastuksesta ja kuormitusvastuksesta.
float calc_resistance (int adc_channel) {// anturi ja kuormitusvastus muodostavat jännitteenjakajan. joten käytetään analogista arvoa ja kuormitusarvon palautusta (((float) RL_VALUE * (1023-adc_channel) / adc_channel)); // löydämme anturin vastuksen. }
RL_VALUE määritetään koodin alussa, kuten alla on esitetty
#define RL_VALUE (10) // määritä taulun kuormitusvastus kilohomeina
Muuta tätä arvoa tarkastettuasi aluksen kuormitusvastuksen. Se voi olla erilainen muissa MQ-anturilevyissä. Käytettävissä olevan tiedon piirtämiseksi lokiasteikkoon käytetään seuraavaa toimintoa.
int gas_plot_log_scale (float rs_ro_ratio, float * käyrä) { return pow (10, ((((log (rs_ro_ratio) -käyrä) / käyrä) + käyrä)); }
Käyrä on edellä määritelty nestekaasukäyrä koodista, joka on aiemmin laskettu yllä artikkelissamme.
kelluva MQ6_käyrä = {2,3,0,30, -0,41}; // Kaavio, vaihda tämä tietylle anturille
Lopuksi alla on esitetty päätoiminto, jonka sisällä mitataan analogiarvo, lasketaan PPM ja näytetään se nestekidenäytöllä
void main () { system_init (); tyhjennä_näyttö (); lcd_com (FIRST_LINE); lcd_puts ("Kalibroidaan…."); Ro = SensorCalibration (); // tyhjennä_näyttö (); lcd_com (FIRST_LINE); lcd_puts ("Valmis!"); // tyhjennä_näyttö (); lcd_com (FIRST_LINE); lcd_print_numero (Ro); lcd_puts ("K ohmia"); _ viive_ms (1500); gas_detect = 0; while (1) { if (gas_detect == 0) { lcd_com (FIRST_LINE); lcd_puts ("Kaasua on läsnä"); lcd_com (SECOND_LINE); lcd_puts ("Kaasu ppm ="); kelluva rs = luettu_MQ (); uimurisuhde = rs / Ro; lcd_print_number (kaasun_piirtokaavio_luokka (suhde, MQ6_käyrä)); _ viive_ms (1500); tyhjennä_näyttö (); } else { lcd_com (FIRST_LINE); lcd_puts ("Kaasua ei ole"); } } }
Ensin mitataan anturin RO puhtaassa ilmassa. Sitten luetaan digitaalinen tappi tarkistaaksesi onko kaasua läsnä vai ei. Jos kaasua on läsnä, kaasu mitataan annetulla nestekaasukäyrällä.
Olen käyttänyt sytytintä tarkistamaan, onko PPM-arvo muuttumassa, kun kaasu havaitaan. Näissä sikarisytyttimissä on nestekaasua, jonka anturi lukee ilmaan päästettäessä ja nestekidenäytön PPM-arvo muuttuu alla olevan kuvan mukaisesti.
Koko työ löytyy tämän sivun alaosassa olevasta videosta. Jos sinulla on kysyttävää, jätä ne kommenttiosioon tai käytä foorumeitamme muihin teknisiin kysymyksiin.