Level tangki air dengan mikrokontroler

24

Bagaimana cara mengukur level tangki air dengan mikrokontroler?

mad_z
sumber
1
Ini tidak layak sebagai jawaban tetapi seorang teman saya melakukan ini untuk proyek seni beberapa tahun yang lalu. Siapa pun yang tertarik, saya akan dengan senang hati memperkenalkan Anda dan saya yakin dia akan dengan senang hati menjelaskan bagaimana ia melakukannya. Proyeknya ada di sini: unixarts.com/sealevel.html Ini menggabungkan kedua pompa dan sensor dan membutuhkan akurasi yang cukup untuk loop atas dan ke bawah tanpa terlalu banyak condong
cyphunk
7
Ketika mikrokontroler berhenti bekerja - itu di bawah air.
John U

Jawaban:

23

Nah, dengan asumsi Anda beroperasi di bumi ini (tidak seperti di orbit), Anda dapat menggunakan sensor float yang Anda ukur menggunakan mikro. Pertanyaannya adalah: Apakah Anda perlu mengetahui tingkat pastinya, atau apakah Anda hanya perlu semacam perjalanan saat mencapai tinggi / rendah?

Pada tema 'perjalanan di level tertentu', Anda bisa mendapatkan sakelar seperti ini - umumnya float berisi semacam sakelar penginderaan sikap. Ketika permukaan air lebih rendah, pelampung berakhir di sisinya, dan sakelarnya 'mati', sementara menaikkan levelnya memaksa pelampung itu tegak, dan karenanya 'menyala'. Ini sering digunakan untuk pompa bah. Mereka cukup dapat diandalkan dan sangat mudah untuk ditangani, meskipun Anda harus berhati-hati untuk menjangkar mereka dengan benar, dan Anda harus yakin bahwa tidak ada yang menghalangi float.

Jika Anda perlu mengetahui level sebenarnya, maka Anda punya banyak pilihan, tetapi itu tidak sesederhana itu. Anda dapat menggunakan sensor ultrasonik (sinar ultrasonik yang ditembakkan dari atas tangki untuk memantulkan ketinggian air).

Orang-orang ini tampaknya membuat indikator level untuk tank BESAR yang terdiri dari pelampung dan bobot eksternal yang disatukan. Saat pelampung naik dan turun di atas fluida, indikator eksternal bergerak dengan tepat. Anda dapat membuat sesuatu yang serupa, dengan tidak ada yang lebih rumit daripada sel foto untuk membaca levelnya (jika itu adalah tangki besar, atau Anda ingin banyak rincian, Anda akan membutuhkan banyak sel foto).

Sebagai alternatif, dengan mengambil ide float kabel, Anda bisa meletakkan roda pemalas yang bergerak setiap kali kabel bergerak, dan kemudian pasang encoder ke sana. Ini akan memungkinkan Anda untuk melacak level dengan akurasi yang cukup tinggi.

Michael Kohne
sumber
15

Saya tahu bahwa buku yang akan segera dirilis Praktis Arduino memiliki proyek sensor kedalaman tangki air , yang menggunakan transduser tekanan diferensial untuk mengukur tekanan air di bagian bawah tangki, dan dari itu untuk menghitung seberapa penuh tangki itu.

Skema ada di tautan di atas, bersama dengan tautan ke kode sumber di github.

(Pengungkapan penuh: Saya tidak memiliki hubungan dengan buku ini, tetapi telah beberapa kali bertemu dengan salah satu penulis di ruang peretas lokal kami.)

Evan
sumber
11

Metode yang saya suka, tetapi belum mencoba adalah dengan meletakkan dua pelat terisolasi dalam cairan. Tidak ada kondusi, elektrolosis, pendampingan ....... Mereka membentuk lempeng topi. dan digunakan dalam semacam osilator (pilihan terserah Anda) Karena air adalah dialetrik yang baik, frquency sangat bergantung pada jumlah air di antara pelat. Ukur frekuensi untuk mendapatkan kedalaman.

Anda mungkin bisa mendapatkan hasil yang serupa dengan menerapkan sinyal ac dan mengukur arus melalui tutup.

