Mikrodenetleyicili bir su tankının seviyesi


24

Bir su tankının seviyesini bir mikrodenetleyici ile nasıl ölçebilirim?


1
Bu bir cevap olarak değmez ama bir arkadaşım bunu birkaç yıl önce bir sanat projesi için yaptı. İlgilenen herkes size tanıtmaktan mutlu olur ve eminim nasıl yaptığını açıklamaktan mutlu olur. Buradaki proje bitti: unixarts.com/sealevel.html Bu, hem pompaları hem de sensörleri birleştirdi ve çok fazla
kıvrılma

7
Mikrodenetleyici çalışmayı durdurduğunda - su altında.
John U,

Yanıtlar:


23

Eh, burada dünya üzerinde çalıştığınızı varsayarak (yörüngedeki aksine), mikro kullanarak ölçtüğünüz bir şamandıra sensörünü kullanabilirsiniz. Soru şudur: Kesin seviyeyi bilmeniz mi gerekiyor, yoksa az / alçaldığında bir tür seyahate mi ihtiyacınız var?

'Belirli seviyedeki yolculuk' temasında, bunun gibi anahtarlar elde edebilirsiniz - genel olarak yüzdürme bir tür tutum algılama anahtarı içerir. Su seviyesi düştüğünde, şamandıranın ucu biter ve düğme 'kapalı' iken, seviye yükseltirken şamandırayı yukarı doğru dik ve dolayısıyla 'açık' duruma zorlar. Bunlar genellikle karter pompalarında kullanılır. Oldukça güvenilir ve başa çıkmaları çok kolay, ancak bunları doğru bir şekilde tutturmak için dikkatli olmalısınız ve hiçbir şeyin şamandıra yoluna girmediğinden emin olmalısınız.

Gerçek seviyeyi bilmeniz gerekiyorsa, birçok seçeneğiniz vardır, ancak bu daha az basittir. Ultrasonik bir sensör gibi bir şeyle gidebilirsiniz (su seviyesini yansıtmak için tankın üstünden aşağı doğru çıkan ultrason ışını).

Bu adamlar , bir şamandıra ve birbirine bağlanmış bir dış ağırlıktan oluşan BÜYÜK tanklar için seviye göstergeleri yaratıyor gibi görünüyor. Şamandıra akışkan üzerinde yukarı aşağı hareket ettiğinde, dış gösterge uygun şekilde hareket eder. Benzer bir şey inşa edebilirsiniz, seviyeyi okumak için foto-hücrelerden daha karmaşık hiçbir şey olmadan (eğer büyük bir tanksa veya çok fazla ayrıntı düzeyi istiyorsanız, çok fazla fotoğraf hücresine ihtiyacınız olacaktır).

Alternatif olarak, kablolu şamandıra fikrini alarak, kablo hareket ettiğinde hareket eden bir rölanti tekerleği koyabilir ve daha sonra buna bir kodlayıcı ekleyebilirsiniz. Bu, seviyeyi oldukça yüksek hassasiyetle izlemenizi sağlar.


15

Yakında yayınlanacak olan Pratik Arduino kitabının , tankın altındaki su basıncını ölçmek ve bundan tankın ne kadar dolu olduğunu hesaplamak için diferansiyel basınç dönüştürücü kullanan bir su deposu derinlik sensörü projesine sahip olduğunu biliyorum.

Şemalar, yukarıdaki linkte, github'daki kaynak koduna bir link ile birliktedir.

(Tam açıklama: Kitapla bir ilişkim yok, ancak yazarlardan biriyle birkaç kez yerel bilgisayar korsanlarımızda tanıştım.)


11

Sevdiğim, ancak denemediğim bir yöntem, iki yalıtımlı plakayı sıvıya koymaktır. Kirlenme, elektroliz, kirlenme ....... Bir kapağın plakalarını oluştururlar. ve bir tür osilatörde kullanılır (size kalmış seçenek) Su, iyi bir diyalrik olduğundan, sıklık, plakalar arasındaki su miktarına bağlıdır. Derinliği elde etmek için frekansı kullanın.

Bir ac sinyali uygulayarak ve kapaktaki akımı ölçerek benzer bir sonuç elde edebilirsiniz.


Akıl, sıvının diyalektrik sabitine çok bağlıdır. Yanılmıyorsam, kapasitif algılama, seviye / yokluğun tespiti için daha çok kullanılır. Görünüşe göre, karşılaştığım her yöntem özgül ağırlıklara bağlı. Değişken kompozisyondaki sıvıları tutan tankların düzenlenmesi zordur.
wackyvorlon

