Create Rapport.md
This commit is contained in:
parent
27fbf1e769
commit
0e9e14e0ab
48
School/vg1/Dataelektronikk/Ultrasonic-Distance/Rapport.md
Normal file
48
School/vg1/Dataelektronikk/Ultrasonic-Distance/Rapport.md
Normal file
@ -0,0 +1,48 @@
|
||||
#Prosjekt Rapport
|
||||
|
||||
Produsert av: [Joakim Pettersvold (Joakim1999)](https://github.com/joakim1999) og [Daniel Løvbrøtte Olsen (Dali99)](https://github.com/dali99)
|
||||
|
||||
Ansvarlig lærer: Frank Roy Jensen
|
||||
|
||||
Denne rapporten blir skrevet for en obligatorisk prosjektoppgave vi har fått i faget Data og Elektronikk. Vi valgte å lage en avstandsmåler.
|
||||
|
||||
# Materiell
|
||||
Til dette prosjektet visste vi at vi trengte:
|
||||
* Ultrasoniske sensor (HC-SR04)
|
||||
* En mikrokontroller (Arduino Uno)
|
||||
* Et serielt display (QAPASS 1602A med I2C chip)
|
||||
* Ledere
|
||||
|
||||
#Oppbygning
|
||||
Det første vi gjorde var å koble vcc og gnd på den ultrasoniske sensoren og vcc og gnd på I2C kretsen til hver sin 5V og ground på Arudionoen.
|
||||
Deretter koblet vi fra SDA og SCL fra I2C kretsen til A4 og A5 på Arduinoen.
|
||||
Skjermen vi har valgt er egentlig SPI, men siden det hadde krevd mye mer GPIO valgte vi å bruke I2C.
|
||||
I2C er en kommunikasjonsprotokoll som lar oss gjøre om to analoge signaler til SPI, dette reduserer båndbredden, men den største sakningen ligger i skjermen.
|
||||
|
||||
#Feilsøkning
|
||||
Å få til dette prosjektet gikk relativt smertefritt og gikk også relativt raskt.
|
||||
Likevel var det ting som måtte feilsøkes.
|
||||
Det første problemet vi støtte på var at den serielle skjermen skrudde seg på men ikke viste noe tekst, selv om den var programmert til å gjøre det.
|
||||
Vi prøvde å feilsøke kildekoden for å se om det var noe feil med den, men vi kunne ikke finne noen feil.
|
||||
Vi fant ut etter å se veldig nøye på displayet at teksten faktisk sto der men at kontrasten var veldig dårlig.
|
||||
Vi visste ikke hvordan vi kunne endre kontrasten før etter litt da vi fant ut at det var et lite potensiometer på I2C kretsen.
|
||||
Når vi justerte potensiometeret kom teksten frem med en gang.
|
||||
|
||||
Den andre feilsøkingen vi måtte gjøre var når den serielle skjermen viste helt feil resultater.
|
||||
Etter litt tenkning kom vi frem til at skjermen ikke ble ble tømt automatisk og at det var derfor det tredje tallet “ghostet”, altså forble på skjermen.
|
||||
Dette gjorde at hvis du målte noe som var 100+cm langt, ville den siste nullen forbli når du målte neste objekt, som kansje bare er 3cm, resultatet var at det så ut som 300cm.
|
||||
Vi fant også ut at vi ikke hadde en funksjon for å tømme skjermen i programmet vårt.
|
||||
Vi eksperimenterte litt med hvordan vi skulle få til dette.
|
||||
Først printet vi 16 mellomrom til skjermen mellom hver skriving, men dette var veldig tregt.
|
||||
Bare tre mellomrom fungerte mye bedre, men vi så irriterende blinking.
|
||||
Da slo det oss å bruke “sprintf format spesifikatorer”. “sprintf” er en standard funksjon som lar deg printe tekst eller tall til en peker, og spesifikatorene lar deg for eksempel polstre tall til å ha nuller foran.
|
||||
Så i stedet for 1, blir det 001, og i stedet for 10 blir det 010.
|
||||
Dette lar oss bare printe en gang til skjermen, men fortsatt oppdatere alle tre sifferene.
|
||||
|
||||
Etter det var det bare noen justeringer igjen.
|
||||
Vi så at målingen dirret, dette ble løst ved å ta median målingen av fem målinger i stedet for å vise “real time” måling.
|
||||
Det går fortsatt rast nok til at det ikke merkes, og reduserte skjerm blinke problemet enda mer.
|
||||
|
||||
#Krav
|
||||
* [NewPing](https://bitbucket.org/teckel12/arduino-new-ping/ vi har brukt v1.7)
|
||||
* [NewLiquidCrystal](https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home)
|
Loading…
Reference in New Issue
Block a user