Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

25 Nisan 2021 Pazar

MQ2-Gaz / Duman Sensörü Nasıl Çalışır? & Arduino

 MQ-2 Gaz / Duman Sensörü Nasıl Çalışır? ve Arduino

MQ2 Gaz Sensör Modülü ile bir sonraki Arduino projenize gazlar için bir burun verin. Bu, havadaki LPG , Duman , Alkol , Propan , Hidrojen , Metan ve Karbon Monoksitkonsantrasyonlarını algılamak için uygun sağlam bir Gaz sensörüdür İç mekan hava kalitesi izleme sistemi oluşturmayı planlıyorsanız; nefes kontrol cihazı veya erken yangın algılama sistemi olan MQ2 Gaz Sensörü Modülü mükemmel bir seçimdir.

MQ2 Gaz Sensörü nedir?

MQ2, MQ sensör serisinde yaygın olarak kullanılan gaz sensörlerinden biridir. Algılama, Gaz malzeme ile temas ettiğinde algılama malzemesinin direncinin değişmesine dayandığından Chemiresistors olarak da bilinen Metal Oksit Yarı İletken (MOS) tipi bir Gaz Sensörüdür . Basit bir voltaj bölücü ağ kullanılarak, gaz konsantrasyonları tespit edilebilir.

MQ2 Gaz Sensörü

MQ2 Gaz sensörü 5V DC ile çalışır ve yaklaşık 800mW çeker. Bu tespit için LPG , duman , Alkol , Propan , Hidrojen , metan ve karbon monoksit 200 ila 10000 bir yerde konsantrasyonları.

İşte tam teknik özellikler:

Çalışma gerilimi5V
Yük direnci20 KΩ
Isıtıcı direnci33Ω ±% 5
Isıtma tüketimi<800 mw
Algılama Direnci10 KΩ - 60 KΩ
Konsantrasyon Kapsamı200 - 10000 ppm
Ön ısıtma süresi24 saatten fazla

1 ppm neye eşittir?

Karbondioksit, oksijen veya metan gibi gazları ölçerken, konsantrasyon terimi havadaki hacme göre gaz miktarını tanımlamak için kullanılır. En yaygın 2 ölçü birimi milyonda parça ve yüzde konsantrasyondur.

Milyonda parça (kısaltılmış ppm), bir gazın diğerine oranıdır. Örneğin, 1.000 ppm CO, bir milyon gaz molekülünü sayabilirseniz, bunların 1.000'inin karbon monoksitten ve 999.000 molekülün diğer bazı gazların olacağı anlamına gelir.


MQ2 Gaz Sensörünün iç yapısı                                                                                                        Sensör aslında patlama önleyici ağ adı verilen iki kat ince paslanmaz çelik ağ ile çevrelenmiştir.Yanıcı gazları algıladığımız için sensör içerisindeki ısıtıcı elemanın patlamaya neden olmamasını sağlar.
MQ2 Gaz Sensörü Parçaları Donanıma Genel Bakış

Ayrıca sensör için koruma sağlar ve asılı parçacıkları filtreler, böylece yalnızca gazlı elemanlar bölmenin içinden geçebilir. Ağ, bakır kaplı bir sıkıştırma halkası ile vücudun geri kalanına bağlanır.

İç Gaz Sensörü Algılama Elemanlı İç Yapısı ve Bağlantı Ayakları

Dış ağ çıkarıldığında sensör bu şekilde görünür. Yıldız şeklindeki yapı, algılama elemanı ve Bakalit tabanın ötesine uzanan altı bağlantı ayağı tarafından oluşturulur. Altıdan iki uç ( H ), algılama elemanının ısıtılmasından sorumludur ve iyi bilinen iletken alaşım olan Nikel-Krom bobin yoluyla bağlanır .

Çıkış sinyallerinden sorumlu kalan dört kablo ( A ve B ) Platin Teller kullanılarak bağlanır Bu teller, algılama elemanının gövdesine bağlanır ve algılama elemanından geçen akımdaki küçük değişiklikleri iletir.

Algılama Elemanı - Kalay Dioksit Kaplamalı Alüminyum Oksit Seramik

