Lekcja 12: Czujesz to? - czujnik dymu i gazów.
W tej lekcji zajmiemy się czujnikiem MQ-2, którym można dokonać detekcji różnorakich gazów łatwopalnych i dymu.
Czujnik sprzedawany jest również z podstawką montażową co ułatwia jego podłączenie. Oczywiście można również zakupić wersję bez
podstawki ale wtedy musimy sami zadbać o właściwe lutowanie końcówek do płytki.
Specyfikacja czujnika poniżej:
|
Czujnik wykrywa stężenie palnych gazów w powietrzu lub dym a wynik można uzyskać z pomiaru
napięcia na wyjściu analogowym, które podłączamy bezpośrednio do Arduino.
Czujnik MQ-2 wykrywa m.in. stężenia metanu CH4, propanu C3H8,
LPG (mieszanina propanu C3H8 i butanu C4H10),
wodoru H2, tlenku węgla CO i alkoholu C2H5OH oraz CH3OH. Charakterystyka czułości dla poszczególnych gazów poniżej.
Zasada działania czujnika
opiera się na zmianie jego przewodności w zależności od liczby cząstek w powietrzu. Budowa opiera sie na detekcji za pomocą dwutlenku cyny SnO2,
który ma najmniejszą przewodność w czystym powietrzu.
Łączymy układ wg schematu:
Kod:
int wartoscAnalog = 0; byte wartoscZmapowana = 0; char info[96]; void setup() { Serial.begin(9600); } void loop() { wartoscAnalog = analogRead(A0); wartoscZmapowana = map(wartoscAnalog, 0, 1023, 0, 100); sprintf(info, "MQ-2: %d (%d)", wartoscAnalog, wartoscZmapowana); if (wartoscZmapowana > 20) { Serial.print(info); Serial.println(F(" UWAGA! WYKRYTO GAZ LUB DYM ")); } else { Serial.println(info); } delay(1000); }
W linii 1 deklarujemy wartoscAnalog, która będzie przechowywać
wartość napięcia z wyjścia analogowego (zakres 0 - 1023).
W linii 2 deklarujemy wartoscZmapowana, która będzie przeliczoną wartością
zmiennej wartoscAnalog w zakresie od 0 do 100 (można użyć później jako
procenty). Metodę mapowania opisaliśmy w poprzedniej lekcji.
W linii 3 deklarujemy zmienną typu char przechowującą tekst o długości 96 znaków.
W linii 5 ustalamy prędkość przesyłania informacji portem szeregowym na 9600 bitów na sekundę.
W linii 8 zczytujemy z analogowego pinu A0 wartość do zmiennej wartoscAnalog.
W linii 9 mapujemy wartoscAnalog na wartoscZmapowana do zakresu od 0 do 100.
W linii 10 tworzony jest kompunikat przechowywany w zmiennej info a zawierający
tekst MQ-2: z dopisanymi wartościami wartoscAnalog oraz wartoscZmapowana.
W linii 11 mamy funkcję if, która sprawdza czy wartość zmiennej wartoscZmapowana
przekroczyła dopuszczalny poziom (tutaj 20) i jeśli to prawda, to zostają wyświetlone komunikaty
wygenerowane w linii 10 oraz dodatkowo komunikat z linii 13 ostrzegający o zagrożeniu. Jeśli zaś wartoscZampowana
nie przekroczy dopuszczalnego poziomu, zostanie wypisany tylko komunikat z linii 10.
W linii 18 przerywamy pomiary na 1 sekundę.
Teraz możemy sprawdzić nasz program. Hym, poprośmy dorosłego o zapalenie papierosa i dmuchnięcie
w stronę czujnika...
Powrót do spisu materiałów