mq-3

Arduino ile Alkol Testi Yapma (Alkol Metre)

Arduino ile akıllı ev projesini gerçekleştirdiğim zamanlarda , internet üzerinden yanlışlıkla alkol sensörü de almışım. MQ-3 alkol sensörü . Bu sensörün kullanımı diğer gaz sensörlerinden farklı değil. Hemen konuya dönüyorum .

 

MQ-3 alkol tesini nasıl kullanabilirim diye düşünürken aklıma iki şekilde geldi

1. 10 tane LED koyayım alkol derecesine göre LED ler yansın

2.  Bir 16×2 lik LCD koyayım orada alkol seviyesini göstersin (gösterirkende bunu grafik şeklinde yapsın.

Tabiki yapılacak proje size kalmış ama burada yapmak istediğimiz projemiz , LCD ekranında yüzdelik dilimi göstermesi bunu da yaparken lcd bar grafik olarak gösterttirmemiz.

Unutulmaması gereken mesele kullanacağımız tüm MQ serisi gaz sensörlerinin bağlantıları aynıdır.

Sensor-Alcohol-MQ-3

Yaptığımız bu küçük devremizle gaz değerini arduinomuza aktarabiliriz. Bu şekilde okunacak değerimiz 0-1023 değeri arasındadır.

MQ3-Sensor

MQ-3 sensörünü kapalı bir kutunun içine koymanız ve oraya üflemeniz sonucu daha net olarak gösterecektir. Örnek bir resime bakabilirsiniz.

gassensorornek

Gas sensörünü kullandık diyelim şimdi en zor kısma geldik LCD yi arduinomuza bağlamaya bunu websitemizde bulabilirsiniz.

Programımız şu şekilde olacaktır. MQ-3 sensörü A0 a bağlanmıştır.


#include <LiquidCrystal.h>

#define lenght 16.0

double percent=100.0;
unsigned char b;
unsigned int peace;


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte p1[8] = {
0x10,
0x10,
0x10,
0x10,
0x10,
0x10,
0x10,
0x10};

byte p2[8] = {
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18};

byte p3[8] = {
0x1C,
0x1C,
0x1C,
0x1C,
0x1C,
0x1C,
0x1C,
0x1C};

byte p4[8] = {
0x1E,
0x1E,
0x1E,
0x1E,
0x1E,
0x1E,
0x1E,
0x1E};

byte p5[8] = {
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F};

void setup() {

delay(100);
lcd.createChar(0, p1);
lcd.createChar(1, p2);
lcd.createChar(2, p3);
lcd.createChar(3, p4);
lcd.createChar(4, p5);

lcd.begin(16, 2);

}

void loop()
{

lcd.setCursor(0, 0);


unsigned int value = analogRead(0);

percent = value/1024.0*100.0;

lcd.print(value);

lcd.print(" - ");

lcd.print(percent);
lcd.print(" % ");

lcd.setCursor(0,1);

double a=lenght/100*percent;


if (a>=1) {

for (int i=1;i<a;i++) {

lcd.write(4);

b=i;
}

a=a-b;

}

peace=a*5;


switch (peace) {

case 0:

break;

case 1:
lcd.write(0);

break;

case 2:
lcd.write(1);
break;

case 3:
lcd.write(2);
break;

case 4:
lcd.write(3);
break;

}

for (int i =0;i<(lenght-b);i++) {

lcd.print(" ");
}

}

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.