Avståndsmätare Digitala System EITA15 2019-05-21 Grupp 7 Abdelsalem Yabrag, Abdulhadi kikar, Fredrik Peterson, Jesper Annefors Handledare: Bertil Lindvall, Lars-Göran Larsson
Abstract There are some situations where it may be tough to use a measuring tape or folding rule in an accurate way. Using an electronic device to measure distances could potentially simplify these situations significantly. We have designed and constructed a circuit that measures distances while holding down a button. The circuit measures the distance by sending out ultrasound and calculate the time it takes for the soundwave to come back to the sensor and convert it into centimeters. The circuit also contains an LCD screen to show the distance and two LEDs, one that indicates when the device is on and one that indicates when the button is pushed. The circuit is able to measure distances between 2 centimeters and 4 meters, rounded to the nearest centimeter, in real time while holding down a button indicated by a green LED. The results show that the circuit, in most cases, could easily be used as a substitute to measuring tapes. 1
Innehållsförteckning 1. Inledning. 3 2. Teori. 3 2.1 Mikrokontroller... 3 2.2 Skärm. 3 2.3 Ultraljud. 4 2.4 Kristalloscillator. 4 2.5 Knapp. 4 3. Metod... 4 4. Resultat 5 5. Diskussion 5 6. Referenser 6 7. Appendix.. 6 2
1. Inledning Att behöva mäta avstånd kan ibland bli problematiskt då där inte finns en vinkelrät yta att luta sitt mätverktyg emot. Med hjälp av en krets som använder ultraljud för att beräkna avståndet så slipper man sviktande tumstockar och måttband som böjs under sin egen vikt. En sådan krets begränsas dock inte till att endast användas som substitution till måttband och tumstockar. Avståndsmätaren har istället större användning i stora system som t.ex i robotar eller som backsystem i bilar. En avståndsmätare som använder ultraljud kan byggas med olika komplexitet beroende på vad man vill åstadkomma. Målet med projektet var att bygga en avståndsmätare som skickar iväg en ljudvåg och sedan beräknar och sedan visar avståndet på skärm då en knapp hålls intryckt. Först presenteras och förklaras ett antal olika komponenter som används i kretsen. Detta ligger i teoridelen som följs av metoden som redogör materialet och tillvägagångssättet av projektet. Därefter redovisas resultatet och diskussionen tar till sist upp problem som stötts på under projektets gång samt eventuella utvecklingsförslag på den färdiga kretsen. 2. Teori I kretsen används ett antal olika komponenter för att avståndsmätaren ska fungera som planerat. Kretsen använder ultraljud för att beräkna avstånd med hjälp av en timer i mikrokontrollern när en knapp trycks ned. Resultatet visas på en skärm som uppdateras i realtid. Kretsen har även två LED-lampor för att indikera tillstånd. 2.1 Mikrokontroller En mikrokontroller är en liten dator med programmerbara input/output och ett eget minne byggt i en enda integrerad krets. I projektet används mikrokontrollern ATmega1284 som programmeras i C och debuggas med hjälp av en JTAG Ice debugger. 2.2 Skärm Den typ av skärm som används är en alfanumerisk LCD display (se datablad för GDM1602K). Displayen har ett antal förprogrammerade instruktioner som listas i databladet. Några exempel på instruktioner som finns är att sätta positionen på markören, vilket håll tecken skrivs ut samt skrivning av tecken. För att använda en instruktion måste E signalen (pin 6) först sättas till 1. Därefter väljs vad som ska utföras genom att sätta resterande signaler på pin 4 till 14 enligt önskad instruktion i tabellen i databladet. Slutligen Sätts E signalen återigen till 0 för att utföra instruktionen. 3
Eventuella fördröjningar kan behövas för att timingen ska fungera. Den minsta fördröjning som krävs kan variera mellan olika instruktioner. 2.3 Ultraljud I projektet används en ultraljudsensor (HC-SR04) som används för att beräkna avstånd mellan två och 400cm. Den gör så genom att skicka ut åtta pulser med ultraljud då det läggs ut en logisk etta på sensorns input i minst 10 µs. Då pulserna studsar tillbaka och sensorn registrerar ljudvågorna indikerar sensorn detta genom att lägga en logisk etta på sensorns output. 2.4 Kristalloscillator En kristalloscillator är en komponent som får en elektrisk signal att svänga med hjälp av en vibrerande kristall. Man kan få dessa kristalloscillatorer att svänga med en konstant frekvens och har därför en rad olika användningsområden. I detta projekt används kristalloscillatorn som en klocka. 2.5 Knapp Kretsen använder sig av en enkel tryckknapp. Den fungerar som ett avbrott när man inte trycker på knappen men sluter kretsen då knappen hålls intryckt. Tryckknappen är kopplad så att den lägger ut en logisk etta till en pin på mikrokontrollern då den inte är nedtryckt men när knappen trycks ned kortsluts strömmen till den pin på mikrokontrollern knappen är kopplad till och det läggs istället ut en logisk nolla på denna pin. 3. Metod Arbetsprocessen har bestått av komponentbaserade faser. Med andra ord har arbetet skridit framåt genom att först koppla ihop komponenten med mikroprocessorn enligt bilaga A. Därefter påbörjades en undersökning för huruvida komponenten fungerade och var korrekt kopplad genom att pröva en enkel funktion och se om funktionen fungerade som planerat. Diverse datablad har använts för att förstå hur alla komponenter fungerar hur de ska användas. Projektet började med att mikroprocessorn löddes fast på ett kort och en LED-lampa kopplades till en av dess pinnar. Därefter skrevs C-kod för att få lampan att lysa. Sedan kopplades ännu en LED-lampa ihop med mikroprocessorn, och även en knapp. Knappen och LED-lampan prövades genom att C-kod skrevs för att få lampan att lysa vid nedtryckt knapp. Vid nästa moment kopplades en ultraljudssensor ihop med mikroprocessorn och för att pröva den så skrevs C-kod för att den skulle skicka en signal och när sensorn fick tillbaka en signal så skulle en lampa lysa. Därefter kopplades en LCD-skärm ihop med mikroprocessorn och C-kod skrevs sen för att undersöka dess funktioner och se om vi kunde skriva till den, och i sinom tid skrevs även 4
metoder för att lättare kunna skriva längre texter direkt till LCD-skärmen. För att få mer exakta resultat så kopplades därefter en extern timer in och för att pröva dess funktionalitet så skrevs C-kod för att få timern att tända och släcka en LED-lampa mellan ett visst intervall. Till sist så skrevs C-kod för att få alla komponenter att tillsammans fungera som en avståndsmätare. Vid knapptryckning tänds en lampa och sensorn skickar en signal till mikroprocessorn som aktiverar timern. När sensorn får tillbaka signalen så stoppas timern och processorn räknar ut avståndet beroende på hur lång tid det tog för signalen att ta sig fram och tillbaka över sträckan. Resultatet skrivs sedan ut till LCD-skärmen. 4. Resultat Resultatet för projektet blev som förväntat. Avståndsmätaren skickade en ultraljudssignal vid nedtryckt knapp och kan med hjälp av tidsintervallet mellan den skickade signalen och den mottagna signalen, räkna ut avståndet mellan avståndsmätaren och framförliggande objekt. Resultatet visades därefter på LED-skärmen. 5. Diskussion Syftet med projektet var att bygga en avståndsmätare som avrundar det uppmätta avståndet i centimeter. Efter flera tester där avstånden har mätts upp manuellt och jämfört dessa med de avstånd som mätts upp med avståndsmätaren så kan det konstateras att avståndsmätaren fungerar felfritt. Under projektet gång så har diverse problem uppstått. Främst under processen då projektets alla komponenter blivit ihopkopplade och kod skulle skrivas för att få alla komponenter att kommunicera med varandra via mikroprocessorn för att kunna uppnå önskat resultat. Metoden för att bygga projektet har fungerat exceptionellt bra då det ledde till att arbetet gick snabbt och effektivt. Det ledde till att alla komponenter kunde sättas ihop snabbt och därefter se hur de fungerade samt pröva dem. Den möjliga nackdelen med denna metod kan vara att det ledde till att arbetet skred fram snabbt och den totala förståelsen för vardera komponent blev mindre i och med att informationssökningen för varje komponent stannade av då komponenten kopplades in och gav väntat resultat. (De källor som har använts har enbart varit datablad av olika slag för de olika komponenterna. Syftet med databladen är att förklara hur komponenternas specifikationer ser ut och hur komponenterna ska programmeras för önskat resultat. I och med att vi har använt databladen för arbetet och fått önskat resultat utifrån informationen de stått för så kan vi bara anta att alla de databladen är korrekta och att det inte finns någon anledning till att tvivla på deras tillförlitlighet.) om källkritik tas med 5
6. Referenser https://www.eit.lth.se/fileadmin/eit/courses/edi021/datablad/processors/atmega1284.pdf https://www.eit.lth.se/fileadmin/eit/courses/edi021/datablad/display/lcd.pdf https://www.mouser.com/ds/2/813/hcsr04-1022824.pdf http://www.farnell.com/datasheets/321153.pdf 7. Appendix Bilaga A 6