- Komponenter
- Ultralydsensormodul
- Arbeid med automatisk vannstandsregulator
- Kretsdiagram og forklaring
- Programmering
I dette Arduino-baserte automatiske vannstandsindikatoren og kontrollerprosjektet skal vi måle vannstanden ved hjelp av ultralydssensorer. Grunnleggende rektor for ultralydsmåling er basert på ECHO. Når lydbølger overføres i miljøet, går de tilbake til opprinnelsen som ECHO etter å ha rammet noen hindring. Så vi må bare beregne reisetiden for begge lydene, betyr utgående tid og returtid til opprinnelse etter å ha slått på et hinder. Og etter noen beregninger kan vi få et resultat som er avstanden. Dette konseptet brukes i vårt vannregulatorprosjekt der vannmotorpumpen slås på automatisk når vannstanden i tanken blir lav. Du kan også sjekke denne enkle vannstandsindikatorkretsen for en enklere versjon av dette prosjektet.
Komponenter
- Arduino Uno
- Ultralydsensormodul
- 16x2 LCD
- Relé 6 Volt
- ULN2003
- 7806
- PVT
- Kobbertråd
- 9 volt batteri eller 12 Volt adapter
- Koble ledninger
Ultralydsensormodul
Ultralydssensor HC-SR04 brukes til å måle avstand i området 2cm-400cm med en nøyaktighet på 3mm. Sensormodulen består av ultralydsender, mottaker og kontrollkrets.
Ultralydsensormodulen fungerer på det naturlige fenomenet ECHO av lyd. En puls sendes i omtrent 10us for å utløse modulen. Deretter sender modulen automatisk 8 sykluser med 40 KHz ultralydssignal og sjekker ekkoet. Signalet etter å ha slått med en hindring kommer tilbake og blir fanget av mottakeren. Dermed blir avstanden til hindringen fra sensoren ganske enkelt beregnet av formelen gitt som
Avstand = (tid x hastighet) / 2.
Her har vi delt produktet av hastighet og tid med 2 fordi tiden er den totale tiden det tok å nå hindringen og komme tilbake. Dermed er tiden for å nå hindringen bare halvparten av den totale tiden det tar.
Arbeid med automatisk vannstandsregulator
Arbeidet med dette prosjektet er veldig enkelt. Vi har brukt ultralydssensormodul som sender lydbølgene i vanntanken og oppdager refleksjon av lydbølger som er ECHO. Først og fremst må vi utløse ultralydsensormodulen for å overføre signal ved hjelp av Arduino og deretter vente på å motta ECHO. Arduino leser tiden mellom utløsende og mottatt ECHO. Vi vet at lydhastigheten er rundt 340 m / s. slik at vi kan beregne avstand ved å bruke gitt formel:
Avstand = (reisetid / 2) * lydens hastighet
Hvor lydhastigheten er omtrent 340m per sekund.
Ved å bruke disse metodene får vi avstand fra sensor til vannoverflate. Etter det må vi beregne vannstanden.
Nå må vi beregne den totale lengden på vanntanken. Som vi vet lengden på vanntanken, kan vi beregne vannstanden ved å trekke den resulterende avstanden fra ultralyd fra total lengde på tanken. Og vi vil få vannstandsavstanden. Nå kan vi konvertere dette vannstanden til prosentandelen vann, og kan vise det på LCD. Arbeidet med det komplette vannstandsindikatorprosjektet er vist i blokkdiagrammet nedenfor.
Kretsdiagram og forklaring
Som vist i vannstandsreguleringskretsen gitt nedenfor, er ultralydsensormodulens "trigger" og "echo" pinner direkte koblet til pin 10 og 11 i arduino. En 16x2 LCD er koblet til arduino i 4-biters modus. Kontrollpinne RS, RW og En er direkte koblet til arduino pin 7, GND og 6. Og data pin D4-D7 er koblet til 5, 4, 3 og 2 av arduino, og summer er koblet til pin 12. 6 Volt relé er også koblet til pinne 8 i arduino gjennom ULN2003 for å slå på eller av vannmotorpumpen. En spenningsregulator 7805 brukes også til å gi 5 volt til relé og til gjenværende krets.
I denne kretsen er ultralydsensormodulen plassert på toppen av bøtta (vanntank) for demonstrasjon. Denne sensormodulen vil lese avstanden mellom sensormodulen og vannoverflaten, og den vil vise avstanden på LCD-skjermen med meldingen "Water Space in Tank is:". Det betyr at vi her viser et tomt sted for avstand eller volum for vann i stedet for vannstand. På grunn av denne funksjonaliteten kan vi bruke dette systemet i hvilken som helst vanntank. Når tomt vannstand når omtrent 30 cm avstand, slår Arduino PÅ vannpumpen ved å kjøre relé. Og nå vil LCD-skjermen vise "LAV vannstand" "Motor slått PÅ", og reléstatus LED vil begynne å lyse
Nå hvis det tomme rommet når en avstand på omtrent 12 cm, slår arduino seg AV, vil reléet og LCD-skjermen vise "Tanken er full" "Motoren slått AV". Summeren piper også en stund, og reléstatus-LED vil slå seg AV.
Programmering
For å programmere Arduino for vannstandsregulator, definerer vi først alle pinnene vi skal bruke i prosjektet for å grensesnitt for eksterne enheter som relé, LCD, summer osv.
#define trigger 10 #define echo 11 #define motor 8 #define summer 12
Deretter initialiserer vi alle enhetene som brukes i prosjektet.
lcd.begin (16,2); pinMode (trigger, OUTPUT); pinMode (ekko, INNGANG); pinMode (motor, OUTPUT); pinMode (summer, UTGANG); lcd.print ("Water Level"); lcd.setCursor (0,1); lcd.print ("Indikator"); forsinkelse (2000);
Initialiser nå ultralydsensormodulen og les tiden for sending og mottakstid for ultralydbølger eller lyd ved hjelp av pulseIn (pin). Utfør deretter beregninger og vis resultatet på 16x2 LCD ved å bruke passende funksjoner.
digitalWrite (trigger, HIGH); delayMicroseconds (10); digitalWrite (utløser, LAV); delayMicroseconds (2); tid = pulseIn (ekko, HØY); avstand = tid * 340/20000; lcd.clear (); lcd.print ("Water Space In"); lcd.setCursor (0,1); lcd.print ("Tank er:"); lcd.print (avstand); lcd.print ("Cm");
Etter det sjekker vi forholdene om vanntanken er full eller vannstanden er lav, og tar tiltak deretter.
hvis (avstand <12 && temp == 0) {digitalWrite (motor, LAV); digitalWrite (summer, HØY); lcd.clear (); lcd.print ("Vanntank full"); lcd.setCursor (0,1); lcd.print ("Motor slått AV"); forsinkelse (2000); digitalWrite (summer, LAV); forsinkelse (3000); temp = 1; } annet hvis (avstand <12 && temp == 1) {digitalWrite (motor, LAV); lcd.clear (); lcd.print ("Vanntank full"); lcd.setCursor (0,1); lcd.print ("Motor slått AV"); forsinkelse (5000); }