- Kinakailangan ang Mga Bahagi
- YFS201 Water Flow Sensor
- Diagram ng Circuit
- Code ng Sensor ng Daloy ng Tubig ng Arduino
- Gumagana ang Arduino Water Flow Sensor
Kung nabisita mo na ang mga malalaking kumpanya ng pagmamanupaktura, ang unang bagay na mapapansin mo ay lahat sila ay awtomatiko. Ang mga industriya ng Soft Drink at Chemical na industriya ay dapat na patuloy na sukatin at bilangin ang mga likido na hinahawak nila sa proseso ng pag-aautomat na ito, at ang pinakakaraniwang sensor na ginagamit upang masukat ang daloy ng isang likido ay isang Flow Sensor. Sa pamamagitan ng paggamit ng isang flow sensor na may isang microcontroller tulad ng Arduino, maaari nating kalkulahin ang rate ng daloy, at suriin ang dami ng likido na dumaan sa isang tubo, at makontrol ito ayon sa kinakailangan. Bukod sa mga industriya ng pagmamanupaktura, ang mga sensor ng daloy ay matatagpuan din sa sektor ng agrikultura, pagproseso ng pagkain, pamamahala ng tubig, industriya ng pagmimina, pag-recycle ng tubig, mga makina ng kape, atbp. Dagdag dito, ang isang sensor ng daloy ng tubig ay magiging isang mahusay na karagdagan sa mga proyekto tulad ng Awtomatikong Dispenser ng Tubig at Smart Irrigation System kung saan kailangan nating subaybayan at kontrolin ang daloy ng mga likido.
Sa proyektong ito, magtatayo kami ng isang sensor ng daloy ng tubig gamit ang Arduino. Kami ay interface ng daloy ng tubig sensor na may Arduino at LCD, at programa ito upang ipakita ang dami ng tubig, na kung saan ay dumaan sa balbula. Para sa partikular na proyekto, gagamitin namin ang YF-S201 na daloy ng sensor ng tubig, na gumagamit ng isang hall effect upang maunawaan ang daloy ng likido.
Kinakailangan ang Mga Bahagi
- Sensor ng Daloy ng Tubig
- Arduino UNO
- LCD (16x2)
- Connector na may panloob na pag-thread
- Mga kumokonekta na mga wire
- Tubo
YFS201 Water Flow Sensor
Ang sensor ay mayroong 3 wires na PULA, DILAW, at BLACK tulad ng ipinakita sa pigura sa ibaba. Ginagamit ang pulang kawad para sa boltahe ng supply na saklaw mula 5V hanggang 18V at ang itim na kawad ay konektado sa GND. Ang dilaw na kawad ay ginagamit para sa output (pulses), na maaaring mabasa ng isang MCU. Ang sensor ng daloy ng tubig ay binubuo ng isang sensor ng pinwheel na sumusukat sa dami ng likido na dumaan dito.
Ang pagtatrabaho ng YFS201 water flow sensor ay simpleng maunawaan. Gumagana ang sensor ng daloy ng tubig sa prinsipyo ng epekto ng hall. Ang epekto ng hall ay ang paggawa ng potensyal na pagkakaiba sa isang konduktor ng kuryente kapag ang isang magnetic field ay inilalapat sa direksyon na patayo sa daloy ng kasalukuyang. Ang sensor ng daloy ng tubig ay isinama sa isang sensor ng epekto ng magnetic hall, na bumubuo ng isang de-kuryenteng pulso sa bawat rebolusyon. Ang disenyo nito ay nasa isang paraan na ang sensor ng hall effect ay natatakpan mula sa tubig, at pinapayagan ang sensor na manatiling ligtas at tuyo.
Ang larawan ng module ng sensor ng YFS201 lamang ay ipinapakita sa ibaba.
Upang kumonekta sa tubo at sensor ng daloy ng tubig, gumamit ako ng dalawang konektor sa isang babaeng thread tulad ng ipinakita sa ibaba.
Ayon sa Mga pagtutukoy ng YFS201, ang maximum na kasalukuyang kinukuha nito sa 5V ay 15mA, at ang gumaganang rate ng daloy ay 1 hanggang 30 litro / minuto. Kapag ang likido ay dumadaloy sa pamamagitan ng sensor, nakikipag-ugnay ito sa mga palikpik ng gulong turbine, na inilalagay sa daanan ng umaagos na likido. Ang baras ng gulong turbine ay konektado sa isang sensor ng epekto ng hall. Dahil dito, tuwing dumadaloy ang tubig sa balbula bumubuo ito ng mga pulso. Ngayon, ang kailangan lamang nating gawin ay upang masukat ang oras para sa mga plus o upang bilangin ang bilang ng mga pulso sa 1 segundo at pagkatapos ay kalkulahin ang mga rate ng daloy sa litro bawat oras (L / Hr) at pagkatapos ay gumamit ng simpleng pormula ng conversion upang hanapin ang dami ng tubig na dumaan dito. Upang sukatin ang pulso, gagamitin namin ang Arduino UNO. Ipinapakita sa iyo ng larawan sa ibaba ang pinout ng sensor ng daloy ng tubig.
Diagram ng Circuit
Ang diagram ng circuit ng sensor ng daloy ng tubig ay ipinapakita sa ibaba upang mai-interface ang isang sensor ng daloy ng tubig at LCD (16x2) kasama ang Arduino. Kung bago ka sa Arduino at LCDs, maaari mong isaalang-alang ang pagbabasa ng Interfacing Arduino at LCD Article na ito.
Ang koneksyon ng sensor ng daloy ng tubig at LCD (16x2) sa Arduino ay ibinibigay sa ibaba sa format ng talahanayan. Tandaan na ang palayok ay konektado sa pagitan ng 5V at GND at ang pin ng palayok 2 ay konektado sa V0 pin ng LCD.
S.NO |
Pin ng sensor ng Daloy ng Tubig |
Arduino Pins |
1 |
Red Wire |
5V |
2 |
Itim |
GND |
3 |
Dilaw |
A0 |
S.Hindi |
LCD |
Arduino |
1 |
Vss |
GND (ground rail ng breadboard) |
2 |
VDD |
5V (Positibong riles ng breadboard) |
3 |
Para sa koneksyon sa V0 suriin ang tala sa itaas |
|
4 |
Ang RS |
12 |
5 |
RW |
GND |
6 |
E |
11 |
7 |
D7 |
9 |
8 |
D6 hanggang D3 |
3 hanggang 5 |
Gumamit ako ng isang breadboard, at sa sandaling ang koneksyon ay tapos na alinsunod sa diagram ng circuit na ipinakita sa itaas, ang aking set-up na pagsubok ay mukhang ganito.
Code ng Sensor ng Daloy ng Tubig ng Arduino
Ang kumpletong sensor ng daloy ng tubig na Arduino code ay ibinibigay sa ilalim ng pahina. Ang paliwanag ng code ay ang mga sumusunod.
Ginagamit namin ang header file ng LCD, na nagpapagaan sa aming interfacing ng LCD sa Arduino, at ang mga pin na 12,11,5,4,3,9 ay inilaan para sa paglilipat ng data sa pagitan ng LCD at Arduino. Ang pin ng output ng sensor ay konektado sa pin 2 ng Arduino UNO.
pabagu-bago ng int flow_frequency; // Sinusukat ang pulso ng sensor ng sensor // Kinakalkula na litro / oras na float vol = 0.0, l_minute; unsigned char flowensor = 2; // Sensor Input unsigned long currentTime; hindi pinirmahan mahabang cloopTime; # isama
Ang pagpapaandar na ito ay isang nakakagambala na gawain sa serbisyo at tatawagin ito tuwing mayroong isang nakakagambala na signal sa pin2 ng Arduino UNO. Para sa bawat signal na nakakagambala, ang bilang ng variable flow_frequency ay tataas ng 1. Para sa higit pang mga detalye sa mga nakakagambala at ang kanilang pagtatrabaho, maaari mong basahin ang artikulong ito sa Arduino interrupts.
walang bisa na daloy () // Makagambala function { flow_frequency ++; }
Sa void setup, sasabihin namin sa MCU na ang pin 2 ng Arduino UNO ay ginagamit bilang INPUT sa pamamagitan ng pagbibigay ng command pinMode (pin, OUTPUT). Sa pamamagitan ng paggamit ng attachInterrupt command, tuwing may pagtaas sa signal sa pin 2, ang flow function ay tinatawag. Pinapataas nito ang bilang sa variable flow_frequency ng 1. Ang kasalukuyang oras at cloopTime ay ginagamit para sa code na tumakbo sa bawat 1 segundo.
void setup () { pinMode (flowensor, INPUT); digitalWrite (flowensor, TAAS); Serial.begin (9600); lcd.begin (16, 2); attachInterrupt (digitalPinToInterrupt (flowensor), flow, RISING); // Setup Interrupt lcd.clear (); lcd.setCursor (0,0); lcd.print ("Water Flow Meter"); lcd.setCursor (0,1); lcd.print ("Circuit Digest"); currentTime = millis (); cloopTime = kasalukuyangTime; }
Tinitiyak ng function na kung para sa bawat isang segundo ang code sa loob nito ay tumatakbo. Sa ganitong paraan, mabibilang namin ang bilang ng mga frequency na gumagawa ng sensor ng daloy ng tubig bawat segundo. Ang mga katangian ng rate ng pulso ng daloy mula sa datasheet ay binibigyan na ang dalas ay 7.5 na pinarami ng rate ng daloy. Kaya't ang rate ng daloy ay dalas / 7.5. Matapos hanapin ang rate ng daloy na nasa litro / minuto, hatiin ito sa 60 upang i-convert ito sa litro / sec. Ang halagang ito ay idinagdag sa variable ng vol para sa bawat isang segundo.
void loop () { currentTime = millis (); // Tuwing segundo, kalkulahin at i-print ang litro / oras kung (currentTime> = (cloopTime + 1000)) { cloopTime = currentTime; // Updates cloopTime if (flow_frequency! = 0) { // Pulse frequency (Hz) = 7.5Q, Q ay daloy ng rate sa L / min. l_minute = (flow_frequency / 7.5); // (Pulse frequency x 60 min) / 7.5Q = flowrate sa L / hour lcd.clear (); lcd.setCursor (0,0); lcd.print ("Rate:"); 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); // Print liters / hour Serial.println ("L / Sec"); }
Gumagana ang ibang pag-andar kapag walang output mula sa sensor ng daloy ng tubig sa loob ng naibigay na tagal ng panahon.
iba pa { lcd.clear (); lcd.setCursor (0,0); lcd.print ("Rate:"); lcd.print (flow_frequency); lcd.print ("L / M"); lcd.setCursor (0,1); lcd.print ("Vol:"); lcd.print (vol); lcd.print ("L"); }
Gumagana ang Arduino Water Flow Sensor
Sa aming proyekto, kinonekta namin ang sensor ng daloy ng tubig sa isang tubo. Kung ang output balbula ng tubo ay sarado, ang output ng sensor ng daloy ng tubig ay zero (Walang pulso). Walang makikitang signal na nakakagambala sa pin 2 ng Arduino, at ang bilang ng flow_frequency ay magiging zero. Sa kondisyong ito, gagana ang code na nakasulat sa loob ng ibang loop.
Kung ang output balbula ng tubo ay binuksan. Ang tubig ay dumadaloy sa pamamagitan ng sensor, na siya namang ang umiikot ng gulong sa loob ng sensor. Sa kondisyong ito, maaari nating obserbahan ang mga pulso, na nabuo mula sa sensor. Ang mga pulso na ito ay kikilos bilang isang nakakagambala na signal sa Arduino UNO. Para sa bawat signal ng nakakagambala (tumataas na gilid), ang bilang ng variable ng flow_frequency ay tataas ng isa. Ang kasalukuyang oras at variable ng cloopTIme ay tinitiyak na para sa bawat isang segundo ang halaga ng flow_frequency ay kinuha para sa pagkalkula ng rate ng daloy at dami. Matapos ang pagkalkula ay tapos na, ang variable ng flow_frequency ay nakatakda sa zero at ang buong pamamaraan ay nagsimula mula sa simula.
Ang kumpletong pagtatrabaho ay maaari ding matagpuan sa video na naka-link sa ilalim ng pahinang ito. Inaasahan kong nasiyahan ka sa tutorial at nasiyahan sa isang bagay na kapaki-pakinabang, kung mayroon kang anumang mga problema, mangyaring iwanan ang mga ito sa seksyon ng komento o gamitin ang aming mga forum para sa iba pang mga teknikal na katanungan.