- Komponen
- Modul Sensor Ultrasonik
- Kerja Pengawal Tahap Air Automatik
- Rajah dan Penjelasan Litar
- Pengaturcaraan
Dalam projek penunjuk dan pengawal paras air automatik berasaskan Arduino ini, kita akan mengukur paras air dengan menggunakan sensor ultrasonik. Prinsip asas pengukuran jarak ultrasonik adalah berdasarkan ECHO. Apabila gelombang bunyi disebarkan di persekitaran maka mereka kembali ke asal sebagai ECHO setelah menyerang apa-apa halangan. Oleh itu, kita hanya perlu mengira waktu perjalanannya dari kedua-dua bunyi itu bermaksud waktu keluar dan waktu kembali ke asalnya setelah menghadapi sebarang halangan. Dan setelah beberapa pengiraan kita dapat hasil yang jaraknya. Konsep ini digunakan dalam projek pengawal air kami di mana pam motor air dihidupkan secara automatik apabila paras air di tangki menjadi rendah. Anda juga boleh melihat litar penunjuk paras air sederhana ini untuk versi projek ini yang lebih mudah.
Komponen
- Arduino Uno
- Modul sensor ultrasonik
- LCD 16x2
- Relay 6 Volt
- ULN2003
- 7806
- PVT
- Dawai tembaga
- Bateri 9 volt atau 12 Voltadaptor
- Menyambung wayar
Modul Sensor Ultrasonik
Sensor ultrasonik HC-SR04 digunakan untuk mengukur jarak dalam jarak 2cm-400cm dengan ketepatan 3mm. Modul sensor terdiri daripada pemancar ultrasonik, penerima dan litar kawalan.
Modul sensor ultrasonik berfungsi pada fenomena semula jadi ECHO suara. Nadi dihantar sekitar 10us untuk mencetuskan modul. Setelah itu modul secara automatik menghantar 8 kitaran isyarat ultrasound 40 KHz dan memeriksa gema. Isyarat setelah menyerang dengan rintangan kembali dan ditangkap oleh penerima. Oleh itu jarak halangan dari sensor hanya dikira dengan formula yang diberikan sebagai
Jarak = (masa x kelajuan) / 2.
Di sini kita telah membahagikan produk dengan kelajuan dan masa dengan 2 kerana masa adalah jumlah masa yang diperlukan untuk mencapai halangan dan kembali. Oleh itu, masa untuk mencapai halangan hanyalah separuh daripada jumlah masa yang diambil.
Kerja Pengawal Tahap Air Automatik
Mengendalikan projek ini sangat mudah, kami telah menggunakan modul sensor Ultrasonik yang menghantar gelombang bunyi di tangki air dan mengesan pantulan gelombang bunyi yang ECHO. Pertama sekali kita perlu mencetuskan modul sensor ultrasonik untuk menghantar isyarat dengan menggunakan Arduino dan kemudian menunggu untuk menerima ECHO. Arduino membaca masa antara mencetuskan dan menerima ECHO. Kita tahu bahawa kelajuan suara sekitar 340 m / s. supaya kita dapat mengira jarak dengan menggunakan formula yang diberikan:
Jarak = (masa perjalanan / 2) * kelajuan suara
Di mana kelajuan suara lebih kurang 340m sesaat.
Dengan menggunakan kaedah ini kita mendapat jarak dari sensor ke permukaan air. Selepas itu kita perlu mengira paras air.
Sekarang kita perlu mengira jumlah panjang tangki air. Seperti yang kita ketahui panjang tangki air maka kita dapat mengira paras air dengan mengurangkan jarak yang dihasilkan dari ultrasonik dari jumlah panjang tangki. Dan kita akan mendapat jarak permukaan air. Sekarang kita dapat mengubah paras air ini menjadi persen air, dan dapat memaparkannya pada LCD. Kerja projek penunjuk paras air lengkap ditunjukkan dalam gambarajah blok di bawah.
Rajah dan Penjelasan Litar
Seperti yang ditunjukkan dalam litar pengawal paras air yang diberikan di bawah ini, pin "trigger" dan "echo" modul sensor ultrasonik disambungkan secara langsung ke pin 10 dan 11 arduino. LCD 16x2 disambungkan dengan arduino dalam mod 4-bit. Pin kawalan RS, RW dan En disambungkan secara langsung ke arduino pin 7, GND dan 6. Dan pin data D4-D7 disambungkan ke arduino 5, 4, 3 dan 2, dan buzzer disambungkan pada pin 12. Relay 6 Volt adalah juga disambungkan pada pin 8 arduino melalui ULN2003 untuk menghidupkan atau mematikan pam motor air. Pengatur voltan 7805 juga digunakan untuk menyediakan relay 5 volt dan litar yang tersisa.
Dalam litar ini modul sensor Ultrasonik diletakkan di bahagian atas baldi (tangki air) untuk demonstrasi. Modul sensor ini akan membaca jarak antara modul sensor dan permukaan air, dan akan menunjukkan jarak di layar LCD dengan pesan "Ruang Air di Tangki adalah:". Ini bermaksud kita di sini menunjukkan tempat jarak atau isipadu kosong untuk air dan bukannya paras air. Oleh kerana fungsi ini kita dapat menggunakan sistem ini di tangki air mana pun. Apabila paras air kosong mencapai jarak kira-kira 30 cm maka Arduino menghidupkan pam air dengan menggunakan relay. Dan sekarang LCD akan menunjukkan "Aras Air RENDAH" "Motor dihidupkan", dan LED status Relay akan mula menyala
Sekarang jika ruang kosong mencapai jarak kira-kira 12 cm arduino mematikan relay dan LCD akan menunjukkan "Tangki penuh" "Motor Dimatikan". Buzzer juga berbunyi bip untuk beberapa lama dan LED status relay akan dimatikan.
Pengaturcaraan
Untuk memprogram Arduino untuk pengawal paras air, pertama-tama kita menentukan semua pin yang akan kita gunakan dalam projek untuk menghubungkan peranti luaran seperti relay, LCD, buzzer dll.
#define trigger 10 #define echo 11 #define motor 8 #define buzzer 12
Kemudian kami memulakan semua peranti yang digunakan dalam projek.
lcd.begin (16,2); pinMode (pencetus, OUTPUT); pinMode (gema, INPUT); pinMode (motor, OUTPUT); pinMode (buzzer, OUTPUT); lcd.print ("Paras Air"); lcd.setCursor (0,1); lcd.print ("Petunjuk"); kelewatan (2000);
Sekarang mulakan modul sensor ultrasonik dan baca waktu menghantar dan menerima masa gelombang atau suara ultrasonik dengan menggunakan pulseIn (pin). Kemudian lakukan pengiraan dan paparkan hasilnya pada LCD 16x2 dengan menggunakan fungsi yang sesuai.
digitalWrite (pencetus, TINGGI); kelewatanMikrodetik (10); digitalWrite (pencetus, RENDAH); kelewatanMikrodetik (2); time = pulseIn (gema, TINGGI); jarak = masa * 340/20000; lcd.clear (); lcd.print ("Ruang Air Di"); lcd.setCursor (0,1); lcd.print ("Tank adalah:"); lcd.print (jarak); lcd.print ("Cm");
Setelah itu kami memeriksa keadaan jika tangki air penuh atau paras air RENDAH, dan mengambil tindakan sewajarnya.
jika (jarak <12 && temp == 0) {digitalWrite (motor, RENDAH); digitalWrite (buzzer, TINGGI); lcd.clear (); lcd.print ("Tangki Air Penuh"); lcd.setCursor (0,1); lcd.print ("Motor Dimatikan"); kelewatan (2000); digitalWrite (buzzer, RENDAH); kelewatan (3000); temp = 1; } lain jika (jarak <12 && temp == 1) {digitalWrite (motor, RENDAH); lcd.clear (); lcd.print ("Tangki Air Penuh"); lcd.setCursor (0,1); lcd.print ("Motor Dimatikan"); kelewatan (5000); }