- Komponen Diperlukan
- Sensor Aliran Air YFS201
- Rajah Litar
- Kod Sensor Aliran Air Arduino
- Sensor Aliran Air Arduino Berfungsi
Sekiranya anda pernah mengunjungi syarikat pembuatan berskala besar, perkara pertama yang akan anda perhatikan adalah semuanya automatik. Industri Minuman Ringan dan Industri Kimia harus sentiasa mengukur dan mengukur cecair yang mereka kendalikan semasa proses automasi ini, dan sensor yang paling biasa digunakan untuk mengukur aliran cecair adalah Sensor Aliran. Dengan menggunakan sensor aliran dengan mikrokontroler seperti Arduino, kita dapat mengira kadar aliran, dan memeriksa isipadu cecair yang telah melewati paip, dan mengontrolnya sebagaimana diperlukan. Selain industri pembuatan, sensor aliran juga dapat ditemukan di sektor pertanian, pemrosesan makanan, pengelolaan air, industri perlombongan, kitar semula air, mesin kopi, dll. Selanjutnya, sensor aliran air akan menjadi tambahan yang baik untuk proyek seperti Automatic Water Dispenser dan Sistem Pengairan Pintar di mana kita perlu memantau dan mengawal aliran cecair.
Dalam projek ini, kami akan membina sensor aliran air menggunakan Arduino. Kami akan menghubungkan sensor aliran air dengan Arduino dan LCD, dan memprogramnya untuk menampilkan volume air, yang telah melewati injap. Untuk projek ini, kita akan menggunakan sensor aliran air YF-S201, yang menggunakan kesan lorong untuk merasakan kadar aliran cecair.
Komponen Diperlukan
- Sensor Aliran Air
- Arduino UNO
- LCD (16x2)
- Penyambung dengan utas dalaman
- Menyambung wayar
- Paip
Sensor Aliran Air YFS201
Sensor mempunyai 3 wayar MERAH, KUNING, dan HITAM seperti yang ditunjukkan pada gambar di bawah. Kawat merah digunakan untuk voltan bekalan yang berkisar antara 5V hingga 18V dan wayar hitam disambungkan ke GND. Kawat kuning digunakan untuk output (denyutan), yang dapat dibaca oleh MCU. Sensor aliran air terdiri dari sensor pinwheel yang mengukur kuantiti cecair yang melaluinya.
Cara kerja sensor aliran air YFS201 mudah difahami. Sensor aliran air berfungsi berdasarkan prinsip kesan balai. Kesan Hall adalah penghasilan perbezaan potensi pada konduktor elektrik apabila medan magnet diterapkan dalam arah tegak lurus dengan arus arus. Sensor aliran air disatukan dengan sensor kesan dewan magnetik, yang menghasilkan denyut elektrik dengan setiap revolusi. Reka bentuknya sedemikian rupa sehingga sensor kesan ruang ditutup dari air, dan membolehkan sensor tetap selamat dan kering.
Gambar modul sensor YFS201 sahaja ditunjukkan di bawah.
Untuk berhubung dengan paip dan sensor aliran air, saya menggunakan dua penyambung dengan benang wanita seperti gambar di bawah.
Menurut Spesifikasi YFS201, arus maksimum yang ditariknya pada 5V adalah 15mA, dan kadar aliran kerja adalah 1 hingga 30 liter / minit. Apabila cecair mengalir melalui sensor, ia bersentuhan dengan sirip roda turbin, yang diletakkan di jalur cecair yang mengalir. Poros roda turbin disambungkan ke sensor kesan dewan. Oleh kerana itu, setiap kali air mengalir melalui injap, ia menghasilkan denyutan. Sekarang, yang harus kita lakukan ialah mengukur masa untuk tambah atau mengira bilangan denyutan dalam 1 saat dan kemudian mengira kadar aliran dalam liter per jam (L / Hr) dan kemudian menggunakan formula penukaran mudah untuk mencari isipadu air yang melaluinya. Untuk mengukur nadi, kita akan menggunakan Arduino UNO. Gambar di bawah menunjukkan pin sensor aliran air.
Rajah Litar
The rajah litar sensor aliran air ditunjukkan di bawah untuk antara muka sensor aliran air dan LCD (16x2) dengan Arduino. Sekiranya anda baru menggunakan Arduino dan LCD, anda boleh mempertimbangkan untuk membaca Artikel Interfacing Arduino dan LCD ini.
Sambungan sensor aliran air dan LCD (16x2) dengan Arduino diberikan di bawah dalam format jadual. Perhatikan bahawa periuk disambungkan di antara 5V dan GND dan pin panci 2 dihubungkan dengan pin V0 LCD.
S.NO |
Pin sensor Aliran Air |
Pin Arduino |
1 |
Kawat Merah |
5V |
2 |
Hitam |
GND |
3 |
Kuning |
A0 |
S.No |
LCD |
Arduino |
1 |
Vss |
GND (landasan papan roti) |
2 |
VDD |
5V (Rel positif papan roti) |
3 |
Untuk sambungan dengan V0, perhatikan nota di atas |
|
4 |
RS |
12 |
5 |
RW |
GND |
6 |
E |
11 |
7 |
D7 |
9 |
8 |
D6 hingga D3 |
3 hingga 5 |
Saya menggunakan papan roti, dan setelah sambungan dibuat seperti rajah litar yang ditunjukkan di atas, susunan ujian saya kelihatan seperti ini.
Kod Sensor Aliran Air Arduino
Kod Arduino sensor aliran air lengkap diberikan di bahagian bawah halaman. Penjelasan kodnya adalah seperti berikut.
Kami menggunakan fail header LCD, yang memudahkan kami menghubungkan LCD dengan Arduino, dan pin 12,11,5,4,3,9 diperuntukkan untuk pemindahan data antara LCD dan Arduino. Pin output sensor disambungkan ke pin 2 Arduino UNO.
frekuensi_ aliran arus yang tidak menentu; // Mengukur denyut sensor aliran // Mengira liter / jam float jam = 0.0, l_minute; flowensensor char yang tidak bertanda = 2; // Input Sensor semasa semasa yang tidak ditandatangani; CloopTime panjang yang tidak ditandatangani; #sertakan
Fungsi ini adalah rutin perkhidmatan gangguan dan ini akan dipanggil setiap kali ada isyarat gangguan di pin2 Arduino UNO. Untuk setiap isyarat gangguan, kiraan frekuensi_ aliran berubah akan meningkat sebanyak 1. Untuk keterangan lebih lanjut mengenai gangguan dan cara kerjanya, anda boleh membaca artikel ini mengenai gangguan Arduino.
aliran kekosongan () // Ganggu fungsi { flow_frequency ++; }
Dalam penyediaan kekosongan, kami memberitahu MCU bahawa pin 2 Arduino UNO digunakan sebagai INPUT dengan memberikan perintah pinMode (pin, OUTPUT). Dengan menggunakan perintah attachInterrupt, setiap kali ada kenaikan isyarat pada pin 2, fungsi aliran disebut. Ini meningkatkan kiraan dalam frekuensi_pemboleh ubah dengan 1. Masa semasa dan waktu cloopTime digunakan untuk kod berjalan dalam setiap 1 saat.
persediaan tidak betul () { pinMode (flowensor, INPUT); digitalWrite (flowensor, TINGGI); Serial.begin (9600); lcd.begin (16, 2); attachInterrupt (digitalPinToInterrupt (flowensor), flow, RISING); // Persediaan Mengganggu lcd.clear (); lcd.setCursor (0,0); lcd.print ("Meter Aliran Air"); lcd.setCursor (0,1); lcd.print ("Circuit Digest"); currentTime = milis (); cloopTime = currentTime; }
Fungsi if memastikan bahawa setiap detik, kod di dalamnya dijalankan. Dengan cara ini, kita dapat mengira jumlah frekuensi yang dihasilkan oleh sensor aliran air sesaat. Ciri-ciri nadi kadar aliran dari lembar data diberikan bahawa frekuensi 7.5 didarabkan dengan kadar aliran. Jadi kadar aliran adalah frekuensi / 7.5. Setelah mengetahui kadar aliran dalam liter / minit, bahagikannya dengan 60 untuk menukarnya menjadi liter / saat. Nilai ini ditambahkan ke pemboleh ubah vol untuk setiap saat.
gelung void () { currentTime = millis (); // Setiap saat, hitung dan cetak liter / jam jika (currentTime> = (cloopTime + 1000)) { cloopTime = currentTime; // Kemas kini cloopTime if (flow_frequency! = 0) { // Frekuensi nadi (Hz) = 7.5Q, Q adalah kadar aliran dalam L / min. l_minute = (aliran_kekerapan / 7.5); // (Frekuensi nadi x 60 min) / 7.5Q = kadar aliran dalam L / jam lcd.clear (); lcd.setCursor (0,0); lcd.print ("Kadar:"); lcd.print (l_minute); lcd.print ("L / M"); l_minute = l_minute / 60; lcd.setCursor (0,1); vol = vol + l_minute; lcd.print ("Vol:"); lcd.print (jilid); lcd.print ("L"); aliran_kekerapan = 0; // Tetapkan semula Counter Serial.print (l_minute, DEC); // Cetak liter / jam Serial.println ("L / Sec"); }
Fungsi lain berfungsi apabila tidak ada output dari sensor aliran air dalam jangka masa yang ditentukan.
lain { lcd.clear (); lcd.setCursor (0,0); lcd.print ("Kadar:"); lcd.print (aliran_kekerapan); lcd.print ("L / M"); lcd.setCursor (0,1); lcd.print ("Vol:"); lcd.print (jilid); lcd.print ("L"); }
Sensor Aliran Air Arduino Berfungsi
Dalam projek kami, kami menghubungkan sensor aliran air ke paip. Sekiranya injap output paip ditutup, output sensor aliran air adalah sifar (Tiada denyutan). Tidak akan ada isyarat gangguan yang dilihat pada pin 2 Arduino, dan jumlah frekuensi_ aliran akan menjadi sifar. Dalam keadaan ini, kod yang ditulis di dalam gelung lain akan berfungsi.
Sekiranya injap keluaran paip dibuka. Air mengalir melalui sensor, yang pada gilirannya memutar roda di dalam sensor. Dalam keadaan ini, kita dapat memerhatikan denyutan, yang dihasilkan dari sensor. Nadi ini akan bertindak sebagai isyarat gangguan kepada Arduino UNO. Untuk setiap isyarat gangguan (kelebihan naik), kiraan pemboleh ubah frekuensi_ akan meningkat satu. Pemboleh ubah masa dan cloPTIme semasa memastikan bahawa untuk setiap saat nilai frekuensi__ aliran diambil untuk pengiraan kadar dan isipadu aliran. Setelah pengiraan selesai, pemboleh ubah flow_frequency ditetapkan ke sifar dan keseluruhan prosedur dimulakan dari awal.
Penyelesaian yang lengkap juga terdapat dalam video yang dipautkan di bahagian bawah halaman ini. Semoga anda menikmati tutorial dan menikmati sesuatu yang berguna, jika anda mempunyai masalah, sila tinggalkan di bahagian komen atau gunakan forum kami untuk pertanyaan teknikal yang lain.