Kapasitans bazlı sıvı seviye sensörleri, sıvının varlığını veya yokluğunu tespit etmede en iyi şekilde çalışır. Su seviyesini okumak için plakları sabit bir direnç kullanarak doldurun / boşaltın ve süreyi ölçün. Yukarıda belirtildiği gibi, suya (tuz gibi) kirletici maddelerin eklenmesi kapasitansta ciddi bir değişime ve dolayısıyla sabit bir sıvı seviyesi için okumanıza neden olabilir. Eğer ölçtüğünüz sıvı homojen ise, bu bir problemden daha azdır.
mjh2007 22.03.2010

Rus düştü gibi yalıtımlı plakalarla rezonansa raftan basit bir SMD bobini ile basit bir dynatron osilatörü yaptım.
Otistik

10

Daha fazla ayrıntı yardımcı olacaktır, ancak ultrasonik yöntemin muhtemelen en basit ve kavramsal olduğunu düşünüyorum (dolayısıyla daha fazla ayrıntıya ihtiyaç duyulmaktadır: -]). Bir MaxSonar ultrasonik dönüştürücü kullanarak bodrumumdaki akaryakıt tankı için seviye sensörünü bir araya getirdim. Parallax Ping sensörüne geçiyorum, en kısa sürede ellerimi çekebiliyorum. MaxSonar ünitesinin biraz acı verici olduğu kanıtlandı; Görünüşe göre tankımdaki yaklaşık 7 galona denk gelen sadece bir inç (2.54 cm) çözünürlük var. MaxSonar ünitesini, deponun üstündeki PVC kapağa (aşağıya bakacak şekilde) aşağıya koydum.


7

Bunu yapmanın bir yolu, tankın dibine bir LED'i ve tankın üstüne, LED'e bakan bir fotodiyot yerleştirmektir. LED tanktaki su ile azaltılacaktır, ne kadar olduğunu belirlemek için deney yapmanız gerekir. Ayrıca, bir dizi hızlı ölçüm almak ve bu yöntemi kullanırken bunları ortalamak en iyisidir.


1
hataya, ortam ışığına, patlamaya vb. eğilimli görünüyor
Jason S

7

Gösterge ışığını algılamak için yerel bir hırdavatçıdan foto transistörlü ucuz bir saplama sensörü kullanıyorum. Bu tankın kenarına yapıştırıldığında, seviye sensörün üstüne çıktığında algılar ve bizi yüksek su durumuna karşı uyarır.


6

Seviye kontrolü için şaşırtıcı sayıda yol vardır. RF kullanan, bir dalga kılavuzundan bir darbe gönderen ve tanktaki sıvının yüzeyinden yansımasını tespit eden sensörler vardır. Ultrason, şamandıralar, fıskiye tüpleri, basınç muslukları var ... Kullanılan yöntem tankın boyutuna, içeriğine, ortam ortamına ve diğer faktörlere bağlıdır.


4

Buradaki tüm karmaşık elektronik çözümlere şaşırdım, basit bir potansiyometre kullanırdım. Çoğu mikro kontrolör temel analog i / p'ye sahiptir.

 +V
-----
  |
  |
  /
  \
  /<----------> to analog i/p
  \
  |
  |
-----
 GND

Standart bir su tankı vanası şamandırası kullanın (zaten bir tane olabilir). Kalan sorun, maksimum salınım sağlamak için şamandırayı tencereye bağlamaktır (ayrıca bir kaydırıcı tencere de kullanabilirsiniz).

                  |-|
                  | |
                  |o| <--------Slider pot.
                  |||
                  |||
                   |
                   |  <--------Coupling.
                   |
   ____            |
  (float)----------o-----o  <--Anchor point of float.
   ----

Tencerenin orijinal konumuna geri döndüğünden nasıl emin olabilirsiniz?

Şamandıranın ağırlığı su seviyesi düştüğünde aşağıya çekecektir ...
ttt

Bundan pek emin değilim. Şamandıranın doğru ağırlığını suyun varlığında yüzecek ve su yokluğunda kabı düşürecek şekilde bulmak o kadar kolay değildir. Çoğu saksı oldukça yüksek statik sürtünmeye sahiptir. Ancak, doğru mekanik kurulum verildiğinde bunun mümkün olduğunu tahmin ediyorum.