Boru şeklindeki algılama elemanı, Alüminyum Oksit (AL 2 O 3 ) bazlı seramikten yapılmıştır ve bir Kalay Dioksit (SnO 2 ) kaplamasına sahiptir Kalay Dioksit, yanıcı gazlara duyarlı olan en önemli malzemedir. Bununla birlikte, seramik substrat sadece ısıtma verimliliğini arttırır ve sensör alanının sürekli olarak bir çalışma sıcaklığına ısıtılmasını sağlar.

MQ2 Gaz Sensörü İç Yapısı Algılama Elemanı

Böylece Nikel-Krom bobin ve Alüminyum Oksit esaslı seramik bir Isıtma Sistemi oluşturur ; Platin teller ve Kalay Dioksit kaplaması ise bir Algılama Sistemi oluşturur .

Bir gaz sensörü nasıl çalışır?

Kalay dioksit (yarı iletken partiküller) yüksek sıcaklıkta havada ısıtıldığında, yüzeyde oksijen adsorbe edilir. Temiz havada, kalay dioksit içindeki donör elektronlar, algılama malzemesinin yüzeyinde emilen oksijene doğru çekilir. Bu, elektrik akımı akışını engeller.

İndirgeyici gazların varlığında, adsorbe edilmiş oksijenin yüzey yoğunluğu, indirgeyici gazlarla reaksiyona girdikçe azalır. Elektronlar daha sonra kalay dioksite salınır ve akımın sensörden serbestçe akmasına izin verir.

MQ2 Gaz Sensörü Çalışıyor

Donanıma Genel Bakış - MQ2 Gaz Sensörü Modülü

MQ2 Gaz Sensörü devre tahtası ile uyumlu olmadığından, bu kullanışlı küçük koparma kartını öneriyoruz. Kullanımı çok kolaydır ve iki farklı çıktıyla birlikte gelir. Yalnızca yanıcı gazların varlığına dair ikili bir gösterge sağlamakla kalmaz, aynı zamanda havadaki konsantrasyonlarının analog bir temsilini de sağlar.

MQ2 Gaz Sensörü Modülü

Sensör tarafından sağlanan analog çıkış voltajı, duman / gaz konsantrasyonuyla orantılı olarak değişir. Gaz konsantrasyonu ne kadar büyükse, çıkış voltajı o kadar yüksek olur; daha az gaz konsantrasyonu düşük çıkış voltajına neden olur. Aşağıdaki animasyon, gaz konsantrasyonu ile çıkış voltajı arasındaki ilişkiyi göstermektedir.

MQ2 Gaz Sensörü Modülü Çıkışı

MQ2 Gaz sensöründen gelen analog sinyal, elbette sinyali sayısallaştırmak için LM393 Yüksek Hassasiyetli Karşılaştırıcıya (modülün altında lehimlenmiştir) beslenir. Karşılaştırıcı ile birlikte, sensörün hassasiyetini ayarlamak için çevirebileceğiniz küçük bir potansiyometre vardır. Sensörün algıladığı gaz konsantrasyonunu ayarlamak için kullanabilirsiniz.

Sensör birden fazla gaza duyarlıdır - ancak hangisi olduğunu söyleyemez! Bu normal; çoğu gaz sensörü böyledir. Bu nedenle, hangisinin değiştiğini tespit etmek değil, bilinen bir gaz yoğunluğundaki değişiklikleri ölçmek en iyisidir.

MQ2 Gaz Sensörü Modülünü Kalibre Edin

Gaz sensörünü kalibre etmek için, gaz sensörünü algılamak istediğiniz dumana / gaza yakın tutabilir ve modül üzerindeki Kırmızı LED yanmaya başlayana kadar potansiyometreyi çevirmeye devam edebilirsiniz. Hassasiyeti artırmak için vidayı saat yönünde veya azaltmak için saat yönünün tersine çevirin.

MQ2 Gaz Sensörü Modülü Hassasiyet Ayarı Potansiyometresi

Modül üzerindeki karşılaştırıcı, analog pinin ( A0 ) potansiyometre tarafından belirlenen eşik değerine ulaşıp ulaşmadığını sürekli olarak kontrol eder Eşiği geçtiğinde dijital pin ( D0 ) HIGH olacak ve sinyal LED'i yanacaktır. Bu kurulum, belirli bir eşiğe ulaşıldığında bir eylemi tetiklemeniz gerektiğinde çok kullanışlıdır. Örneğin, duman bir eşiği geçtiğinde, bir röleyi açıp kapatabilir ya da robotunuza hava üflemesi / su serpmesi talimatını verebilirsiniz. Anladın!

MQ2 Gaz Sensörü Modülü Pin Çıkışı

Şimdi pinout'a bir göz atalım.

MQ2 Gaz Sensörü Modülü Pin Çıkışı

VCCmodül için güç sağlar. Arduino'nuzdan 5V çıkışa bağlayabilirsiniz.

GND Ground Pin'dir ve Arduino'daki GND pinine bağlanması gerekir.

D0 yanıcı gazların varlığının dijital bir temsilini sağlar.

A0 duman / gaz konsantrasyonuyla orantılı olarak analog çıkış voltajı sağlar.

Kablolama - MQ2 Gaz Sensörü Modülünü Arduino UNO'ya Bağlama

Artık MQ2 Gaz sensörünün nasıl çalıştığını tam olarak anladığımıza göre, onu Arduino'muza bağlamaya başlayabiliriz!

MQ2 Gaz sensörü modülünü Arduino ya bağlamak oldukça kolaydır. Sensörü devre tahtanıza yerleştirerek başlayın. VCC pinini Arduino'daki 5V pinine bağlayın ve GND pinini Arduino'daki Ground pinine bağlayın.

Modül üzerindeki D0 çıkış pinini Arduino'daki Dijital pin # 8'e ve modül üzerindeki A0 çıkış pinini Arduino'daki Analog pin # 0'a bağlayın.

İşiniz bittiğinde, aşağıda gösterilen resme benzer bir şeye sahip olmalısınız.

MQ2 Gaz Sensörü ile Arduino Kablolama Fritzing Bağlantıları
Arduino UNO ile Kablolama MQ2 Gaz Sensörü Modülü
Artık gaz sensörümüzü bağladığımıza göre, bir kod yazma ve test etme zamanı.                                                                      

Arduino Kodu

Kod çok basittir ve temelde A0 pinindeki analog voltajı okumaya devam eder. Ayrıca duman algılandığında seri monitörde bir mesaj yazdırır. Ayrıntılı incelemeye başlamadan önce taslağı deneyin.

#define MQ2pin (0)

float sensorValue;  //variable to store sensor value

void setup()
{
  Serial.begin(9600); // sets the serial port to 9600
  Serial.println("Gas sensor warming up!");
  delay(20000); // allow the MQ-6 to warm up
}

void loop()
{
  sensorValue = analogRead(MQ2pin); // read analog input pin 0
  
  Serial.print("Sensor Value: ");
  Serial.print(sensorValue);
  
  if(sensorValue > 300)
  {
    Serial.print(" | Smoke detected!");
  }
  
  Serial.println("");
  delay(2000); // wait 2s for next reading
}

Seri monitördeki çıktı şöyle görünür:

MQ2 Gaz Sensör Modülü Seri pencerede Arduino Sketch Çıkışı
Kod Açıklaması:

Çizim, MQ2 gaz sensörünün analog pininin bağlı olduğu Arduino pinini tanımlayarak başlar. Sensör değerini saklamak için sensorValue adlı bir değişken de tanımlanmıştır.

#define MQ2pin (0)
float sensorValue;  //variable to store sensor value

Kurulum işlevinde: PC ile seri iletişimi başlatırız ve sensörün ısınması için 20 saniye bekleriz.

Serial.begin(9600); // sets the serial port to 9600
Serial.println("Gas sensor warming up!");
delay(20000); // allow the MQ-6 to warm up

Döngü işlevi: sensör değeri analogRead () işlevi tarafından okunur ve seri monitörde görüntülenir.

sensorValue = analogRead(MQ2pin); // read analog input pin 0  
Serial.print("Sensor Value: ");
Serial.print(sensorValue);

Gaz konsantrasyonu yeterince yüksek olduğunda, sensör genellikle 300'den büyük bir değer çıkarır. Bu değeri if ifadesini kullanarak izleyebiliriz Ve sensör değeri 300'ü aştığında, 'Duman Algılandı!' Mesajını göstereceğiz. İleti.


if(sensorValue > 300) { Serial.print(" | Smoke detected!"); }


ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.



24 Nisan 2021 Cumartesi

