- Komponen Diperlukan
- Sensor Aliran Air YFS201
- Diagram Sirkuit
- Kode Sensor Aliran Air Arduino
- Sensor Aliran Air Arduino Bekerja
Jika Anda pernah mengunjungi perusahaan manufaktur berskala besar, hal pertama yang akan Anda perhatikan adalah semuanya otomatis. Industri Minuman Ringan dan Kimia harus terus-menerus mengukur dan mengkuantifikasi cairan yang mereka tangani selama proses otomatisasi ini, dan sensor yang paling umum digunakan untuk mengukur aliran cairan adalah Sensor Aliran.. Dengan menggunakan sensor aliran dengan mikrokontroler seperti Arduino, kita dapat menghitung laju aliran, dan memeriksa volume cairan yang telah melewati pipa, dan mengontrolnya sesuai kebutuhan. Selain industri manufaktur, sensor aliran juga dapat ditemukan di sektor pertanian, pengolahan makanan, pengelolaan air, industri pertambangan, daur ulang air, mesin kopi, dll. Selain itu, sensor aliran air akan menjadi tambahan yang baik untuk proyek seperti Dispenser Air Otomatis dan Sistem Irigasi Cerdas di mana kita perlu memantau dan mengontrol aliran cairan.
Dalam proyek ini, kami akan membangun sensor aliran air menggunakan Arduino. Kami akan menghubungkan sensor aliran air dengan Arduino dan LCD, dan memprogramnya untuk menampilkan volume air, yang telah melewati katup. Untuk proyek khusus ini, kami akan menggunakan sensor aliran air YF-S201, yang menggunakan efek hall untuk merasakan laju aliran cairan.
Komponen Diperlukan
- Sensor Aliran Air
- Arduino UNO
- LCD (16x2)
- Konektor dengan ulir internal
- Menghubungkan kabel
- Pipa
Sensor Aliran Air YFS201
Sensornya memiliki 3 kabel MERAH, KUNING, dan HITAM seperti terlihat pada gambar di bawah ini. Kabel merah digunakan untuk tegangan suplai yang berkisar dari 5V hingga 18V dan kabel hitam terhubung ke GND. Kabel kuning digunakan untuk output (pulsa), yang dapat dibaca oleh MCU. Sensor aliran air terdiri dari sensor pinwheel yang mengukur jumlah cairan yang melewatinya.
Cara kerja sensor aliran air YFS201 mudah dipahami. Sensor aliran air bekerja berdasarkan prinsip efek hall. Efek hall adalah produksi beda potensial di seluruh konduktor listrik ketika medan magnet diterapkan dalam arah tegak lurus terhadap aliran arus. Sensor aliran air terintegrasi dengan sensor efek hall magnetik, yang menghasilkan pulsa listrik di setiap putaran. Desainnya sedemikian rupa sehingga sensor efek hall ditutup dari air, dan memungkinkan sensor tetap aman dan kering.
Gambar modul sensor YFS201 saja ditunjukkan di bawah ini.
Untuk menghubungkan dengan pipa dan sensor aliran air, saya menggunakan dua konektor dengan ulir betina seperti yang ditunjukkan di bawah ini.
Menurut Spesifikasi YFS201, arus maksimum yang diambilnya pada 5V adalah 15mA, dan laju aliran kerja adalah 1 hingga 30 liter / menit. Ketika cairan mengalir melalui sensor, itu membuat kontak dengan sirip roda turbin, yang ditempatkan di jalur cairan yang mengalir. Poros roda turbin dihubungkan ke sensor efek hall. Karena itu, setiap kali air mengalir melalui katup, ia menghasilkan pulsa. Sekarang, yang harus kita lakukan adalah mengukur waktu untuk plus atau menghitung jumlah pulsa dalam 1 detik dan kemudian menghitung laju aliran dalam liter per jam (L / Hr) dan kemudian menggunakan rumus konversi sederhana untuk mencari volumenya air yang melewatinya. Untuk mengukur pulsa, kita akan menggunakan Arduino UNO. Gambar di bawah ini menunjukkan pinout dari sensor aliran air.
Diagram Sirkuit
The aliran air sensor sirkuit diagram ditunjukkan di bawah untuk antarmuka sensor aliran air dan LCD (16x2) dengan Arduino. Jika Anda baru mengenal Arduino dan LCD, Anda dapat mempertimbangkan untuk membaca Artikel Interfacing Arduino dan LCD ini.
Sambungan sensor aliran air dan LCD (16x2) dengan Arduino diberikan di bawah ini dalam format tabel. Perhatikan bahwa pot terhubung di antara 5V dan GND dan pot's pin 2 terhubung dengan pin V0 pada LCD.
S.NO |
Pin sensor aliran air |
Pin Arduino |
1 |
Kabel Merah |
5V |
2 |
Hitam |
GND |
3 |
Kuning |
A0 |
S.No |
LCD |
Arduino |
1 |
Vss |
GND (rel dasar papan tempat memotong roti) |
2 |
VDD |
5V (Rel positif dari papan tempat memotong roti) |
3 |
Untuk koneksi dengan V0 periksa catatan di atas |
|
4 |
RS |
12 |
5 |
RW |
GND |
6 |
E |
11 |
7 |
D7 |
9 |
8 |
D6 sampai D3 |
3 sampai 5 |
Saya menggunakan papan tempat memotong roti, dan setelah koneksi selesai sesuai diagram sirkuit yang ditunjukkan di atas, pengaturan pengujian saya terlihat seperti ini.
Kode Sensor Aliran Air Arduino
Kode Arduino sensor aliran air lengkap diberikan di bagian bawah halaman. Penjelasan kode tersebut adalah sebagai berikut.
Kami menggunakan file header LCD, yang memudahkan antarmuka LCD kami dengan Arduino, dan pin 12,11,5,4,3,9 dialokasikan untuk transfer data antara LCD dan Arduino. Pin keluaran sensor dihubungkan dengan pin 2 Arduino UNO.
volatile int flow_frequency; // Mengukur pulsa sensor aliran // Hitung liter / jam float vol = 0.0, l_minute; flowensor char unsigned = 2; // Input Sensor tidak bertanda long currentTime; cloopTime panjang tanpa tanda tangan; #include
Fungsi ini adalah rutinitas layanan interupsi dan ini akan dipanggil setiap kali ada sinyal interupsi di pin2 Arduino UNO. Untuk setiap sinyal interupsi, jumlah variabel flow_frequency akan ditingkatkan 1. Untuk detail lebih lanjut tentang interupsi dan cara kerjanya, Anda dapat membaca artikel tentang interupsi Arduino ini.
void flow () // Fungsi interupsi { flow_frequency ++; }
Pada void setup, kami memberitahu MCU bahwa pin 2 dari Arduino UNO digunakan sebagai INPUT dengan memberikan perintah pinMode (pin, OUTPUT). Dengan menggunakan perintah attachInterrupt, setiap kali ada kenaikan sinyal di pin 2, fungsi aliran dipanggil. Ini meningkatkan hitungan di variabel flow_frequency sebesar 1. Waktu saat ini dan cloopTime digunakan agar kode dijalankan setiap 1 detik.
void setup () { pinMode (flowensor, INPUT); digitalWrite (sensor aliran, TINGGI); Serial.begin (9600); lcd.begin (16, 2); attachmentInterrupt (digitalPinToInterrupt (flowensor), flow, RISING); // Setup Interrupt lcd.clear (); lcd.setCursor (0,0); lcd.print ("Pengukur Aliran Air"); lcd.setCursor (0,1); lcd.print ("Circuit Digest"); currentTime = millis (); cloopTime = currentTime; }
Fungsi if memastikan bahwa untuk setiap detik kode di dalamnya berjalan. Dengan cara ini, kita dapat menghitung banyaknya frekuensi yang dihasilkan oleh sensor aliran air per detik. Karakteristik pulsa laju aliran dari lembar data diberikan bahwa frekuensi adalah 7,5 dikalikan dengan laju aliran. Jadi laju alirannya adalah frekuensi / 7,5. Setelah mengetahui laju aliran dalam liter / menit, bagi dengan 60 untuk mengubahnya menjadi liter / detik. Nilai ini ditambahkan ke variabel vol untuk setiap satu detik.
void loop () { currentTime = millis (); // Setiap detik, hitung dan cetak liter / jam if (currentTime> = (cloopTime + 1000)) { cloopTime = currentTime; // Memperbarui cloopTime if (flow_frequency! = 0) { // Frekuensi pulsa (Hz) = 7.5Q, Q adalah laju aliran dalam L / menit. l_minute = (flow_frequency / 7.5); // (Frekuensi pulsa x 60 menit) / 7.5Q = debit dalam L / jam lcd.clear (); lcd.setCursor (0,0); lcd.print ("Tarif:"); 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 (vol); lcd.print ("L"); flow_frequency = 0; // Reset Counter Serial.print (l_minute, DEC); // Cetak liter / jam Serial.println ("L / Detik"); }
Fungsi else berfungsi jika tidak ada keluaran dari sensor aliran air dalam rentang waktu tertentu.
lain { lcd.clear (); lcd.setCursor (0,0); lcd.print ("Tarif:"); lcd.print (flow_frequency); lcd.print ("L / M"); lcd.setCursor (0,1); lcd.print ("Vol:"); lcd.print (vol); lcd.print ("L"); }
Sensor Aliran Air Arduino Bekerja
Dalam proyek kami, kami menghubungkan sensor aliran air ke pipa. Jika katup keluaran pipa ditutup, keluaran sensor aliran air adalah nol (Tidak ada pulsa). Tidak akan ada sinyal interupsi yang terlihat pada pin 2 Arduino, dan jumlah flow_frequency akan menjadi nol. Dalam kondisi ini, kode yang tertulis di dalam loop else akan berfungsi.
Jika katup keluaran pipa dibuka. Air mengalir melalui sensor, yang selanjutnya memutar roda di dalam sensor. Pada kondisi ini, kita dapat mengamati pulsa yang dibangkitkan dari sensor. Pulsa ini akan bertindak sebagai sinyal interupsi ke Arduino UNO. Untuk setiap sinyal interupsi (tepi naik), jumlah variabel flow_frequency akan dinaikkan satu. Variabel waktu dan hubungan saat ini memastikan bahwa untuk setiap satu detik nilai dari frekuensi_waktu diambil untuk penghitungan laju aliran dan volume. Setelah kalkulasi selesai, variabel flow_frequency diatur ke nol dan seluruh prosedur dimulai dari awal.
Pekerjaan lengkap juga dapat ditemukan dalam video yang ditautkan di bagian bawah halaman ini. Semoga Anda menikmati tutorial dan menikmati sesuatu yang bermanfaat, jika Anda memiliki masalah, silakan tinggalkan di bagian komentar atau gunakan forum kami untuk pertanyaan teknis lainnya.