Arduino Devreleri #36 Arduino Su Seviye Kontrol Devresi-Yağmur Alarmı
Merhabalar, bu yazımızda Arduino Su Seviye Kontrol Devresi-Yağmur Alarmı uygulaması hakkında bilgi vereceğim. Su seviye sensörü nedir? Nasıl çalışır? Sıvı seviye sensörü kullanarak nasıl yağmur alarm devresi tasarlayabiliriz? bunlar hakkında bilgilendirme yapacağım.
Arduino programı ayrıntılı kod kısmı, devre bağlantı şeması, devre kurulumu detaylı anlatımı ve devre çalışma videosu şu şekildedir.
SU SEVİYE SENSÖRÜ MODÜLÜ
Su seviye sensörü, birbirine paralel iletken hatların su ile teması sonucu direnç değişimi esasına göre sensör çıkışından analog değer üreten bir devre elemanıdır.
Su seviye sensörü üzerinde +5Volt – GND ve Sinyal çıkış uçları bulunmaktadır. Sinyal çıkışı analog bir değer olduğundan sinyal ucu Arduino üzerinde A0 – A5 pinlerinden birine bağlanmalıdır.
Su seviye sensörünün aldığı değerleri görmek için seri port ekranı ya da LCD ekran kullanılabilir. Seri port ekranından analog sinyal değerlerini okuyarak sensörün su seviyesine göre hangi değerleri aldığını görebiliriz. Sensör sistemde su olmadığında 0 (sıfır) değeri üretmektedir. Su ile temas ettiğinde 400 ile 750 civarında bir değer alınabilmektedir. Sensör suya değdiğinde ilk başta yüksek değer gösterse de aynı su seviyesinde yaklaşık 1 dk içerisinde gösterdiği değer sabitlenmektedir. Kod bölümünde belirtilecek seviye değerlerini buna göre ayarlamakta fayda olacaktır.
NOT: Kod bölümü içerisinde yer alan ve // işareti ile başlayan satırlar açıklama satırlarıdır. O satırdaki kod bloğunun ne anlama geldiği ve nasıl çalıştığı ile ilgili bilgi verir. Arduino // işaretli alanı çalıştırmaz. Kod satırından isterseniz // işaret ile başlayan açıklama satırlarını silebilirsiniz.
SU SEVİYESİNİ SERİ PORT EKRANINDA İZLEME
KOD BÖLÜMÜ:
//Arduino Su Seviye Kontrol Devresi Seri Portta İzleme
int seviye = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
seviye = analogRead(A0);
if (seviye=0)
{
Serial.print(seviye);
Serial.println(" Sistemde su bulunmamaktadır");
}
else if (seviye>1 && seviye<=450)
{
Serial.print(seviye);
Serial.println(" Su seviyesi cok az");
}
else if (seviye>451 && seviye<=550)
{
Serial.print(seviye);
Serial.println(" İdeal su seviyesi");
}
else if (seviye>551 && seviye<=600)
{
Serial.print(seviye);
Serial.println(" Su seviyesi maksimum seviyeye yakın");
}
else if (seviye>601)
{
Serial.print(seviye);
Serial.println(" Su seviyesi maksimum seviye üzerinde");
}
delay(1000);
}
DEVRENİN ÇALIŞMASI:
Su seviye sensörünü kademe kademe su dolu bir kap içerisine daldırdığımızda su sensörünün belirli seviyelerinde seri port ekranında belirlediğimiz yazıları görebiliriz. Bu seviyeleri kodlama içerisinden istediğimiz değerlere ayarlayabiliriz.
DEVRE BAĞLANTI ŞEMASI:
DEVRE KURULUMU:
Malzemeler:
Arduino Uno
1 adet Su Seviye Sensörü
3 adet bir ucu dişi, diğer ucu erkek jumper kablo
Su seviye sensörü üzerinde yer alan pinlere dişi jumper kabloların uçları yerleştirilir. Sensörün Vcc (+) pini Arduino’nun +5 Volt pinine, sensörün GND (-) pini, Arduino’nun GND pinine, sensörün DATA (S) pini, Arduino’nun A0 numaralı pinine bağlanır. Devremiz bu şekilde tamamlanmış olur.
SU SEVİYESİNİ LED DİYOT İLE İZLEME
KOD BÖLÜMÜ:
//Su Seviye Sensörü Led Diyot İle Kontrolü
int seviye = 0;
int kled = 12; // Kırmızı Led
int sled = 11; // Sarı Led
int yled = 10; // Yeşil Led
int mled = 9; // Mavi Led
int bled = 8; // Beyaz Led
int buzzer = 7; // Buzzer
void setup()
{
Serial.begin(9600);
pinMode(kled, OUTPUT);
pinMode(sled, OUTPUT);
pinMode(yled, OUTPUT);
pinMode(mled, OUTPUT);
pinMode(bled, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop()
{
seviye = analogRead(A0);
if (seviye<=300)
{
Serial.print(seviye);
Serial.println(" Sistemde su bulunmamaktadır");
digitalWrite(kled, LOW);
digitalWrite(sled, LOW);
digitalWrite(yled, LOW);
digitalWrite(mled, LOW);
digitalWrite(bled, HIGH);
digitalWrite(buzzer, LOW);
}
else if (seviye>301 && seviye<=450)
{
Serial.print(seviye);
Serial.println(" Su seviyesi cok az");
digitalWrite(kled, LOW);
digitalWrite(sled, LOW);
digitalWrite(yled, LOW);
digitalWrite(mled, HIGH);
digitalWrite(bled, HIGH);
digitalWrite(buzzer, LOW);
}
else if (seviye>451 && seviye<=550)
{
Serial.print(seviye);
Serial.println(" İdeal su seviyesi");
digitalWrite(kled, LOW);
digitalWrite(sled, LOW);
digitalWrite(yled, HIGH);
digitalWrite(mled, HIGH);
digitalWrite(bled, HIGH);
digitalWrite(buzzer, LOW);
}
else if (seviye>551 && seviye<=600)
{
Serial.print(seviye);
Serial.println(" Su seviyesi maksimum seviyeye yakın");
digitalWrite(kled, LOW);
digitalWrite(sled, HIGH);
digitalWrite(yled, HIGH);
digitalWrite(mled, HIGH);
digitalWrite(bled, HIGH);
digitalWrite(buzzer, LOW);
}
else if (seviye>601)
{
Serial.print(seviye);
Serial.println(" Su seviyesi maksimum seviye üzerinde");
digitalWrite(kled, HIGH);
digitalWrite(sled, HIGH);
digitalWrite(yled, HIGH);
digitalWrite(mled, HIGH);
digitalWrite(bled, HIGH);
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
delay(100);
}
delay(1000);
}
DEVRENİN ÇALIŞMASI:
Su seviye sensörünü kademe kademe su dolu bir kap içerisine daldırdığımızda veya üzerine kademeli bir şekilde su serptiğimizde su sensörünün belirli seviyelerinde led diyotlar ışık verecektir. Maksimum su seviyesinde en son led ile birlikte buzzer da alarm verecektir. Led diyotların hangi seviyede ışık vereceğini kodlama içerisinden seviye değerlerini değiştirerek ayarlayabilirsiniz.
DEVRE BAĞLANTI ŞEMASI:
DEVRE KURULUMU:
Malzemeler:
Arduino Uno
Breadboard
1 adet su seviye sensörü
5 adet led diyot (Kırmızı, sarı, yeşil, mavi, beyaz)
5 adet 220 Ω Direnç
1 adet buzzer
3 adet bir ucu dişi, diğer ucu erkek jumper kablo
7 adet iki ucu erkek jumper kablo
Su seviye sensörü üzerinde yer alan pinlere dişi jumper kabloların uçları yerleştirilir. Sensörün Vcc (+) pini Arduino’nun +5 Volt pinine, sensörün GND (-) pini, Arduino’nun GND pinine, sensörün DATA (S) pini, Arduino’nun A0 numaralı pinine bağlanır.. Breadboard üzerine 5 adet led diyot yerleştirilir. Led diyotların eksi ucu board üst kısmında eksi bağlantısı sırasına bağlanır. Led diyotların artı uçlarına 220 ohm’luk direnç bağlayarak dirençlerin uçları sırası ile Arduino nun 8, 9, 10, 11 ve 12 numaralı pinlerine bağlanır. Breadboard üzerine buzzer yerleştirilir. Buzzer eksi ucu breadboard üst kısmında eksi bağlantı sırasına denk gelecek şekilde konumlandırılır. Buzzer artı ucu Arduino nun 7 numaralı pinine bağlanır. Breadboardın üst kısmında led diyotların bağlı olduğu kısımdan bir kablo ile Arduino’nun GND pinine bağlantı yapılarak devre tamamlanır.
Arduino Su Seviye Kontrol Devresi-Yağmur Alarmı
Devre hakkında yorumlarınızı aşağıdaki yorum kısmına yazabilirsiniz. Youtube kanalımızda da mBlock ve Arduino ile ilgili ders videoları bulabileceksiniz. Youtube kanalıma abone olmayı da unutmayınız.
https://www.youtube.com/@candemirahmet
Yorum Yap