Hemgjord infraröda avståndsmätare (liknande skarpa GP2D120 (10 / 11 steg)

Steg 10: Steg 9: Linearizing resultaten



Den sista delen av detta instructable kommer att vara på linearizing resultaten som just nu, de är inte som du förväntar dig (du kan se detta om du rita ett diagram över spänning mot avståndet!).

Jag placerade resultaten i en tabell och ritade en graf från dessa resultat. Jag ingår också en exponentiell trendlinje. Om du kommer ihåg grafen jag visade i ett tidigare steg, du kan se är det ganska likt, excel tillåter inte den plottning av 1 / x grafer!

Nu, genom att titta på de matematiska funktionerna att Arduino kan göra begränsar oss lite till hur vi kan linearize dessa resultat. Genom att leka med funktionerna i excel kommer att hjälpa oss att hitta lämplig men som raden exponentiell trend passar, fann jag att det bara skulle vara lämpligt att göra inversen av en exponent (en exponent är lika med e ^ x), inversen är lika med den naturliga logaritmen (känd som ln) för x. Genom att göra omvänd exponenten, resultaten kommer att vara mycket mer linjärt och Arduino tillåter denna funktion. Om du rita denna graf, du kommer att kunna tillämpa en linjär trendlinje och har en helt acceptabelt R ^ 2 värde.

Nu när du har linearized resultaten, måste du invertera övertoningen. För närvarande, som avståndet minskas, ökar spänningen. Detta är inte en livskraftig form av mätning som man skulle förvänta sig ett värde att minska som spänningen ökade!

Det enklaste sättet att göra detta vore att Invertera resultaten av loggen genom att multiplicera med minus 1. Detta kommer sedan Invertera övertoningen och de resulterande värdet kommer att öka när avståndet ökar!

Nästa del är att använda en relation mellan dessa värden och avstånd. För det första, du värdet på 0 avstånd vara noll. Du gör detta genom att loggen för din största experimentellt finns spänning och att lägga till detta till alla värden.

Du får då ett resultat att den minsta spänningen ger det största värdet och den största spänningen ger sedan värdet 0.

Nu har du en linjär funktion som konverterar icke linjära spänningen. Behöver du nu är kartlägga detta till motsvarande avstånd, e.g. det största värdet som du beräknade ska vara lika med avståndet som du mätt (för det värdet, dess förvirrande jag vet!). För detta sista steg, allt du behöver göra med största avståndet mäts multiplicera delad med normaliserade resultatet och du kommer att ha en funktion som kommer att ge dig en lyckad avstånd läsning! Observera att om du ändrar någon av parametrarna krets, eller justera temperaturen, detta kommer att förändras! Därav varför dess endast enkla.

Detta kommer att göra mycket mer känsla när du läst koden, ärlig!

Den nya koden är:
int Readvalue; Inledningsvis Läs värdet
int Printvalue; Värdet skrivs ut på skärmen
float Mathvalue; Variabeln används för någon form av matematik
flyta Normalize_constant = 0,47; De variabler som jag räknat från mina resultat
flyta Scale_constant = 3.34; Samma som ovan!

void setup() {
Serial.BEGIN(9600); Börja seriell kommunikation med dator på 9600bps
}

void loop() {
Readvalue = analogRead (A0) + 1; Läs infraröda avståndsmätare input, Lägg till 1 för att säkerställa att behandlingen aldrig är lika med noll eller du kommer att få konstiga matematik resultat!
Mathvalue = log(Readvalue) //Apply loggen för Läs värdet
Mathvalue = Mathvalue *-1 //Invert logga värdena
Mathvalue = Mathvalue + Normalize_constant //Normalize resultaten, min normalisera konstant var lika LN(1.6) som beräknats från mina resultat. Yours varierar!
Mathvalue = Mathvalue * Scale_constant //Multiply vid den skala konstanten se till att det uppmätta avståndet är samma som värdena.
Serial.println(Mathvalue); Skriva ut sista matte värdet till seriell bildskärmen
Delay(50); Fördröjning för 50 ms att inte fylla den seriella buffert
}

Se Steg
Relaterade Ämnen

Fisheye-objektiv för en avståndsmätare eller mirrorless kamera

Fisheye-objektiv för en skruv montera leica eller andra skruv mount avståndsmätareMedan jag inser att det finns mycket få människor skytte en Leica, särskilt en mycket gammal Leica som en skruv montera serien, detta är ett roligt projekt att återanvä...

Intellekten IoT Edison sonar avståndsmätare avståndsmätare

Jag har chatta nyligen med en civilingenjör vän till mig och jag berättade för honom om min nya laseravståndsmätare, när han antydde att en avståndsmätare med loggningsmöjligheter skulle vara långt mer intressant för honom. Eftersom min nya leksak är...

Ultrasonic avståndsmätare med LCD-display på Arduino UNO

I denna tutorial kommer vi att se en annan användning av modulen HC-SR04 ultraljud. Denna modul används ofta på robotar och leksaksbilar för att hitta hinder men det kan användas för att mäta avstånd också.Avstånd som mäts av HC-SR04 visas på vår äls...

Svepande ultraljud avståndsmätare

detta Instructable visar hur du använder en Arduino Uno, ultraljud avståndsmätare, servo och TFT skärm för att göra en handhållen svepande ultraljud avståndsmätare. Eftersom servo sveper en 180 graders båge, bearbetar Uno data från avståndsmätare, pl...

Arduino-wtv020-Sd - 16P / talande avståndsmätare

Hej mina vänner,Jag vill presentera min arduino projekt för alla er :)Först av allt, vill jag att du ska veta att projektet inte är komplicerat som du tror.Det material som jag använde för detta projekt1) Arduino Uno / Arduino Nano eller Micro (rekom...

Arduino ultraljud avståndsmätare med I²C lcd uppvisning!

Heji detta projekt vill jag Visa och förklara du en rad sensor med ultraljud och en 20 x 04 LCD-skärm. Jag skrev koden för detta projekt själv och lade till massor av kommentarer, så att alla kan förstå det och använda det för andra projekt (kanske e...

Mandalorian avståndsmätare

Hej där, har jag beslutat att bygga upp min gamla tunga avståndsmätare och jag... Tog bort den och kastade i bin, efter som gjorde den nya en och detta är en handledning om det.Material du behöver:1) sax2) måla i ballong3) Akrylfärg i rör4) färg för...

