Czujniki jakości powietrza typu MOS (czasami nazywane czujnikami MOx) opierają się na zachowaniu cząstek tlenku metalu (zwykle tlenku cyny) po podgrzaniu w obecności powietrza i/lub innych gazów.
Zamieszczono na nim przekrój typowego czujnika MOS.
Krzemowe podłoże układu czujnika ma cienką warstwę tlenku cyny na wierzchu, umieszczoną tam przez chemiczne osadzanie z fazy gazowej. Elektrody na obu końcach umożliwiają pomiar rezystancji tej warstwy. Na spodzie chipu znajduje się element grzewczy, służący do podgrzewania warstwy tlenku do około 200...250°C w celu przyspieszenia reakcji czujnika.
Gdy warstwa tlenku jest podgrzewana w obecności czystego powietrza, elektrony donorowe w tlenku przyciągają cząsteczki tlenu z powietrza i są „wychwytywane” przez cząsteczki tlenku. W rezultacie na powierzchni warstwy tlenku tworzy się warstwa zubożona, a jej rezystancja elektryczna wzrasta.
Jeśli jednak w powietrzu obecne są gazy redukujące, takie jak tlenek węgla (CO) i niektóre lotne organiczne związki chemiczne (VOC), cząsteczki tlenu na powierzchni tlenku są uwalniane, a warstwa zubożona staje się cieńsza. W rezultacie efektywna rezystancja warstwy tlenku ulega zmniejszeniu.
Prąd przepuszczany przez warstwę tlenku zmienia się więc proporcjonalnie do ilości gazu redukującego w powietrzu otaczającym warstwę tlenku. Im wyższe jest stężenie gazu redukującego, tym wyższy jest prąd. Dlatego podstawowy czujnik MOS zasadniczo zachowuje się jak analogowy przetwornik stężenia gazu redukującego na prąd stały.
Wspomnieliśmy już o kilku takich modułach w artykule dostępnym pod adresem siliconchip.au/Article/15309 wraz z kilkoma podstawowymi specyfikacjami. Nie zagłębialiśmy się jednak w szczegóły dotyczące tego, jak działają i jak z nich korzystać.
Hanwei MQ-135
Prawdopodobnie najpopularniejszym z dostępnych obecnie tanich czujników MOS jest Hanwei MQ-135. Czujnik ten jest wrażliwy na amoniak (NH3), tlenki azotu (NOx), dwutlenek węgla (CO2), alkohol, benzen i dym. Podobnie jak inne czujniki z serii Hanwei, czujnik MQ-135 jest dostarczany w cylindrycznej 6-nóżkowej obudowie o średnicy 19 mm i wysokości 15 mm.
Większość modułów używających czujnik MQ-135 po prostu pobiera z niego prąd wyjściowy i przetwarza na proporcjonalne napięcie za pomocą stałego rezystora obciążenia. Napięcie wyjściowe można następnie zmierzyć za pomocą multimetru cyfrowego lub podać na jedno z wejść ADC mikrokontrolera (MCU).
Wyprowadzenia grzałki MQ-135 (H) są podłączone między linią +5 V (VCC) a linią GND za pomocą szeregowego rezystora 5,1 Ω ograniczającego prąd.
Jeden koniec rezystora czujnika z tlenku cyny (Rs) jest podłączony do linii +5 V za pośrednictwem dwóch nóżek A, a drugi koniec do linii GND za pośrednictwem dwóch nóżek B i rezystora obciążenia 1 kΩ. Dwie nóżki B są również dołączone do gniazda tego modułu na wyprowadzenie sygnału analogowego A0. Sygnał ten może być dalej doprowadzony do multimetru lub do wejścia przetwornika analogowo-cyfrowego jakiegoś systemu mikroprocesorowego.
Pozostałe elementy są tak dobrane, aby moduł mógł być również używany jako prosty alarm poziomu gazu. Jedna połowa podwójnego komparatora LM393 (IC1b) porównuje napięcie na rezystorze obciążenia 1 kΩ z napięciem odniesienia ustawionym za pomocą potencjometru montażowego VR1, więc za każdym razem, gdy napięcie na A0 wzrośnie nieco powyżej napięcia odniesienia, wyjście IC1b (nóżka 7) spada do poziomu bliskiego zeru, powodując że dioda LED D0 zaczyna świecić. Jednocześnie obniżany jest poziom napięcia na pinie wyjściowym D0.
Jeśli chcesz używać modułu z MCU do monitorowania stężenia gazu, a nie używać go tylko jako alarmu stężenia gazu, najlepiej wprowadzić jedną zmianę w module. Polega ona na zastąpieniu rezystora obciążenia czujnika 1 kΩ rezystorem 22 kΩ. Zabieg ten zapewni wyższy skok napięcia wyjściowego i poprawi dokładność odczytu.
Rezystor ten jest elementem SMD o rozmiarze M2012/0805 (2,0 mm × 1,2 mm), więc będziesz potrzebować lutownicy z cienką końcówką i szkła powiększającego lub mikroskopu.
Wystarczy podłączyć piny VCC i GND modułu do wybranych pinów Arduino, a także pin A0 modułu do jednego z pinów wejściowych ADC Arduino, w tym przypadku używamy A2.
Do pracy z modułem MQ-135 dostępnych jest sporo bibliotek Arduino i szkiców. Linki do niektórych z nich można znaleźć na liście zamieszczonej na końcu artykułu. Jednak wiele z nich okazało się nieco trudnymi do zastosowania.
Znalazłem jednak kilka bardzo pomocnych informacji na blogu Roba (pod adresem https://blog.robberg.net/mq-135-arduino/). Następnie natknąłem się na podstawowy szkic, który nie wykorzystuje żadnych bibliotek, a jedynie pokazuje aktualne napięcie analogowe dostarczane na pin A0 modułu (dostępny na stronie https://arduinolearning.com/amp/code).
Nieznacznie dostosowałem ten szkic, a jego listing wraz z niektórymi przykładowymi danymi wyjściowymi z uruchomionego szkicu został pokazany poniżej. Kiedy strumień wydychanego powietrza kierowałem na MQ-135, powodowało to wzrost odczytu napięcia z wartości poniżej 700 do około 728, a następnie ponowny spadek.
Jak widać, nie ma tu próby konwersji odczytów napięcia A0 na równoważne stężenie gazu – do tego potrzebny byłby jeden z bardziej wyszukanych szkiców opartych na przeznaczonych dla nich bibliotekach.