- Senzor plynu MQ6
- Ako merať PPM pomocou senzorov plynu MQ?
- Požadované komponenty
- Schematické
- Senzor MQ s programovaním PIC
Série MQ plynové senzory sú veľmi bežné typy senzorov používaných v detektoroch plynov na detekciu alebo meranie určitých druhov plynov. Tieto snímače sú široko používané vo všetkých zariadeniach súvisiacich s plynom, napríklad od jednoduchých detektorov dymu až po monitory kvality priemyselného ovzdušia. Tieto senzory plynov MQ sme už spolu s Arduinom použili na meranie niektorých škodlivých plynov, ako je amoniak. V tomto článku sa dozvieme, ako používať tieto senzory plynu s mikrokontrolérmi PIC na meranie hodnoty PPM plynu a ich zobrazenie na 16x2 LCD.
Ako už bolo spomenuté vyššie, na trhu sú k dispozícii rôzne druhy senzorov série MQ a každý senzor dokáže merať rôzne druhy plynov, ako je uvedené v nasledujúcej tabuľke. V záujme tohto článku budeme používať plynový senzor MQ6 s PIC, pomocou ktorého je možné detegovať prítomnosť a koncentráciu LPG plynu. Použitím rovnakého hardvéru a firmvéru je však možné použiť aj ďalšie snímače série MQ bez väčších úprav v časti kódu a hardvéru.
Senzor | Zistí |
MQ-2 | Metán, bután, LPG, dym |
MQ-3 | Alkohol, etanol, dym |
MQ-4 | Metán, plyn CNG |
MQ-5 | Zemný plyn, LPG |
MQ-6 | LPG, butánový plyn |
MQ-7 | Oxid uhoľnatý |
MQ-8 | Plynný vodík |
MQ-9 | Oxid uhoľnatý, horľavé plyny. |
MQ131 | Ozón |
MQ135 | Kvalita ovzdušia (benzén, alkohol, dym) |
MQ136 | Plynný sírovodík |
MQ137 | Amoniak |
MQ138 | Benzén, toluén, alkohol, acetón, propán, plynný formaldehyd, vodík |
MQ214 | Metán, zemný plyn |
MQ216 | Zemný plyn, uhoľný plyn |
MQ303A | Alkohol, etanol, dym |
MQ306A | LPG, butánový plyn |
MQ307A | Oxid uhoľnatý |
MQ309A | Oxid uhoľnatý, horľavé plyny |
MG811 | Oxid uhličitý (CO2) |
AQ-104 | Kvalita vzduchu |
Senzor plynu MQ6
Na nasledujúcom obrázku je znázornená schéma pinov senzora MQ6. Ľavý obrázok je však snímačom MQ6 na báze modulu pre prepojenie s jednotkou mikrokontroléra, pinová schéma modulu je tiež znázornená na tomto obrázku.
Pin 1 je VCC, Pin 2 je GND, Pin 3 je digitálny výstup (logická nízka, keď je detekovaný plyn.) A Pin 4 je analógový výstup. Hrniec slúži na nastavenie citlivosti. Nie je to RL. Rezistor RL je pravý rezistor LED DOUT.
Každý snímač série MQ má vykurovacie teleso a snímací odpor. V závislosti od koncentrácie plynu sa mení snímací odpor a detekciou meniaceho sa odporu je možné merať koncentráciu plynu. Na meranie koncentrácie plynu v PPM poskytujú všetky senzory MQ logaritmický graf, ktorý je veľmi dôležitý. Graf poskytuje prehľad koncentrácie plynu s pomerom RS a RO.
Ako merať PPM pomocou senzorov plynu MQ?
RS je snímací odpor počas prítomnosti konkrétneho plynu, zatiaľ čo RO je snímací odpor v čistom vzduchu bez konkrétneho plynu. Nižšie uvedený logaritmický graf prevzatý z údajového listu poskytuje prehľad koncentrácie plynu so zmyslovým odporom snímača MQ6. Senzor MQ6 sa používa na detekciu koncentrácie LPG plynu. Preto snímač MQ6 poskytne zvláštny odpor počas čistého stavu vzduchu, keď nie je k dispozícii plyn LPG. Odpor sa tiež zmení vždy, keď snímač MQ6 deteguje plyn LPG.
Tento graf teda musíme vykresliť do nášho firmvéru podobne, ako sme to urobili v našom projekte detektora plynov Arduino. Vzorec má mať 3 rôzne údajové body. Prvé dva údajové body sú začiatkom krivky LPG v súradniciach X a Y. Tretím údajom je sklon.
Ak teda vyberieme hlbokú modrú krivku, ktorá je krivkou LPG, začatie krivky v súradniciach X a Y je 200 a 2. Takže prvý údajový bod z logaritmickej stupnice je (log200, log2), čo je (2,3, 0,30).
Urobme to ako, X1 a Y1 = (2,3; 0,30). Koniec krivky je druhý údajový bod. Rovnakým procesom, ako je opísaný vyššie, sú X2 a Y2 (log 10 000, log 0,4). Teda X2 a Y2 = (4, -0,40). Ak chcete získať sklon krivky, vzorec je
= (Y2-Y1) / (X2-X1) = (- 0,40 - 0,30) / (4 - 2,3) = (-0,70) / (1,7) = -0,41
Graf, ktorý potrebujeme, môžeme uviesť ako
LPG_Curve = {začiatok X a začiatok Y, sklon} LPG_Curve = {2,3, 0,30, -0,41}
Pre ďalšie snímače MQ získajte vyššie uvedené údaje z údajového listu a grafu logaritmického grafu. Hodnota sa bude líšiť v závislosti od snímača a nameraného plynu. Pre tento konkrétny modul má digitálny kolík, ktorý poskytuje iba informácie o prítomnosti alebo neprítomnosti plynu. Pre tento projekt sa tiež používa.
Požadované komponenty
Nižšie sú uvedené požadované komponenty na prepojenie snímača MQ s mikrokontrolérom PIC.
- Napájanie 5V
- Nepál
- 4,7k rezistor
- LCD 16x2
- 1k rezistor
- 20Mhz kryštál
- Kondenzátor 33pF - 2ks
- Mikrokontrolér PIC16F877A
- Senzor série MQ
- Berg a iné pripojovacie vodiče.
Schematické
Schéma tohto snímača plynu s projektom PIC je celkom jednoduchá. Analógový pin je prepojený s RA0 a digitálny s RD5 na meranie analógového napätia dodávaného modulom snímača plynu. Ak ste v PIC úplne nový, možno budete chcieť pozrieť do výučby PIC ADC a výučby PIC LCD, aby ste lepšie pochopili tento projekt.
Obvod je skonštruovaný v doskovom poli. Po dokončení pripojení vyzerá moje nastavenie takto, zobrazené nižšie.
Senzor MQ s programovaním PIC
Hlavnou časťou tohto kódu je hlavná funkcia a ďalšie súvisiace periférne funkcie. Kompletný program nájdete v dolnej časti tejto stránky, dôležité útržky kódu sú vysvetlené nasledovne
Nasledujúca funkcia slúži na získanie hodnoty odporu snímača vo voľnom vzduchu. Pretože sa používa analógový kanál 0, získava dáta z analógového kanálu 0. Slúži na kalibráciu snímača plynu MQ.
float SensorCalibration () { int count; // Táto funkcia vykoná kalibráciu snímača vo voľnom vzduchu float val = 0; for (count = 0; count <50; count ++) {// odobrať viac vzoriek a vypočítať priemernú hodnotu val + = vypočítať_odpornosť (ADC_Read (0)); __delay_ms (500); } val = val / 50; val = val / RO_VALUE_CLEAN_AIR; // vydelené RO_CLEAN_AIR_FACTOR poskytne návratovú hodnotu Ro ; }
Ďalej sa funkcia používa na čítanie analógových hodnôt senzora MQ a na priemerovanie ich výpočtu hodnoty Rs
float read_MQ () { int count; float rs = 0; for (count = 0; count <5; count ++) {// vykoná viacnásobné čítanie a spriemeruje ho. rs + = vypočítaťodpor (ADC_Read (0)); // rs zmeny podľa koncentrácie plynu. __delay_ms (50); } rs = rs / 5; návrat rs; }
Nasledujúca funkcia sa používa na výpočet odporu z odporu deliča napätia a odporu záťaže.
float count_resistance (int adc_channel) {// senzor a záťažový rezistor tvoria delič napätia. takže použitie analógovej hodnoty a návratovej hodnoty (((float) RL_VALUE * (1023-adc_channel) / adc_channel)); // nájdeme odpor snímača. }
Hodnota RL_VALUE je definovaná na začiatku kódu, ako je uvedené nižšie
#define RL_VALUE (10) // definujte záťažový odpor na doske v kiloohmoch
Túto hodnotu zmeňte po skontrolovaní odporu záťaže vozidla. V iných doskách senzorov MQ to môže byť odlišné. Na vykreslenie dostupných údajov do mierky protokolu sa používa funkcia uvedená nižšie.
int gas_plot_log_scale (float rs_ro_ratio, float * curve) { return pow (10, ((((log (rs_ro_ratio) -curve) / curve) + curve)); }
Krivka je krivka LPG definovaná vyššie v kóde, ktorý bol predtým vypočítaný v našom článku vyššie.
float MQ6_curve = {2.3,0.30, -0,41}; // Graf grafu, zmeňte to pre konkrétny snímač
Nakoniec je uvedená hlavná funkcia, v ktorej zmeriame analógovú hodnotu, vypočítame hodnotu PPM a zobrazíme ju na displeji LCD
void main () { system_init (); clear_screen (); lcd_com (FIRST_LINE); lcd_puts ("Kalibruje sa…."); Ro = SensorCalibration (); // clear_screen (); lcd_com (FIRST_LINE); lcd_puts ("Hotovo!"); // clear_screen (); lcd_com (FIRST_LINE); lcd_print_number (Ro); lcd_puts ("K Ohmov"); __delay_ms (1 500); gas_detect = 0; while (1) { if (gas_detect == 0) { lcd_com (FIRST_LINE); lcd_puts ("Je prítomný plyn"); lcd_com (SECOND_LINE); lcd_puts ("Plyn ppm ="); float rs = read_MQ (); plavákový pomer = rs / Ro; lcd_print_number (gas_plot_log_scale (pomer, MQ6_curve)); __delay_ms (1 500); clear_screen (); } else { lcd_com (FIRST_LINE); lcd_puts ("Plyn nie je prítomný"); } } }
Najskôr sa RO meria na čistom vzduchu. Potom sa načíta digitálny pin, aby sa skontrolovalo, či je alebo nie je prítomný plyn. Ak je plyn prítomný, meria sa pomocou poskytnutej krivky LPG.
Použil som zapaľovač, aby som skontroloval, či sa hodnota PPM mení, keď je detekovaný plyn. Tieto zapaľovače majú v sebe LPG plyn, ktorý po uvoľnení do ovzdušia prečíta náš senzor a hodnota PPM na LCD displeji sa zmení, ako je uvedené nižšie.
Celú prácu nájdete vo videu v dolnej časti tejto stránky. Ak máte akékoľvek otázky, nechajte ich v časti s komentármi alebo použite ďalšie technické otázky na našom fóre.