Utforska avståndsmätare med stora teckensnitt

I denna enkla handledning, kommer jag visa dig hur man gör en avståndsmätare. Det använder en ultrasonic sensor läsa avstånd och Visa den i egna stora teckensnitt på en LCD-display. Den drivs upp av ett batteri, så att du kan ta den runt en sväng. Vi...

Karta med inbyggd avståndsmätare

denna karta, med integrerad vägmätare, kan inte sätta stopp för alla dessa diskussioner över hur långt du faktiskt har rest, men kommer säkert höja diskussionerna till nya nivåer.På min rodd club här i Hamburg in vi varje resa som vi gör i datorisera...

Ultrasonic avståndsmätare med en ATtiny85 (med sköld)

Jag är här att visa dig hur du använder en HC-SR04 ultraljud Range Finder med en ATtiny85 samt programmering av ATtiny85 med den underbara sköld som randofo skapat.Förteckning över material:ATtiny85 programmering bibliotekArduino UnoHC-SR04 ultraljud...

Arduino avståndsmätare

Detta ett projekt jag har jobbat länge nu. Det är en anordning som visar på en liten LCD-display avståndet till närmaste objektet kan hitta, vanligtvis golvet, i taket och två väggar eller kolumner. Så det kan vara så bra att hänga en bild, ett skal,...

Enkel LiDAR med laseravståndsmätare Uni-T UT390b, Arduino och Turbo Pascal

Hej!Några dagar sedan köpte jag en Laseravståndsmätare (Uni-T UT390b, f.e.http://www.dx.com/de/p/uni-t-ut390b-45m-laser-dist...) att förverkliga en enkel LiDAR. Avståndsmätare har en noggrannhet på +/-2mm och kan mäta avstånd upp till 45m. Detta blir...

Avståndsmätning med Ultrasonic sensor och Arduino

Hej varje enJag fick min första Aduino nyligen, här är jag gonne Visa du min första projektet som avståndsmätning använder Ultrasonic sensor och Arduino, kan du använda detta projekt många applicering vilja1-flytande nivå2-objekt upptäckt3-avståndsmä...

LCD-avståndsmätning med Arduino

Och efter att publicera upp några robotic tutorials, beslöt jag att lägga mer i detalj om hur sensorerna fungerar. Att börja med jag välja en ultrasonic sensor och en Arduino som mikro-controller.Detta Instructable är enbart för förvärvsinkomsten får...

Arduino Ultrasonic Sensor LCD avståndsmätning

Projektet material1 - Arduino UNO2 - HC-SR04 Ultrasonik Sensor3-LCD-skärm4 - skärbrädaKoden#includeLiquidCrystal LCD(10, 9, 5, 4, 3, 2); int trigPin = 13. Sensor Trip pin ansluten till Arduino stift 13 int echoPin = 11; Echo givarstaven ansluten till...

Autonoma Arduino bil med infraröd närhets-Sensor

Detta Instructable visar hur du ändrar en preloved RC bil så det kan styras med en Arduino. Sedan visar Instructable dig hur man gör RC kör en enkel figur 8 kod därifrån Instructable visar dig hur du lägger till en infraröd rörelsesensor så det kan i...

Prism: En Laser Synth-gitarr

prismat är helt enkelt den bästa laser gitarren på Internet. Det tror jag åtminstone. Jag hoppas att du tar dessa instruktioner och inte bara gör din egen, men förbättra på min design!Jag antar att jag borde klargöra vad prismat är: det är lite som e...

Connector Magic

jag har alltid varit en nörd. Jag riva allt isär för att se vad jag kan göra av den. Jag fick bara till små robotar med den letsmakerobots.com startpaket och några BasicStamps och Arduinos. Med kan göra robotar kit är så fullständig du bara hålla det...

Servo Math

jag har alltid sett saker annorlunda med min elektronik och programmering bakgrund. Servo matte kom från mig ser servon som att ha tre delar. Vinklarna 0-1000, 90-1500 och 180-2000 microseconds(us). 0 är den låga Range(1000) för Servo matematik. Den...