Arduino'da Analog Okuma

 Arduino'da Analog Okuma

Arduino Analog pimleri

Bu eğitimde, size AnalogRead işlevini kullanmayı öğreneceksiniz Arduino . Analog voltajı veya analog sensör değerini ölçmeniz gereken ve size voltaj şeklinde çıktı veren bir proje üzerinde çalışıyorsanız, o zaman Arduino'nun analogdan dijitale dönüştürücüsünü kullanmanız gerekir AnalogRead ve AnalogWrite , sensör değerleri ile aynı voltajlar gibi değişken değerlerle başa çıkmak için kullanılan iki işlevdir. Bir Arduino, analog etki alanındaki parametreleri ölçmemizi sağlayan bir dizi analog girişe sahiptir. Bu olabilir voltaj , akım , dirençısı , ışık  ve böyle devam eder.

Arduino Analog Okuma Pimleri

Arduino kartındaki analog pinler 'A' harfiyle işaretlenmiştir, örneğin a0, A1, A2, A3, A4. Bu, dijital dönüştürücü kanallarına 5 yerleşik analogu olduğu anlamına gelir.

Analog sinyalleri ölçmek için yalnızca Arduino'nun bu analog pinleri kullanılabilir. Ancak daha fazla kanal kullanmak istiyorsanız, Arduino ile harici ADC arabirimi oluşturabilirsiniz. Şu kılavuzları kontrol edin:Arduino Analog pimleri

Her analog kanal 10 bitlik bir ADC'dir. Bu nedenle, her ADC 1024 (2 ^ 10) voltaj seviyesini ölçebilir ve her voltaj seviyesinin veya adımının büyüklüğü bu formülle belirlenebilir:

Ayrık Adım = Vref / toplam adımlar = 5/1023 = 0.0048874 = 4.88mv
Kısaca Arduino analog pinindeki her 4.88 milivolt gerilim değeri için dijital değer bir artırılacak ve bu şekilde her 4.88mV çoklu gerilim için ilgili dijital değer üretilecektir.AnalogRead Arduino

Arduino ADC Çözünürlüğü

Anlamak için, ADC çözünürlüğü 2 bit çözünürlük ve 4 volt referans voltajı olan bir ADC örneği alalım, voltajı yalnızca 2 ^ 2 olan dört olası sonuç değeri ile temsil edebilir. Giriş voltajı ve dijital çıkış bu tabloya göre olacaktır:

Analog GerilimDijital Çıkış
0 ile 0,99 volt0
1 ila 1,99 volt1
2 - 2,99 volt2
3 - 3,99 volt3
4 volt4

Yukarıdaki tablodan da görebileceğiniz gibi, 2-bit ADC için, bir ayrık adım bir volt analog girişe eşittir ve bu böyle devam eder. Yukarıdaki tablodan küçük bitlerin ADC'nin çok fazla hataya neden olduğunu da gösterebilirsiniz. Bu 2 bitlik ADC, 0-1, 1-2, 2-3 ve 3-4 arasındaki voltaj seviyesini ölçemez. Bu sayılar arasındaki herhangi bir voltaj değeri hata olarak kabul edilecektir. Bu hata, daha yüksek bit ADC kullanılarak en aza indirilebilir.

Daha önce de bahsettiğimiz gibi, Arduino'nun her analog kanalı 10 bit uzunluğundadır. Bu, Arduino ADC aralığının 0 ila 1023 arasında olduğu anlamına gelir, dolayısıyla 1024 olası değer veya 10'un gücünde 2'ye sahiptir. Yani Arduino'nun 10 bit çözünürlüğe sahip bir ADC'si vardır.

Normal analogRead kullanımında referans voltajı, kartın çalışma voltajıdır. Uno, Mega panolar, 5V çalışma gerilimi gibi daha popüler Arduino kartları için. Dolayısıyla, 5V'luk bir referans voltajınız varsa, analogRead () tarafından döndürülen her birim   0,00488 V değerindedir. (Bu, 1024'ü 5V'a bölerek hesaplanır).

AnalogRead () Fonksiyonu Arduino

Arduino AnalogRead fonksiyonu 0 ile 5 volt arasındaki voltajı ölçmek için kullanılır ve 0 ile 1023 arasında dijital bir değere dönüştürür. 1023 değerinin nedeni analogdan dijitale dönüştürücülerin 10 bit uzunluğunda olmasıdır.