russ_hensel
sumber
Pikiran, itu sangat tergantung pada konstanta dialektrik fluida. Kecuali saya salah, penginderaan kapasitif lebih banyak digunakan untuk mendeteksi ada / tidaknya daripada level. Sepertinya hampir setiap metode yang saya jalankan bergantung pada gravitasi spesifik. Tangki yang menahan cairan dengan komposisi variabel sulit diatur.
wackyvorlon
Sensor level cairan berbasis kapasitansi berfungsi paling baik dalam mendeteksi ada atau tidaknya cairan. Untuk membaca muatan / debit level air, pelat menggunakan resistor tetap dan mengukur waktu. Seperti disebutkan di atas, menambahkan kontaminan ke dalam air (seperti garam) dapat menyebabkan perubahan kapasitansi secara drastis dan oleh karena itu pembacaan Anda untuk tingkat cairan yang tetap. Jika cairan yang Anda ukur homogen, ini jauh dari masalah.
mjh2007
Saya membuat osilator dynatron dengan sederhana dari kumparan SMD rak yang beresonansi dengan pelat terisolasi seperti postulat russ. Gelombang sinewave kuadrat dan someboby yang lain menghitung pulsa dalam firmware, dengan kata lain apa kata russ DOES bekerja.
Autistik
10

Lebih detail akan membantu, tapi saya pikir metode ultrasonik mungkin adalah yang paling sederhana, secara konseptual, toh (karena itu kebutuhan untuk detail lebih lanjut: -]). Saya mengumpulkan sensor level untuk tangki bahan bakar minyak di ruang bawah tanah saya menggunakan transduser ultrasonik MaxSonar. Saya beralih ke sensor Parallax Ping, begitu saya bisa mendapatkannya. Unit MaxSonar telah terbukti agak menyebalkan; ternyata hanya punya resolusi 2,5 cm, yang setara dengan hampir 7 galon di tangki saya. Saya meletakkan unit MaxSonar di tutup PVC di bagian atas tangki mengarah ke bawah (di luar jangkauan cairan).

blalor
sumber
7

Salah satu cara untuk melakukan ini adalah dengan meletakkan sebuah led di bagian bawah tangki yang menunjuk ke atas, dan sebuah fotodioda di bagian atas tangki, menghadap ke LED. LED akan dilemahkan oleh air di dalam tangki, Anda harus bereksperimen untuk menentukan berapa banyak. Selain itu, sebaiknya lakukan serangkaian pengukuran cepat dan ratakan saat menggunakan metode ini.

Beberapa pria
sumber
1
tampaknya sangat rentan terhadap kesalahan, cahaya ambient, tumpah, dll
Jason S
7

Saya menggunakan sensor stud murah dari toko perangkat keras lokal dengan transistor foto untuk merasakan indikator yang dipimpin. Dengan ini terpaku pada sisi tangki ia merasakan ketika tingkat naik di atas sensor dan mengingatkan kita pada kondisi air yang tinggi.

John D
sumber
6

Ada sejumlah cara mengejutkan untuk memeriksa level. Ada sensor yang menggunakan RF, mengirimkan pulsa ke Waveguide dan mendeteksi pantulan dari permukaan cairan dalam tangki. Ada ultrasound, mengapung, tabung bubbler, keran tekanan ... Metode yang digunakan tergantung pada ukuran tangki, isi, lingkungan sekitar dan faktor lainnya.

wackyvorlon
sumber
4

Saya terkejut dengan semua solusi elektronik yang rumit di sini, saya akan menggunakan potensiometer sederhana. Sebagian besar pengontrol mikro memiliki i / p analog dasar.

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

Gunakan pelampung katup tangki air standar (mungkin sudah ada satu). Masalah yang tersisa adalah menggabungkan float ke pot untuk mendapatkan ayunan maksimal (Anda juga bisa menggunakan pot slider).

                  |-|
                  | |
                  |o| <--------Slider pot.
                  |||
                  |||
                   |
                   |  <--------Coupling.
                   |
   ____            |
  (float)----------o-----o  <--Anchor point of float.
   ----
