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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user