The Intelligent Timer Linnea Karell och Oscar Bagge, I10 Handledare: Bertil Lindvall 2013-05-20 Abstract The objective of this project was to build a prototype of a digital timer. The product design specification includes the timer to be able to connect with two LEDs but also to be able to manage a daily on-and-off for each LED. The timer was constructed mainly by using a processor, a keypad, a display and two LEDs. The code was written in C. The result of the project was very successful and the prototype can handle everything that was specified in the product design specification.
Innehållsförteckning Abstract... 1 1 Inledning... 3 2 Kravspecifikation... 3 2.1 Funktionella krav... 3 2.2 Eventuella krav... 3 3 Hårdvara... 3 3.1 Processor... 3 3.2 Display... 3 3.3 J-Tag... 3 3.4 Knappsats... 3 3.5 Lysdioder... 4 3.6 Resistorer... 4 4 Funktion... 4 5 Arbetsprocessen... 4 6 Resultat... 5 7 Diskussion... 5 7.1 Tillbakablick... 5 7.2 Slutsats... 5 7.3 Förslag på fortsatt arbete... 5 8 Källförteckning... 6 9 Bilagor... 7 Bilaga 1: Kopplingsschema... 7 Bilaga 2: Källkod... 8 2
1 Inledning I detta projekt har vi valt att konstruera en prototyp av en digital timer. Syftet med projektet är att utveckla sina kunskaper inom elektronik, digitalteknik, programmering. I och med projektets utformning får även våra kunskaper inom projektledning och Time Management möjlighet att utvecklas. 2 Kravspecifikation 2.1 Funktionella krav Den digitala timern baserad på processorn AVR-ATmega16 ska uppfylla följande funktionella krav: Timern ska kunna kopplas till två stycken lampor. Möjlighet att hantera ett dagligt till- och frånslag för varje lampa. Interaktionen med applikationen ska ske genom en digital display med två rader och en knappsats. Då användarvänligheten ska vara stor bör det inte krävas fler än en knapptryckning för att komma åt inställning av timertid. Det ska även vara enkelt att ändra i redan sparad data. 2.2 Eventuella krav Eventuella krav som ska uppfyllas i mån av tid: Möjlighet att hantera åtta dagliga till- och frånslag för varje lampa. Ska kunna skilja på veckodagar, helgdagar samt inneha inställning för sommar- eller vintertid. Applikationen ska kunna hantera användarfel som exempelvis att två timersessioner med överlappning matas in. 3 Hårdvara Hårdvaran som har använts för att bygga en prototyp av en digital timer beskrivs nedan. 3.1 Processor En processor av modellen AVR-ATmega16 har använts vid byggandet av prototypen. Denna processor har fyra portar samt 16 kb skrivbart minne. 3.2 Display En display av modellen Sharp Dot-Matrix användes vid byggandet av prototypen. Denna består av två rader med 40 tecken på varje rad. 3.3 J-Tag J-Tag användes för att koppla samman prototypen med programmet AVR studio 4 i vilket C-koden skrevs. 3.4 Knappsats Knappsatsen består av 16 knappar varav tio knappar representerar siffrorna 0-9 och resterande sex knappar representerar bokstäverna A-F. 3
3.5 Lysdioder Två lysdioder användes för att representera två olika lampor som går att ställa in timern på. Dessa två hade varsin färg; röd och grön. 3.6 Resistorer Till vardera lysdiod kopplades en resistor(330 Ω) i serie för att reglera strömmen. 4 Funktion Timern fungerar på så sätt att en knapp för att sätta start- och stopptid för respektive lampa ger användaren möjlighet att mata in tiderna med knappsatsen och svarar sedan om tiden är giltig (alltså inom 00:00 till 23:59) och om tiden har lagrats. En av knapparna utöver 0-9 på knappsatsen skriver också ut aktuell tid på skärmen. Processorn programmerades i C och drivs av en extern strömkälla på 5 V. 5 Arbetsprocessen Projektet startades med utformande av kravspecifikation som finns beskriven ovan i rapporten. Nästa steg var sedan att med hjälp av programmet Power Logic rita ett kopplingsschema (se bilaga 1). För att få kunskap att rita kopplingsschemat korrekt användes tillgängliga datablad för varje komponent (se källförteckning). Då kopplingsschemat var färdigt var det sedan dags att börja bygga på riktigt. Vi fick tillgång till en verktygslåda och med hjälp av denna så började vi sätta ihop alla komponenter. Trådarna löddes på rätt plats och tillsammans med processor, display och knappsats sattes det samman på ett kretskort (se bild 1). Bild 1. Den färdigbyggda prototypen framifrån. Bild 2. Den färdigbyggda prototypen bakifrån. Efter att prototypen var färdigbyggd så var det dags att skriva all nödvändig källkod i programmeringsspråket C. Koden skrevs i programmet AVR studio 4 (se bilaga 2). Samma program 4
användes för att styra processorn samt för att felsöka. Sista steget i arbetsprocessen var att sammanställa allt i denna rapport. 6 Resultat Resultatet av projektet är en digital timer som uppfyller de grundläggande kraven men tyvärr inte de krav som skulle uppfyllas i mån av tid. Timern kan alltså kopplas till två stycken lampor och kan hantera ett daligt till- och frånslag för varje lampa. 7 Diskussion 7.1 Tillbakablick Efter flera veckors arbete lyckades vi äntligen framställa en prototyp av en digital timer. Projektet har varit mycket lärorikt i och med att vi både fått lära oss mer om elektronik, C-programmering och digitalteknik. Det har dessutom varit mycket lärorikt att få utföra ett projekt helt från start till färdig prototyp. En svårighet som är av betydelse är att det varit svårt att göra en tidsplan för projektet då vi inte varit särskilt insatta i elektronik eller C-programmering och det var svårt att veta hur mycket tid de olika delstegen i projektet skulle ta. Ytterligare en svårighet var att få processorns timerkrets att fungera. Den information som fanns tillgänglig var svår att tillgodogöra sig trots dess omfattning. Kravet att prototypens realtidsklocka skulle kunna ha koll sommar- och vintertid samt helg- och veckodagar ansågs för avancerat att konstruera på utsatt tid och uppfylldes därför aldrig. Anledningen till detta är att det hade krävts ett batteri som skulle haft till uppgift att försörja en klockkrets separerat från det befintliga systemet. 7.2 Slutsats Vi har visat att det är möjligt att på kort tid tillgodogöra sig de kunskaper som krävs för att bygga en enklare digital prototyp genom att använda en processor. 7.3 Förslag på fortsatt arbete Det fanns ett antal eventuella krav som prototypen skulle uppfylla i mån av tid. På grund av tidsbrist har det inte hunnits med och förslag på fortsatt arbete är således att följande krav uppfylls: Möjlighet att hantera åtta dagliga till- och frånslag för varje lampa. Ska kunna skilja på veckodagar, helgdagar samt inneha inställning för sommar- eller vintertid. Applikationen ska kunna hantera användarfel som exempelvis att två timersessioner med överlappning matas in. Detta skulle framför allt innebära att källkoden måste utvecklas och eventuellt struktureras om från början. 5
8 Källförteckning Databladet AVR-ATmega16 High-performance AVR 8-bit Microcontroller (Complete) <http://www.eit. lth.se/fileadmin/eit/courses/edi021/datablad/processors/atmega16.pdf> Hämtad: 2013-04-18 kl. 10:12. Databladet Sharp Dot-Matrix LCD Units Alfanumerisk teckendisplay <http://www.eit.lth.se/fileadmin/ eit/courses/edi021/datablad/display/lcd.pdf> Hämtad: 2013-04-19 kl. 13:46. Instruktionen Att sätta igång med Power-Logic <http://www.eit.lth.se/fileadmin/eit/courses/edi021/ PDF_files/PowerLogic/Power_Logic.pdf> Hämtad: 2013-04-08 kl. 14:10. Manualerna AVR LIBc modules <http://www.eit.lth.se/fileadmin/eit/courses/edi021/avr-libc-usermanual/modules.html> Hämtad: 2013-04-18 kl. 11:32. 6
9 Bilagor Bilaga 1: Kopplingsschema 7