ttt
sumber
Bagaimana Anda memastikan pot kembali ke posisi semula?
Berat pelampung akan menariknya ke bawah ketika permukaan air turun ...
ttt
Tidak begitu yakin tentang itu. Menemukan berat float yang tepat sehingga mengapung di hadapan air dan menjatuhkan pot tanpa adanya air tidaklah mudah. Kebanyakan pot memiliki gesekan statis yang cukup tinggi. Saya kira itu mungkin, namun, mengingat pengaturan mekanis yang tepat.
Banyak pot slider yang lebih panjang memiliki gesekan yang sangat rendah (digunakan pada mixer dengan ujung jari dan dek DJ). Saya menggunakan slider 4 "dari kotak bit saya dan mengujinya dengan tangki air yang normal. Ia bahkan bekerja pada tangki air toilet yang lebih kecil! Ngomong-ngomong, saya akan menggunakan resister yang diperbaiki secara seri dengan pot sehingga bahkan jika itu celana pendek di lingkungan basah itu tidak akan melebihi output dari port controller (atau menarik arus terlalu banyak dari Vref tetap) .Saya menggunakan resister 10k dengan pot 10k dalam pengaturan pengujian saya.
ttt
Dalam pengujian saya hanya menggunakan sepotong kawat bengkok untuk menempel pada lengan mengambang. Di tangki toilet, lengannya terbuat dari plastik segi empat sehingga akan sangat mudah untuk mengebor lubang kecil untuk membuat lampiran.
ttt
4

Pendekatan paling sederhana

Tempatkan tabung kecil di sudut tangki yang diameternya sedikit lebih besar dari bola ping pong.

Letakkan LED inframerah di satu sisi tabung dan lawan fotoresistor dari LED (dengan mengebor lubang di tabung buram itu atau menempatkan di luar jika transparan). Rekatkan lem bagian listrik untuk membasahi mereka dan jatuhkan bola ping pong ke dalam tabung.

Ketika permukaan air naik atau turun ke titik di mana bola pingpong memecah sinar inframerah, Anda akan tahu itu menyentuh level yang diinginkan. Ini berfungsi jika Anda hanya memerlukan indikator level diskrit (on / off).

Sistem ini juga digunakan dalam senjata paintball yang dirancang untuk mencegah Anda memotong bola dengan memastikan bahwa seluruh bola ada di dalam ruang tembak sebelum memungkinkan pelatuk elektronik untuk mempersenjatai solenoid yang menembak.

Sederhana, efektif, dan membutuhkan sedikit atau tidak ada kalibrasi.

Evan Plaice
sumber
1

Satu lagi pendekatan cerdas: Manfaatkan konduktivitas termal air (fluida) yang lebih besar. Idenya adalah untuk memiliki sensor suhu dan mengukur perbedaan pemanasan sendiri ketika terendam dan ketika di udara bebas.

mazurnifikasi
sumber
Ini sebenarnya telah dilakukan di CHCH NewZealand di mana saya berada, tetapi saya tidak melakukannya, saya pikir ini berumur sekitar 20 tahun. Ada sederetan banyak thermisters di bagian luar tangki.
Autistik
1

Solusi lain (no pun intended);

Gunakan potensiometer seperti yang disarankan di atas. Kisaran rotasi normal adalah 270 derajat. Pasang pelampung ke potensiometer menggunakan boom arm. (panjang = 1 unit)

Antara penuh dan kosong lengan boom akan bergerak 90 derajat.

ADC pada PIC adalah 256 atau 1024 langkah (ya, nol adalah langkah).

Saya akan menggunakan 256 langkah untuk kejelasan.

270 derajat = 256 langkah ADC. 270/90 = 3 (sepertiga dari rentang potensiometer)
255/3 = 85 langkah ADC

Program beberapa kode untuk menandai titik 0 derajat (tangki kosong) ketika tombol ditekan.

Ini menyimpan titik offset dalam PIC eeprom. Sekarang potensiometer tidak harus tepat pada nol karena titik kalibrasi ini dapat diatur.

Menggunakan trigometry, hitung tabel pencarian (petunjuk: skrip php) untuk menyesuaikan dengan setiap langkah ADC.

Petunjuk: setiap langkah ADC sesuai dengan 90/85 = 1,0588 derajat.

Ya, Anda seharusnya lebih memperhatikan di kelas matematika. waktu yang bodoh, tidak dapat dipertahankan sekarang. melibatkan otak. belajar trigonometri. mengajar orang lain.

Singkatan: Orang Arab Tua Membawa Karung Berat.

The hypontenuse adalah panjang lengan boom. Jadikan 1 unit panjang. Tabel pencarian kemudian memberikan persentase kedalaman tangki. (kalikan dengan 100 tentu saja)

Rikkitikki
sumber