Bir su tankının seviyesini bir mikrodenetleyici ile nasıl ölçebilirim?
Bir su tankının seviyesini bir mikrodenetleyici ile nasıl ölçebilirim?
Yanıtlar:
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.
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.)
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.
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.
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.
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.
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.
----
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.
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.
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)
Lütfen aşağıdaki bağlantıyı kontrol edin:
http://www.edgefxkits.com/contactless-liquid-level-controller
Bence senin için faydalı olabilir.