yagmur algilayici sensor

Arduino ile yağmur algılayıcı nasıl yapılır

Arkadaşlar Türkiyede ne zaman yağmur yağacağını bazı bölgelerde kestirmek zor . Evet haliyle annelerimiz yada eşimiz çamaşırları kurutmak için balkona astığında, pencere açık bir şekilde dışarı çıktığınızda  yada uyuduğunuzda yağmur yağmaya başladığında önleminizi almadıysanız.  veya alamadıysanız artık çamaşırların haini düşünemiyorum.

 

yagmur sensoruProjemizin asıl amacı yağmur yağmaya başladığında hemen otomatik bir şekilde önlem almasını sağlamak ve bizi uyarmasını sağlamak Projemizin çalışması şu şekildedir  Öncelikle kendi ellerimizle yaptığımız Yağmur damlası ölçme sensörü analog bir değer ölçer bunu arduino ile ölçerek değeri LCD ye aktarılmasını sağlarız.

Yağmur damlası ölçme sensörümüz aşağıdaki gibi olmalıdır.

Elektronik devredeki Sensor 1 ve iki Signal 1 ve ikiye bağlanmalıdır.

yagmur algilayici devresi

Signal yazan pin arduinonun A4 girişine bağlanmalıdır . Daha sonra Arduino ile  lcd bağlantısı şu şekildedir.

yagmur algilayici1

16x2lcd

Devre oluşturulduktan sonra aşağıdaki gibi olur.

Resimlerin grafiklerine dikkat edin. Yağmurun şiddetine göre yanındaki şekile bakın.

yagmur algilayici3

yagmur algilayici2

Bu resimler ise benim yaptığım yağmur algılama sensörüne ait resimler .

 

Bağlantı uçlarını bağladıktan sonra mükemmel bir projeye ekleyeceğim.

Programımız

// ***********  Yağmur Sensörü  *********************
// www.arduinom.org

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int rainSensor = A4;

const int percent  = 5;
const unsigned rainThreshold  = 700;

unsigned long rainSVal = 0;
int tmp;
unsigned blink = 0;
float Vout;

byte chRain0[8] = {B00000, B10001, B01110, B10001, B01110, B10001, B00000};
byte chRain1[8] = {B11111, B11111, B10010, B01001, B00000, B00000, B00000};
byte chRain2[8] = {B11111, B11111, B10010, B10010, B01001, B01001, B00000};
byte chRain3[8] = {B11111, B11111, B10010, B10010, B10010, B01001, B01001};

void setup (){
  Serial.begin(9600);
  Serial.print("*** Yağmur Sensörü  *** ");
  Serial.print(percent);
  Serial.print("%, Şiddeti : ");
  Serial.println(rainThreshold);
  lcd.begin(16, 2);
  lcd.createChar(2, chRain0);
  lcd.createChar(3, chRain1);
  lcd.createChar(4, chRain2);
  lcd.createChar(5, chRain3);
}

void loop ()
{

//  -------------- Yağmur sensörü kontrol etme --------------
  tmp = analogRead(rainSensor);

  if ( (tmp > ((rainSVal * (percent + 100)) / 100)) || (tmp < ((rainSVal * (100 - percent)) / 100)))
  {
    rainSVal = tmp;
    Vout = rainSVal;
    Vout = Vout * 5 / 1024;
    Serial.print("Yagmur= ");
    Serial.print(rainSVal);
    Serial.print(", Vout = ");
    Serial.println(Vout);
    lcd.setCursor(0, 1);
    lcd.print("Yagmur  :        ");
    lcd.setCursor(8, 1);
    lcd.print(rainSVal); // Burada istediğiniz kadar bu karakterden koyabilirsiniz
    if (rainSVal < rainThreshold) blink = 1;
    else blink = 0;
  }

  if (blink == 0) {
    delay (2000);
    lcd.setCursor(15, 1);
    lcd.write(byte(2));
  }
  else {
    for (int i = 0; i < 8; i++) {
      lcd.setCursor(15, 1);
      lcd.write(byte(2 + blink));
      blink ++;
      if (blink > 3) blink = 1;
      delay (300);
    }
  }
}

Alıntıdır.

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.