Bu makalede, Sihirbaz bize bir tanktaki su seviyesini izlemek ve kontrol etmek için nasıl bir sistem yapılacağını anlatacak. Basit ve güvenilir bir sistemdir.
Temel özellikleri aşağıdaki gibidir:
Gerçek zamanlı su seviyesi izleme.
Otomatik açma / kapama pompası.
Pompanın acil kapatılması.
Araçlar ve malzemeler:
-Arduino Pro mini
Ultrasonik sensör HC-SR04;
- Modül MAX485;
- LCD modülü i2c;
LCD 1602;
- Mikrodenetleyici ATTINY45 / 85;
- Voltaj Regülatörü LM7805;
NPN transistör (2n3904);
-N-kanallı MOSFET IRFD024PBF;
Diyot 1N4007;
5 pimli konektör;
4 pimli konektör
-2 pimli konektör;
- 2 kontaklı terminaller (mavi) - 2 adet;
- 2 kontaklı terminal (yeşil);
DC Jakı (- 2 adet)
Ses jakı (erkek / dişi) - 2 adet;
- Direnç 1 kOhm;
- Direnç 10 kOhm - 3 adet;
- Kondansatör 100 nF - 3 adet;
Kondansatör 100 uF;
- SMD düğmesi, 6x3.5mm;
-DIP anahtarları (SPST 2) - 2 adet;
- güç düğmesi;
-Tumbler;
-12V DC röle;
-Röle kontaktörü;
- DC güç kaynağı 5 V (> 200 mA);
- DC 12V güç kaynağı (> 500 mA);
-Uygun boyutta kutular için kutular;
-Krepezh;
Lehimleme aksesuarları;
- tornavida;
seeing-;
Birinci Adım: Sensör Ünitesi
Bu ünite su seviyesini ölçer ve ana kontrolöre veri gönderir. Su seviyesini ölçmek için iki sensöre sahiptir. Biri HC-SR04 ultrasonik mesafe sensörü, diğer iki uzun vida fotoğrafta gösterildiği gibi dışarı doğru çıkıntı yapıyor.
Sensörleri kurmak için aşağıdaki adımları uygulamanız gerekir:
Ultrasonik dönüştürücüyü kapağın önünde üste yakın olarak baş aşağı yerleştirin ve ultrasonik verici ve alıcı için iki deliği işaretleyin.
Delikleri kesin ve sensörü sıcak tutkalla yerine sabitleyin.
Daha sonra kapağın ortasında 2-3 cm'lik bir boşluk ile 3 mm çapında iki delik açın.
Uzun M3 cıvatalarını, tel terminali kapağın arkasındaki iki rondela arasına sıkıştırılmış olarak takın ve diğer taraftaki M3 somunlarını sıkın.
Sensör ünitesi birincil mikrodenetleyici olarak ATTINY45 kullanır. Daha önce de belirtildiği gibi, HC-SR04 su seviyesini ölçmek için kullanılır. Tankın tepesinden olan mesafeyi ölçerek çalışır.
Ayrıca, transistörün kurulduğu devredeki iki cıvata kullanılarak kontrol gerçekleştirilir. Mikrodenetleyici bu sensörlerin her ikisinden de veri okur ve kontrolör ünitesinde kurulu Arduino'ya veri gönderir.
İlk olarak, usta HC-12 RF modülleri üzerinden veri göndermek istedi. Ancak bu modüllerin aralığı gereksinimlere uymuyor.Sihirbaz MAX485 TTL - RS485 dönüştürücüsünü kullandı ve HC-12 modüllerinin yerine kurmak için küçük bir yükseltici yaptı.
Şema ve panoya bağlantı indirilebilir bu adreste.
Kurulum aşağıdaki gibidir:
HC-SR04 ana devreye:
Vcc - 5V (CN1).
trig - trigPin (CN1).
echo - echoPin (CN1).
Gnd - GND (CN1).
M3 ana devreye cıvatalar:
Cıvata 1-5 V (CN1).
Cıvata 2-100 (CN1).
MAX485 (TX) modülü:
VCC - 5V (HC-12 Konnektör)
A - 1/4 inç ses jakı.
B - 1/4 inç ses jakı.
GND - GND (HC-12 Konnektör)
R0 - RX (HC-12 Konnektör)
RE - VCC (MAX485) veya 5V.
DE - RE (RE ve DE olarak kısaltılır).
DI - TX (HC-12 konektörü).
DC Jakı (P1 Konektörü):
İpucu - 5V
Kol - GND
İkinci Adım: Denetleyici
Kontrolörün kullanımı basittir. Ana denetleyici olarak Arduino kullanılır. Verici kartından max485 modülü aracılığıyla gönderilen sensör verilerini alır. Mevcut su seviyesini ve pompa çalışmasını gösteren 1602 LCD ekrana sahiptir. Röle kontaktörünü açmak için bir anahtar olarak 12 V röle kullanır. Biri LCD'yi aydınlatmak ve diğeri acil durum pompası açmak / kapatmak için iki anahtar vardır.
Verici ve alıcı için devre şemasına ve baskılı devre kartının tasarımına bir bağlantı bulunur burada.
İ2c LCD modülü doğrudan 1602 LCD'ye lehimlenmiştir. İ2c modülündeki arka ışık atlama kablosu açma / kapama için açma / kapatma anahtarına bağlanır. Acil durum düğmesi (büyük), ana devreye P4 konnektörüyle bağlanır.
I2c LCD modülünden ana devreye (CN4):
GND - CN4-1 (GND1).
VCC - CN4-2 (5V).
SCL - CN4-3 (A5).
SDA - CN4-4 (A4).
Röle Kontaktör Bağlantıları:
A1 - 230 VAC1 (sıfır).
A2 - NO (röle kontağı).
S1 - 230 VAC1 (sıfır).
S2 - 230 VAC2 (faz)
L1 - Pompa Motor Teli 1
L2 - Pompa motor teli 2.
COM röle kontağını 230 VAC2'ye (hat) bağlayın.
Üçüncü Adım: Yazılım ve Programlama
Şimdi denetleyicileri her iki cihazda da programlamanız gerekir.
ATTINY45 kodunu indirmek için SoftwareSerial.h kütüphanesini indirir.
Döngü işlevinde,
> İlk önce tankın dolu olup olmadığını kontrol edin.
> Dolu ise, "255" gönderir.
> Dolu değilse, su seviyesini ultrasonik ses sensörü ile kontrol eder ve seri iletişim yoluyla veri iletir.
Bu program, geçerli su seviyesini elde etmek için getwtrLvl () alt işlevini kullanır. İlk olarak, sensörün ultrasonik dalgaları iletmesi ve alması için geçen süreyi ölçer. Daha sonra zaman, ses hızı kullanılarak mesafeye dönüştürülür.
dist = pulseIn (echoPin, HIGH); // ses dalgasının harcadığı zaman.
dist = dist / 28/2; // zamanı cm cinsinden mesafeye çevirin
dist = dist * 1.25; // burada 1.25, ölçüm hatasının üstesinden gelmek için düzeltme faktörüdür
geri dönüş dist; // arama işlevine olan mesafeyi döndürür
Şimdi Arduino için.
Döngü işlevinde:
> Önce acil durum düğmesine basıp basılmadığı kontrol edilir.
> Sensör kontrolü. Programın bir kısmı sensör hatasını kontrol eder. yani, alınan veriler 5 kez geçersizse (<= 1), ekranda sensör hatası gösterilir ve pompa kapanır.
> Bir sonraki kısım mevcut su seviyesini gösterir ve su seviyesi küçükse pompa 1'e veya% 100 (dolu) ise 0'a komut verir.
Bu program updtMotor () ve getWaterLvl () adlı iki alt işlevi kullanır. UpdtMotor () işlevi, pompanın LCD'de çalışmasını gösterir ve ayrıca röleye bir sinyal gönderir.
GetWaterLvl işlevi önce herhangi bir bağlantı hatası olup olmadığını kontrol eder. Verici ile alıcı arasındaki bağlantı bekleme süresi (3000 ms) sırasında kurulmazsa. Bir sensör hatası gösterir ve pompayı kapatır.
Bağlantı yeniden kurulduğunda işlem devam eder.
Her şey hazır, ilginç bir usta için usta sayesinde ev yapımı.