Arduino ile göstergeli Gaz dedektörü uygulaması Gas dedection application with arduino

Arduino devreleri ve uygulamaları

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;
              }

  }

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir