Arduino ile Gaz Sensörü ve LCD Ekran Kullanımı
Arduino ile Gaz Sensörü kullanımı, bir çok akıllı ev projesinde kullanabileceğiniz yapması basit ve eğlenceli bir projedir. Bu yazımızda LCD ekran kullanımında kullanacağımız kodu diğer yazılarımızda olduğu gibi hem I2C için hem de I2C olmayan ekranlar için hazırladık. Eğer bu farkı bilmiyorsanız ve LCD ekran kullanacaksanız bu yazımıza göz atmanızı öneriyoruz.
Öncelikle uygun devre şemasını yaptığınızdan emin olun, basit bir şekilde özetlemek gerekirse, eğer LCD Ekranınızın arkasında I2C modülü varsa, en az kablolu şemayı seçmelisiniz, eğer kablo sayısı fazlaysa, I2C modülü olmayan şemayı seçmelisiniz. Ayrıca, LCD ekran olmadan kullanım yapmak isteyenler için, seri ekran üzerinden çalışan program kodunuda paylaşıyoruz.
Ayrıca, gaz sensörü hakkında detaylı bilgi almak ve 7-segment display ile kullanımına bakmak için bu bağlantıya tıklayabilirsiniz.
I2C Devresi Olan LCD Ekran
Öncelikle gerekli olan kütüphaneleri inidirin. Eğer kütüphane kurulumunu bilmiyorsanız, bu yazımıza bakabilirsiniz. Bu kütüphaneleri doğrudan Arduino IDE üzerinden de indirebilirsiniz.
Devre Şeması
Proje Kodu
#include <MQ2.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); //LCD EKRAN BOYUTUNA GORE AYARLAYIN int Analog_Input = A0; int lpg, co, smoke; MQ2 mq2(Analog_Input); void setup() { Serial.begin(9600); lcd.begin(16, 2); lcd.backlight(); mq2.begin(); } void loop() { float* values = mq2.read(true); lpg = mq2.readLPG(); co = mq2.readCO(); smoke = mq2.readSmoke(); lcd.setCursor(0, 0); lcd.print("LPG:"); lcd.print(lpg); lcd.print(" CO:"); lcd.print(co); lcd.setCursor(0, 1); lcd.print("Duman:"); lcd.print(smoke); lcd.print(" PPM"); delay(1000); }
I2C Devresi Olmayan LCD Ekran
Burada ekstra olarak buzzer ve LED kullanıldı, gaz tespiti olduğu zaman buzzerdan’dan ses çıkacak ve LED yanacaktır.
Devre Şeması
Proje Kodu
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); #define buzzerPin 8 #define gasPin A0 void setup() { Serial.begin(9600); lcd.begin(16, 2); pinMode(buzzerPin, OUTPUT); lcd.setCursor(0, 0); lcd.print("Kalibrasyon"); for (int i = 0; i < 10; i++) { if (i == 4) { lcd.setCursor(0, 1); lcd.print("."); } else lcd.print("."); delay(500); } lcd.setCursor(5, 1); lcd.print("tamamlandi"); delay(1000); lcd.clear(); lcd.setCursor(1, 0); lcd.print("SENSOR ACIK"); delay(1500); lcd.clear(); } void loop() { int gasSensor = analogRead(gasPin); if (gasSensor > 350) { digitalWrite(buzzerPin, HIGH); lcd.setCursor(0, 0); lcd.print("Deger : "); lcd.print(gasSensor); Serial.print(gasSensor); Serial.print("\t"); lcd.setCursor(0, 1); Serial.println("Gaz Tespiti"); lcd.print("Gaz Tespiti"); delay(300); lcd.clear(); } else if (gasSensor < 350) { digitalWrite(buzzerPin, LOW); lcd.setCursor(0, 0); lcd.print("Deger : "); lcd.print(gasSensor); Serial.print(gasSensor); Serial.print("\t"); lcd.setCursor(0, 1); Serial.println("Gaz seviyesi dusuk"); lcd.print("Gaz seviyesi dusuk"); delay(300); } }
LCD Ekran Olmadan Kullanım
Devre Şeması
Proje Kodu
int LED = 13; // arduino uno üzerindeki LED int analog_IN = A0; // Sensörün baglanacagi yer void setup() { pinMode(LED, OUTPUT); pinMode(analog_IN, INPUT); Serial.begin(9600); } void loop() { int Value = analogRead(analog_IN); Serial.print("Analog degeri: "); Serial.println(Value); if(Value < 300) { digitalWrite(LED,HIGH); } else { digitalWrite(LED,LOW); } delay(200); }
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.