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

Devre şeması

Şekilde ki devrede ortak anodlu display kullanılmıştır. Ortak katodlu display kullanılması durumunda kod daki if else döngülerinde ki HIGH LOW komutları ters çevrilmelidir.

Kod:

int sensorValue;
int num;

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ı
          pinMode(7, OUTPUT);
          pinMode(8, OUTPUT);
          pinMode(9, OUTPUT);
          Serial.begin(9600);      
       }

      void loop()
      {
        sensorValue = analogRead(A0); // sensör değeri okunuyor

              if (sensorValue <= 100) // sensör değeri 100 den az ise taramaya devam et
              {
              digitalWrite(8, HIGH);
                digitalWrite(7, HIGH);
              digitalWrite(2, LOW);
              digitalWrite(9, HIGH);
                delay(50);
              digitalWrite(2, HIGH);
              digitalWrite(3, LOW);
              delay(50);
              digitalWrite(2, HIGH);
              digitalWrite(3, HIGH);
              digitalWrite(4, LOW);
                delay(50);
              digitalWrite(2, HIGH);
              digitalWrite(3, HIGH);
              digitalWrite(4, HIGH);
                digitalWrite(5, LOW);
                delay(50);
               digitalWrite(2, HIGH);
              digitalWrite(3, HIGH);
              digitalWrite(4, HIGH);
                digitalWrite(5, HIGH);
                digitalWrite(6, LOW);
                delay(50);
              digitalWrite(2, HIGH);
              digitalWrite(3, HIGH);
              digitalWrite(4, HIGH);
                digitalWrite(5, HIGH);
                digitalWrite(6, HIGH);
                digitalWrite(7, LOW);
                delay(50);
              
              }
              
               else
              {
                 if (sensorValue <= 200)  // Sensör değeri 200 'den küçük ise aşağıda ki işlemi yap
                  {
               digitalWrite(2, HIGH);
              digitalWrite(3, LOW);
              digitalWrite(4, LOW);
                digitalWrite(5, HIGH);
                digitalWrite(6, HIGH);
                digitalWrite(7, HIGH);
              digitalWrite(8, HIGH);
              
                  }   
                
                else if (sensorValue <= 300)
                  {
               digitalWrite(2, LOW);
              digitalWrite(3, LOW);
              digitalWrite(4, HIGH);
                digitalWrite(5, LOW);
                digitalWrite(6, LOW);
                digitalWrite(7, HIGH);
              digitalWrite(8, LOW);
              
                  }
                  else if (sensorValue <= 400)
                   {
               digitalWrite(2, LOW);
              digitalWrite(3, LOW);
              digitalWrite(4, LOW);
                digitalWrite(5, LOW);
                digitalWrite(6, HIGH);
                digitalWrite(7, HIGH);
              digitalWrite(8, LOW);
              
                  }
                  else if (sensorValue <= 500)
                   {
               digitalWrite(2, HIGH);
              digitalWrite(3, LOW);
              digitalWrite(4, LOW);
                digitalWrite(5, HIGH);
                digitalWrite(6, HIGH);
                digitalWrite(7, LOW);
              digitalWrite(8, LOW);
              
                  }
                  else if (sensorValue <= 600)
                  {
               digitalWrite(2, LOW);
              digitalWrite(3, HIGH);
              digitalWrite(4, LOW);
                digitalWrite(5, LOW);
                digitalWrite(6, HIGH);
                digitalWrite(7, LOW);
              digitalWrite(8, LOW);
              
                  }
                  else if (sensorValue <= 700)
                  {
               digitalWrite(2, LOW);
              digitalWrite(3, HIGH);
              digitalWrite(4, LOW);
                digitalWrite(5, LOW);
                digitalWrite(6, LOW);
                digitalWrite(7, LOW);
              digitalWrite(8, LOW);
              
                  }
                  else if (sensorValue <= 800)
                  {
                    digitalWrite(2, LOW);
              digitalWrite(3, LOW);
              digitalWrite(4, LOW);
                digitalWrite(5, HIGH);
                digitalWrite(6, HIGH);
                digitalWrite(7, HIGH);
              digitalWrite(8, HIGH);
                  }
                 else if (sensorValue <= 900)
                   {
               digitalWrite(2, LOW);
              digitalWrite(3, LOW);
              digitalWrite(4, LOW);
                digitalWrite(5, LOW);
                digitalWrite(6, LOW);
                digitalWrite(7, LOW);
              digitalWrite(8, LOW);
              
                  }
                  else if (sensorValue <= 1000)
                  {
               digitalWrite(2, LOW);
              digitalWrite(3, LOW);
              digitalWrite(4, LOW);
                digitalWrite(5, LOW);
                digitalWrite(6, HIGH);
                digitalWrite(7, LOW);
              digitalWrite(8, LOW);
              
                  }
              }

             
                  }
                
                  
                  
                  
                  
                  
                  
  
                  

Bir cevap yazın

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