Arduino ile göstergeli Gaz dedektörü uygulaması
Malzemeler
- Sıcak Silikon
- Metal cetvel
- Çizim araçları
- Arduino Nano
- Usb kablosu
- USB fiş
- Gaz sensörü
- 7 Segment Display
Sensör Bağlantısı
Sensörün 6 bacağı vardır.
- 3 tane +5v bağlantısı
- 2 tane GND (toprak) bağlantısı (Bir tanesine 10k direnç bağlı)
- Analog çıkış bağlantısı Arduino A0 pinine

LED Segment Bağlantısı
Kullanacağınız displaye göre bağlantıda farklılıklar olabilir.
Kod:
int sensorValue;
int num;
void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);//Display için çıkış uçları wiki.keyestudio
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
}
void loop()
{
sensorValue = analogRead(0); // sensör değeri okunuyor
if (sensorValue < 400) // sensör değeri 400 den az ise taramaya devam et
{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(3, LOW);
digitalWrite(8, HIGH);
delay(500);
digitalWrite(8, LOW);
digitalWrite(6, HIGH);
delay(500);
digitalWrite(6, LOW);
digitalWrite(3, HIGH);
delay(500);
}
else
{
if (sensorValue >= 900) // Sensör değerine göre display e yazdır
{num = 9;}
else if (sensorValue >= 800)
{num = 8;}
else if (sensorValue >= 700)
{num = 7;}
else if (sensorValue >= 600)
{num = 6;}
else if (sensorValue >= 500)
{num = 5;}
else if (sensorValue >= 400)
{num = 4;}
}
if (sensorValue > 700) // Çok fazla gaz algılanırsa, led ekrandaki nokta yanıp söner
{
digitalWrite(5, HIGH);
delay(100);
digitalWrite(5, LOW);
delay(100);
}
switch (num)
{
case 9:
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
break;
case 8:
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
break;
case 7:
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
break;
case 6:
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
break;
case 5:
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
break;
case 4:
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
break;
}
}