Su seviyesi göstergesi, su depolarındaki su seviyesini göstermek için kullanılır, bunu kullanarak suyun taşmasını önleyebilir ve herhangi bir zamanda depodaki su seviyesini bilebiliriz, basit bir devreye sahiptir. . İlk planladığımız projede Arduino ve LCD ekran yoktu fakat gündelik yaşamda kolaylığı düşünerek projeyi bu yönde değiştirdik.
Kullanılan Malzemeler;
-Ardiuno Uno
-16*2 LCD Shield
-BC548
-470 ohm
-220 ohm
-22k ohm
Devre Şeması;
(Şemadan farklı olarak kullandığımız LCD Shield dolayısıyla Arduinonun 8-9 nolu bağlantılarını 2-3 nolu bağlantılara taşıdık)
5 volt ile çalışan Arduinodan çıkan jumper kablo 22K ohm dirence bağlanmaktadır, direncin diğer ucundan gelen kablo ise deponun tabanına yerleştirilmiştir. Bu şekilde suya akım iletilmiştir. Su seviyelerini ölçmek için ise üç adet BC548’in base ayakalarından aldığımız jumper kabloları deponun farklı seviyelerine yerleştirerek elektriğin sudaki iletimi sayesinde deponun su seviyeleri az,orta,dolu olarak derecelendiriyoruz. Ardından Arduino BC548lerden gelen sinyalleri yazdığımız kod aracılığı ile işleyerek su seviyelerini LCD’ye yansıtmaktayız.
Bu proje geliştirilmeye açık durumdadır, taşma durumunu önlemek için yüksek ölçümü yapıldıktan sonra pompa yardımı ile su tahliyesi yapılabilir. Benzer şekilde su seviyesi düştüğünde pompa yardımı ile depoya su dolumu yapılabilir. Sesli uyarım sistemi eklebilir.
Yapım Aşamaları
BC548lerin breadbord üzerine yerleştirilmesi
470ohm dirençlerin collector ayaklarından pozitif kutba bağlantısının yapılması
220ohm direnclerin base ayaklarından toprak bağlantısının yapılması7
emiterin toprak bağlantısının yapılması
22k ohm direcin artı kutba bağlanması
arduinodan alınan gnd ve 5voltun breadbord üzerine bağlantısının yapılması
BC548in collectorlerinin arduinodaki 2-3-10 nolu ayaklara bağlantısının yapılması
22k ohm dirençten deponun tabanına gidecek kablonun ve BC548lerin base ayaklarından deponun belirli seviyelerine gidecek kablolaların bağlantısının yapılması, LCD shield in arduino üzerine yerleştirilmesi
Arduino için hazırladığımız kod;
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
byte sensorPin[] = {2, 3, 10};
byte ledPin[] = {11, 12, 13};
const byte sensors = 3;
int level = 0;
void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
for (int i = 0; i < sensors; i++)
{
pinMode(sensorPin[i], INPUT);
pinMode(ledPin[i], OUTPUT);
}
}
void loop(){ {
if (Serial.available()) {
delay(100);
lcd.clear();
while (Serial.available() > 0) {
lcd.write(Serial.read());
}
}
level = 0;
for (int i = 0; i < sensors; i++)
{
if (digitalRead(sensorPin[i]) == AZ)
{
digitalWrite(ledPin[i], DOLU);
level = sensors – i;
}
else
{
digitalWrite(ledPin[i], AZ);
}
}
Serial.println(“SU SEVIYESI”);
switch (level)
{
case 1:
Serial.println(“DOLU”);
break;
case 2:
Serial.println(“ORTA”);
break;
case 3:
Serial.println(“AZ”);
break;
default:
Serial.println(“YOK”);
break;
}
delay(50);
}}