Uzun sürgülü kapların çoğu çok düşük sürtünmeye sahiptir (parmak ucu kontrollü karıştırıcılarda ve DJ destelerinde kullanılır). Bit kutumdan 4 "kaydırıcı kullandım ve normal bir su deposu şamandırasıyla test ettim. Daha küçük bir tuvalet sarnıcı şamandırası üzerinde bile çalıştı! Bu arada, tencereye sabit bir rezistans kullanacaktım. Islak bir ortamda şort bir kontrol bağlantı noktası çıkış değerini (ya da sabit bir Vref çok fazla akım çeker) alışkanlık benim deney düzeneğinde, bir 10k pot ile 10k rezistörünün kullanılır..
ttt

Test sırasında sadece şamandıra koluna mandallamak için bir parça bükülmüş tel kullandım. Tuvalet sarnıcında kol kare kesitli bir plastiktir, bu nedenle ataşmanı yapmak için küçük bir delik açmak gerçekten kolay olacaktır.
ttt

4

En basit yaklaşım

Tankın bir köşesine, pinpon topundan biraz daha büyük çapta olan küçük bir tüp yerleştirin.

Tüpün bir tarafına kızılötesi bir LED ve LED'in karşısına bir fotorezistör yerleştirin (opak tüpüne bir delik açarak veya şeffafsa dışına yerleştirerek). Elektrikli parçaları sıcak bir şekilde su geçirmez hale getirmek için tutkallayın ve pinpon topunu tüpün içine bırakın.

Su seviyesi ping pong topunun kızılötesi ışını kırdığı noktaya yükseldiğinde veya alçaldığında, istenen seviyeye ulaştığını bilirsiniz. Bu, yalnızca ayrı (açık / kapalı) bir seviye göstergesine ihtiyacınız varsa çalışır.

Bu sistem aynı zamanda elektronik tetiğin ateşleme solenoidini çalıştırmasına izin vermeden önce tüm topun ateşleme odasında olmasını sağlayarak topları kesmenizi engellemek için tasarlanmış paintball silahlarında da kullanılır.

Basit, etkili ve çok az veya hiç kalibrasyon gerektirmiyor.



1

Bir daha akıllı yaklaşım: Suyun (sıvı) daha büyük termal iletkenliğinden faydalanın. Buradaki fikir sıcaklık sensörüne sahip olmak ve suya batırıldığında ve serbest havadayken kendi kendine ısınma farkını ölçmektir.


Bu aslında CHCH NewZealand'da olduğum yerde yapıldı, ama yapmadım, sanırım yaklaşık 20 yaşında. Tankın dışında bir çok termistörün bulunduğu bir yerdi. Bu yüzden benim çalışmam için oy kullandı.
Otistik

1

Başka bir çözüm (amaçlanan hiçbir ceza);

Yukarıda önerildiği gibi bir potansiyometre kullanın. Normal dönme aralığı 270 derecedir. Bir bom kolu kullanarak potansiyometreye bir şamandıra takın. (uzunluk = 1 birim)

Boş ve dolu arasında bom kolu 90 derece hareket eder.

Bir PIC üzerindeki ADC 256 veya 1024 adımdır (evet, sıfır bir adımdır).

Netlik için 256 adım kullanacağım.

270 derece = 256 ADC basamağı. 270/90 = 3 (potansiyometre aralığının üçte biri)
255/3 = 85 ADC basamağı

Bir düğmeye basıldığında 0 derece noktasını (depo boş) işaretlemek için bazı kodlar programlayın.

Bu, PIC eeprom'da bir ofset noktası saklar. Şimdi, potansiyometrenin tam olarak sıfırda olması gerekmez, çünkü bu kalibrasyon noktası ayarlanabilir.

Trigometri kullanarak, ADC'nin her basamağına karşılık gelen bir arama tablosu (ipucu: php betiği) hesaplayın.

İpucu: her ADC adımı 90/85 = 1.0588 dereceye karşılık gelir.

Evet, matematik dersinde daha fazla dikkat etmeliydin. o zamanlar aptal zaman kaybı, şimdi vazgeçilmez. beyinle meşgul. trigonometriyi öğrenir. başkalarına öğret.

Kısaltma: Eski Arap ağır bir çuval çuvalı taşıyordu.

Hipoenüs, bom kolunun uzunluğudur. 1 birim uzunluğunda olsun. Arama tablosu daha sonra tank derinliğinin yüzdesini sağlar. (elbette 100 ile çarpın)


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.