Örneğin ADC pinine 0 volt uygularsak bir analogRead () çıkışı sıfır dijital değer sağlayacaktır. Benzer şekilde ADC pinine 5 volt uygularsak bir analogRead () çıkışı 1023 dijital değer sağlayacaktır. (0-5) volt arasındaki voltaj bu değerler arasında sayılar verecektir.

Analog girişi almak için Arduino, kartların çoğunda 0 ila 5 analog pinleri kullanır. Bu pinler, analog bilgi çıkışı sağlayan bileşenlerle kullanılmak üzere tasarlanmıştır ve analog giriş için kullanılabilir. Okumak için kullanılan komut

  • "AnalogRead (pinNumber);" pinNumber, analog bileşenlerin Arduino'da bağlı olduğu pinleri temsil eder.
  • Örneğin: int sensorvalue = analogRead (A2) ;. İşlev, Arduino kartındaki analog pinleri programlamak ve adreslemek için kullanılır ve ayrıca 0 ila 1023 arasındaki analog giriş okumasını döndürecektir.

Meausre Analog Signal nasıl kullanılır?

Arduino kartındaki analog pin A0'a bir potansiyometre veya değişken direnç bağlayalım ve Arduino Board'a güç sağlamak için besleme sağlayalım.

En başta, pimi bir giriş olarak tanımlamanız gerekir:

pinMode(A0, INPUT) ;

Ve sonra analog gerilimleri analog pin A0 üzerinden x'e okumak:

int x = analogRead(A0) ;

X'te depolanan bu değer, 0 ila 1023 arasındaki değerdir, çünkü Arduino 10-bit ADC'ye (2 * 10 = 1023) sahiptir ve int x boyutu 10 bitten büyük olduğu için bu değeri int'e depolamaktan daha iyidir.

Sonunda, Seri.print () gibi seri iletişim kütüphanesi işlevlerini kullanarak analog değeri Arduino seri monitöründe yazdırın.

Serial.print ( “Analog value :);
Serial.println (x);

Analog değer değiştiğinde, x de değişmelidir. Pim başka bir dijital pime bağlanırsa analog voltaj asla okunamaz. Analog voltajlar sadece karttaki analog pinlerde okunabilir. 0 numaralı pime uygulanan 2,5 V'luk bir voltaj varsa, analogRead (0) 512 değerini döndürür, bu, analog voltajın herhangi bir dijital pinde okunamayacağı anlamına gelir.

Şematik diyagram

Bu bağlantılara göre şematik diyagramı yapın.

Arduino'nun analog okuma fonksiyonu ile analog sinyali ölçün

Arduino AnalogRead Örnek Kodu

Bu kodu Arduino'ya yükleyin. Bu kod, saniyede bir Arduino'nun A0 pininden gelen analog sinyali ölçer ve değeri seri monitöre yazdırır.

//let potentiometer is connected at analog pin 4:
int analogPin = A0;
int val = 0;
//variable to store the value read
void setup () 
{
 Serial.begin (9600);
//Setup serial
}

Void loop () 
{
     Val = analogRead (analogPin);
    //Used to read the input pin
     Serial . Println (val);
     delay(1000);
}

Kod Nasıl Çalışır?

AnalogRead () işlevi, bu için ADC'nin çözünürlük olup, 0 to1023 değeri. Çözünürlük, bir şeyin sayısal olarak temsil edilme derecesidir. Çözünürlük ne kadar  yüksek olursa  , bir şeyin temsil edilebileceği daha yüksek doğruluk. Çözünürlüğü çözünürlük bit  sayısı cinsinden ölçün  .

Örneğin, 1 bitlik bir çözünürlük yalnızca iki (birin kuvvetine iki) sıfır ve bir değerine izin verir. 2 bitlik bir çözünürlük, dört (ikinin üssü ikiye kadar) sıfır, bir, iki ve üç değerine izin verir. İki bit çözünürlükle beş voltluk bir aralığı ölçmeye çalışsaydık ve ölçülen voltaj dört volt olsaydı, ADC'miz, dört volt 3.75 i le 5V arasında düştüğü için 3 sayısal bir değer döndürecekti.


ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.