Namn: Laborationen godkänd: Tekniska gränssnitt 7,5 p Vt 2014 Laboration 5 LTH Ingenjörshögskolan vid Campus Helsingborg Temperaturmätning med analog givare. Syftet med laborationen är att studera analog till digital omvandling. En analog signal, spänning, som motsvarar temperaturen ska omvandlas till en digital signal. Denna signal ska behandlas så att avläst temperatur visas på en LCD skärm. Förutsättningar: En temperaturmätningskrets, LM335, ska anpassas till en analog ingång på processorn Atmega128. Du ska använda den konstruktion som du utvecklade på laboration 2. Temperaturområdet ska vara samma som i laboration 2, dvs. 20 till + 40 grader. Din konstruktion från laboration 2 ska ge 0 volt vid 20 och +5 volt vid +40 grader. Detta ska vara testat och klart inför laborationen. Minimikravet är att du har en spänning som stämmer väl med den som förväntas vid en temperatur mellan 20 och 25 grader och att spänningen ökar när du värmer kretsen med fingrarna. Komponenterna kring operationsförstärkaren kan trimmas lite i efterhand om de inte stämmer helt. Dessutom har du möjlighet att justera offseten i programmet. Uppgift: Temperaturen ska presenteras på LCD displayen på kretskortet som användes vid de fyra projektlaborationerna i Digitala system förra året. Det kan se ut så här: Temperatur:+22 C Erik Larsson 12 mars 2014
Förberedelser. Plocka fram projektet i Digitala system. Alla delar kommer inte behövas men det är enklast om du använder ditt färdiga projekt, vilket är testat och väl fungerande, och kompletterar med det som behövs för den analoga mätningen. Förhoppningsvis har du gjort en dokumentation så det är lätt för dig att sätta dig in i programmet från projektet. Viktigt för laborationen är att ha det periodiska avbrottet och alla skrivrutiner för LCD. Gå igenom alla funktioner så du vet hur de fungerar. Provkör projektlaboration 2, 3 eller 4 vid något tillfälle innan redovisningstillfället så att du är bekant med hur alla programdelar fungerar. Läs igenom laborationen och besvara alla frågor skrivna i fet kursiv stil innan du utfört laborationsuppgifterna. Svar till flera av frågorna hittar du i manualen för ATmega128, sidorna 230-246 (länk till manualen finns på hemsidan). Förberedelserna är klara när du har: provkört ditt projekt från Digitala system konstruktionen från laboration 2 i kursen klar besvarat frågorna i fet kursiv stil. 2
Laborationsuppgifter. Uppgift 1. Koppla upp din konstruktion från laboration 2. Kontrollera att den fungerar som den ska. Avläs spänningen vid OP-förstärkarens utgång vid rumstemperatur (20 C). 1. Vilken spänning bör du avläsa?... 2. Vilken är den spänningen i verkligheten?... 3. Värm kretsen med fingrarna. Ökar spänningen?... Om du får en bra överensstämmelse mellan punkterna 1 och 2, och dessutom får svaret ja på punkt 3, så kan du fortsätta laborationen. Annars får du felsöka i din konstruktion så den fungerar igen. Uppgift 2. Utsignalen från operationsförstärkaren ska anslutas till en analog ingång på Atmega128. Enklast är att använda ADC1 eller ADC3. I vilken port på Atmega128 är A/D-omvandlaren ansluten?... Handledaren hjälper till med lämplig anslutning mellan labbkortet och din förstärkarkonstruktion. Testa konstruktionen med hjälp av AVRStudio genom att avläsa det digitala värdet på den portkontakt som du använder. Vad bör den ha för värde (nolla eller etta) i rumstemperatur?... Vilket värde läser du av?... 3
A/D-omvandlaren i Atmega128. A/D-omvandlaren finns beskriven i den officiella databoken och det finns ett utdrag ur den här: http://student.ch.lu.se/lth/stefann/edi615/datablad/atmega128_ad.pdf Läs igenom och svara på följande frågor: Hur många bitars upplösning har A/D-omvandlaren?... Vilken absolut noggrannhet har A/D-omvandlaren?... Hur snabbt görs en omvandling om A/D-omvandlaren ställs in som i uppgift 3?... Vad kallas den typ av omvandling som används i ATmega128?... A/D-omvandlaren strömförsörjs genom pinnen AVCC. Vilken funktion har pinnen AREF?... Om vi enkelt vill läsa av ett 8-bitarsresultat från A/D-omvandlaren, hur ska då biten ADLAR ställas in och var läser man resultatet?... Vilken funktion har biten ADIF?... 4
5
Uppgift 3. Uppgiften är att ställa in A/D-omvandlaren så här: 1. Använd AVCC som referensspänning till A/D-omvandlaren. 2. Den analoga insignalen ska kopplas till ADC1. 3. Inspänningen på ADC1 ska avläsas som ett 8-bitarsvärde. 4. A/D-omvandlaren ska startas. 5. Omvandlaren ska stå och gå hela tiden. 6. Omvandlarens klockfrekvens ska vara 125 khz. Inställningar: ADC Enable ADC Start Conversion ADC Free running select Klockfrekvens för A/D-omvandlaren: 250 khz AVCC som referensspänning Läs värdet med 8 bitars noggrannhet Signalen inkopplad till ADC1 Skriv en funktion initad som gör detta. Funktionen läggs i filen AD.c och du skriver en fil AD.h på sedvanligt vis (titta i projektlaboration 2 från förra året om du har glömt). Anropa initad i huvudprogrammet (bland de andra initieringarna). Om du kör programmet och stoppar det, så ska du nu kunna avläsa A/D-omvandlarens resultat genom att tilldela en variabel värdet av resultatregistret. Av någon anledning visar inte debuggern värden i ADCH och ADCL. Testa gärna detta så du vet att det fungerar innan du fortsätter med resten! 6
Uppgift 4. Med hjälp av funktioner i filen LCD.c ska du nu skriva ut temperaturen på displayen. Temperaturen ska visas i klartext, dvs. när värdet (omvandlingen från spänning) är 0 ska det visas som -20 och när värdet 255 ska visas som 40. För att lösa uppgifterna behöver du LCD-laborationen från förra året samt förståelse för den räta linjens ekvation. Tips: Det kan vara enklare (men det är inte säkert att du tycker det) att dela upp uppgiften i positiva och negativa temperaturer. Gör utskriften en gång i sekunden (i stället för att skriva ut klockan). Uppgift 5. Du upptäcker kanske att utskriften inte visar ett stabilt värde. Vad kan det bero på?... Ett sätt att lösa detta är att använda någon typ av medelvärdesbildning, som i princip betyder lågpassfiltrering. En enkel och bra metod är s.k. glidande medelvärdesbildning. Exempelvis: M n = 0,8 * M n-1 + 0,2 * V där V är det nya inlästa värdet. Varje nytt medelvärde (M n ) fås genom att ta ett viktat medelvärde av en stor del av det gamla M n-1 och en liten del av det nya (V). Laborationen är godkänd när du 1. fått en stabil presentation i stil med: Temperatur:+22 C 2. gjort en bedömning av denna mätmetods noggrannhet, upplösning, fördelar och nackdelar (detta ska med i nästa laborationsrapport). 7
8