[PROJEKT] Czujnik jakości powietrza – Air quality sensor v1.3 oraz KAmduino UNO
Teraz należy przerobić program tak, aby w przypadku wykrycia dużego stężenia niebezpiecznego gazu w powietrzu świeciła czerwona dioda LED. Zmodyfikowany program został umieszczony poniżej (pliki projektowe znajdują się również w sekcji do pobrania na koniec artykułu).
/*
* AirQuality Demo V1.0.
* connect to A0 to start testing. it will needs about 20s to start
* By: http://www.seeedstudio.com
*
* Modyfikacje: Patryk Mądry
* Mikrokontroler 2017 r.
*/
#include"AirQuality.h"
#include"Arduino.h"
AirQuality airqualitysensor;
int current_quality =-1;
void setup()
{
Serial.begin(9600);
airqualitysensor.init(14);
pinMode(2, OUTPUT); // Dioda
}
void loop()
{
current_quality=airqualitysensor.slope();
if (current_quality >= 0)// if a valid data returned.
{
if (current_quality==0)
{
Serial.println("High pollution! Force signal active");
digitalWrite(2, HIGH); // Ustawienie pinu 2 na stan wysoki - zaświecenie diody LED
}
else if (current_quality==1)
{
Serial.println("High pollution!");
digitalWrite(2, HIGH); // Ustawienie pinu 2 na stan wysoki - zaświecenie diody LED
}
else if (current_quality==2)
{
Serial.println("Low pollution!");
digitalWrite(2, LOW); // Ustawienie pinu 2 na stan niski - zgaszenie diody LED
}
else if (current_quality ==3)
{
Serial.println("Fresh air");
digitalWrite(2, LOW); // Ustawienie pinu 2 na stan niski - zgaszenie diody LED
}
}
}
ISR(TIMER1_OVF_vect)
{
if(airqualitysensor.counter==61)//set 2 seconds as a detected duty
{
airqualitysensor.last_vol=airqualitysensor.first_vol;
airqualitysensor.first_vol=analogRead(A0);
airqualitysensor.counter=0;
airqualitysensor.timer_index=1;
PORTB=PORTB^0x20;
}
else
{
airqualitysensor.counter++;
}
}
W pętli głównej programu do zmiennej current_quality jest przypisywana wartość od 0 do 3, gdzie wartość równa 0 lub 1 informują o dużej ilości cząsteczek w powietrzu, wartość 2 o niskiej ilości cząsteczek gazu w powietrzu, a 3 bardzo małej ilości lub ich braku). Następnie sprawdzana jest wartość tej zmiennej i wyświetlona wartość z czujnika oraz komunikat o ilości cząsteczek w wokół czujnika.
void loop()
{
current_quality=airqualitysensor.slope();
if (current_quality >= 0)// if a valid data returned.
{
if (current_quality==0)
{
Serial.println("High pollution! Force signal active");
digitalWrite(2, HIGH); // Ustawienie pinu 2 na stan wysoki - zaświecenie diody LED
}
else if (current_quality==1)
{
Serial.println("High pollution!");
digitalWrite(2, HIGH); // Ustawienie pinu 2 na stan wysoki - zaświecenie diody LED
}
Gdy zmienna current_quality jest równa 0 lub 1, stężenie gazu w powietrzu jest wysokie i musi zapalić się dioda ostrzegające przed tym zjawiskiem. Aby program funkcjonował w ten sposób należy dodać kod, który spowoduje zaświecenie naszej czerwonej diody LED w warunku dla wartości 0 i 1. Kod do realizacji tego zadania wygląda następująco:
digitalWrite(2, HIGH); // Ustawienie pinu 2 na stan wysoki - zaświecenie diody LED
Gdy czujnik wykrył niewielkie stężenie cząsteczek lub nie wykrył ich wcale, zmienna current_quality przyjmuje wartości 2 lub 3. Wtedy dioda LED musi być zgaszona. Należy więc dodać linijkę kodu, która spowoduje ustawienie stanu niskiego na pinie 2 w warunku dla wartości 2 oraz 3:
digitalWrite(2, LOW); // Ustawienie pinu 2 na stan niski - zgaszenie diody LED
Diodę można zastąpić np. buzzerem, który będzie informować o wysokim stężeniu niebezpiecznego gazu w postaci dźwiękowej.
Działanie programu zostało zaprezentowane na poniższym wideo:

Fotowoltaika perowskitowa: od wydajności laboratoryjnej do masowej komercjalizacji
Czy kamery termowizyjne pokazują nam całą prawdę?
Generowanie ujemnego napięcia odniesienia – eksperymenty z zestawem ADALM2000 

![https://www.youtube.com/watch?v=XkeyLmtLfxo O konkursie organizowanym przez firmę TRUMPF Huettinger i polskie uczelnie techniczne opowiada Alicja Peresada i prof. Jacek Rąbkowski oraz kilkoro nagrodzonych dyplomantów: mgr inż. Jakub Dobosz, inż. Maja Zielińska, dr inż. Jakub Kołodziej, dr inż Weronika Hryniewska-Guzik i dr inż. Grzegorz Bartyzel. Zapraszamy do obejrzenia filmu! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/07/TRUMPF-czolowka.png)

![https://www.youtube.com/watch?v=gHcP8AajoN4 Szymon Robak oprowadza po katowickim Laboratorium Badań Kompatybilności Elektromagnetycznej w Sieć Badawcza Łukasiewicz - Instytucie Sztucznej Inteligencji i Cyberbezpieczeństwa. Zapraszamy na film! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/06/Szymon-Robak-tytulowe.png)

