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:

  • Zasilanie: 5 V
  • Pobór prądu: 150 mA
  • Zakres pomiarowy do 10 000 ppm
  • Temperatura pracy: od -20 do 50 °C
  • Wyprowadzenia: złącza goldpin raster 2,54 mm
  • Wymiary: 35 x 22 x 25 mm
  • Posiada otwory montażowe o średnicy: 3,2 mm

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

Nowy zakup

Zakupiliśmy nowy moduł Arduino Leonardo i Yun z obsługą sieci przez Ethernet i WiFi.

Nowe czujniki

Mamy nowe czujniki żyroskopowe. Możemy kontrolować położenie robota.

Zajęcia otwarte

Zapraszamy na zajęcia otwarte uczniów klas SP, które odbywają się w każdy poniedziałek w godz. 15.00-16.00 (Prosimy o kontakt w celu zebrania grupy).