Forord. Mathias Lønstrup Poulsen, Anders Kusk og Jacob Østergaard 25. april 2009 Eksamens projekt: Bil moduler

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Starte visningen fra side:

Download "Forord. Mathias Lønstrup Poulsen, Anders Kusk og Jacob Østergaard 25. april 2009 Eksamens projekt: Bil moduler"

Transkript

1

2 Forord Denne rapport er udarbejdet som sammenhæng til det endelige eksamensprojekt i faget Computer- og Elteknik på Holstebro HTX I medhold til opgaven følger et produkt som er beskrevet gennem denne rapport. Rapporten er en samlet aflevering fra gruppen som er bestående af 3 medlemmer. Til opgaven blev 99 skoletimer afsat og 2 vejledere stod til hjælp under opgavens forløb. Disse 2 vejledere var Bent Arnoldsen og Hjalmer Andersen. Til opgaven blev et oplæg udleveret på klassen, og vi i gruppen har valgt at arbejde med Tema 1, Bil elektronik. Initialerne for gruppemedlemmerne er således: Anders Kusk (AK) Mathias Lønstrup Poulsen (MLP) Jacob Østergaard (JØ) 2

3 Indholdsfortegnelse Forord... 2 Projektplan / Problemformulering... 6 Blokdiagram... 7 Tidsplan... 7 PIC'en... 8 Temperatur måling (MLP)... 9 Formål(MLP)... 9 Krav til produktet(mlp)... 9 Opbygning (MLP)...10 Temperaturmåling (MLP)...10 Diode som transducer(mlp)...10 Halvleder (MLP)...12 Nulpunkt (MLP)...12 Forstærkning(MLP)...14 AD-konvertering(MLP)...17 Display(MLP)...18 Styring af Varme- og kølelegeme(mlp)...19 Varmeelement (JØ)...21 Problemformulering (JØ)...21 Blokdiagram (JØ)...21 Diagram og board (JØ)...21 Serie- og parallel opkobling (JØ)...21 Udregninger (JØ)...21 Billede af print (JØ)...21 Test af modul (JØ)...22 Hele opkoblingen(mlp)...22 Transistor til styring af varmeelement(mlp)...22 Programmering af displayet(mlp)...22 Display tilstande(mlp)...25 Tilstand Tilstand Tilstand

4 Programmeringen af temperaturmåleren(mlp)...26 Knapper(MLP)...30 Vinduesvisker (JØ)...30 Problemformulering (JØ)...30 Blokdiagram (JØ)...31 H-bro (JØ)...32 Diagram og board (JØ)...32 Udregninger (JØ)...32 Kode (JØ)...33 Billede af print (JØ)...34 Test af modul (JØ)...34 Automatisk lys (JØ)...35 Problemformulering (JØ)...35 Blokdiagram (JØ)...35 Diagram og board (JØ)...35 LDR (JØ)...35 Kode (JØ)...35 Billede af print (JØ)...36 Test af modul (JØ)...37 Hastighedsmåler (AK)...37 Formål (AK)...37 Krav til løsning (AK)...37 Løsning (AK)...37 Hastigheds programmering (AK) Test af input (AK) Første tæller (AK) Reg -metoden (AK) Interrupt og færdige version (AK)...44 Beregning af hastighed (AK)...47 Test af hastighedsmåler (AK)...48 Forsøg med stroboskop (AK)...48 Fart og spænding (AK)...50 Programmering

5 Konklusion...50 Bilag Bilag Bilag Bilag Bilag Bilag Bilag Bilag Bilag Elektroniske bilag

6 Projektplan / Problemformulering Gruppe: Mathias Poulsen, Anders Kusk, Jacob Østergaard, 3.A Tema: Bil elektronik Problemformulering: Bilister i dag har ofte brug for at kunne registrere og styre en masse forskellige parametre i deres bil. Det er meget forskelligt hvad folk ønsker at kunne se og styrer i deres bil. Dette kan enten være sikkerheds- eller luksusaspekter i bilen. Det er svært at få samlet alle disse apparitioner på en overskuelig og brugervenlig måde. Vi vil i projektet arbejde med at udtænke og konstruere løsninger på nogle af de ting som man typisk gerne vil kunne aflæse og styre i sin bil. Vi besluttede i gruppen at dele forskellige moduler ud efter interesse og derfor have et individuelt ansvar for de forskellige moduler. Vi opstillede en liste af forskellige ideer til modulerne og derefter valgte vi hver især et eller flere moduler som vi gerne ville arbejde med. Listen var som følgende: Liste over moduler: Måling af bilens hastighed (Anders) Temperaturmåling af kabine, samt mulighed for regulering af temperatur (Mathias) Lys sensor i kabinen (Jacob) Vinduesvisker (Jacob) Modulerne blev vi enige om at konstruere individuelt og til sidst samle dem må en overskuelig måde. Nogle ting besluttede vi at skulle kunne automatisk styres men som sagt skulle det også være muligt at styrer disse moduler manuelt. I opgaveformuleringen som blev udleveret på klassen var det klart at alle i gruppen både skulle stå inde for elektronik og programmering. Derfor har vi hver især også både lavet hardware og software. 6

7 Blokdiagram Her er et blokdiagram over hele projektet: Tidsplan Før projektet opsatte vi en tidsplan og den blev fuldt som fod i hose. Kun meget små afvigelser fra tidsplanen i løbet af processen, mere konkret tog samlingen af modulerne lidt længere tid end planlagt. Uge Udlevering af projekt X Ferie Valg af emne X Ferie Informations Søgning X Ferie Løsningsforslag X Ferie Valg af løsninger / moduler X Ferie 7

8 Udarbejdelse af projektplan X Ferie Uddelegering af moduler X Ferie Design af kredsløb X X X Ferie Konstruktion af kredsløb Samling af moduler X X X X Ferie X X Ferie Fejlfinding Ferie X Kontrol check Ferie X Samlet aflevering Ferie X Time antal PIC'en Til projektet er vores normale 2 ports PIC ikke nok til at styrer alle moduler. Derfor var det nødvendigt for os at konstruere en større PIC. Til projektet valgte vi at bruge en PIC af typen 16F877. Denne PIC har 5 porte med 33 programmerbare ben i alt og dette var nok til vores behov i hele gruppen. Vi har ikke selv lavet selve opbygningen af denne PIC men den var allerede opgivet under undervisningen i faget. Diagram og layout af denne PIC er vedlagt som elektronisk bilag. Desuden er databladet for denne PIC også vedlagt som elektronisk bilag. 8

9 Temperatur måling (MLP) Formål(MLP) Denne del af projektets formål er at lave et produkt som skal kunne måle en temperatur. Denne temperatur skal kunne måles inde i kabinen af en bil. For også at kunne styre temperaturen i bilen skal der tilkobles et varme og køleelement til produktet. Disse varme- og køleelementer skal både kunne styres automatisk når temperaturen stiger / falder og skal også kunne styres manuelt hvis man selv syntes det er for varmt eller koldt. Desuden skal den aktuelle temperatur kunne aflæses på et display. På dette blokdiagram kan man se hvordan projektet er bygget op og hvordan de forskellige dele af produktet skal kommunikere med hinanden. Som udgangspunkt til produktet lavede jeg min temperatur transducer. Derefter byggede jeg mig videre ud mod det totale produkt en blok af gangen. Visse dele vil i min rapport være mere dokumenteret end andre, og dette er hovedsagligt de dele jeg har bygget op fra grunden. Herunder transduceren, forstærkningen, AD-konventeren, styring af køle og varmelegeme og styringen af PIC'en. Displayet er ikke så vel dokumenteret eftersom jeg har benyttet et allerede eksisterede print som blev udleveret på klassen. Krav til produktet(mlp) Til mit produkt opstillede jeg selv nogle krav forinden. Disse krav var som følger: 1. Kredsløbet skal fungere på et PIC-bord som levere en forsyning på 9V. 2. Varme og køleelementet skal kunne styres automatisk eller manuelt efter ønske 9

10 3. Produktet skal laves på et print/blok så man let kan koble den sammen med andre blokke til det overordnede projekt. I løbet af projektet løb jeg ind i nogle småproblemer med mine krav. Det første var min 9V forsyning. 9V er ikke nok til at kunne trække mit køleelement som jeg ønsker, derfor er det blevet nødvendigt at tilkoble en ekstern strømforsyning. Opbygning (MLP) Apparatet skal kunne fungere på en PIC16F877. Dette betyder at et normalt output fra PIC'en er 5V og forsyningen er 9V. Da jeg til mit projekt ikke vælger at benytte 9V, bruger jeg kun de pin som levere 5V output eller jeg bruger pin til input. Forsyningen til at styrer min forstærker, kølelegemet og varmeelementet bliver som sagt leveret af en ekstern strømforsyning. Ideen med dette projekt er at selve produktet skal kunne monteres i en bil, derfor skal alle elementer sidde fast og det skal ikke være muligt at rykke rundt med tingene. Temperaturmåling (MLP) Til selve målingen af temperaturen opstillede jeg igen selv nogle krav til produktet. Alle dele af kredsløbet skal virke på enten 5V, 9V eller 12V spænding. Udgangsspændingen fra forstærkeren skal være lineær og skal vise 0V ved 0 grader og 5V ved 50 grader. Ud fra kravene til produktet kan jeg se at forstærkeren skal levere en spænding på op til 5V til ADkonverteren. Derfor er det nødvendigt at forstærkeren får en forsyning på mere en 5V. Men for at starte et sted i projektet lavede jeg selve temperaturmåleren med en diode og komme ind på forstærkning og ADkonvertering senere. Diode som transducer(mlp) En diode kan ikke ses som en normal modstand, eftersom modstanden ikke kun ændres ved temperaturen, hvilket er tilfældet ved en normal modstand. Men ved en diode ændres modstanden også afhængigt af den spænding dioden får. For at skabe en konstant spænding kobles dioden i serie med en normal modstand. Som set på opstillingen nedenfor: 10

11 Da forsyningen er 5V og modstanden R101 er 4700 Ohm ligger der altså en strøm på: 5V ma Altså en strøm på ca. 1 ma. Nedenfor kan man se på grafen hvordan spændingen som trækkes ud ved forskellige strømniveauer og temperaturer. 11

12 Som sagt bruger jeg en strøm på ca. 1 ma og som krav til mit produkt skulle temperaturen måles mellem 0 og 50 grader. Altså kommer spændingen til at ligge omkring 0,58V til 0,68V. Ud fra databladet for dioden kan jeg aflæse at spændingen falder ca. 2.2mV per Kelvin. Derved kan jeg opstille en formel for temperaturen: Ud (T ) 0,65 (T 298) 0,0022 Hvor T er temperaturen målt i Kelvin, 0,65 er spændingen over dioden ved 25 C, og de 0,0022 er ændringen i spænding i V pr. grad. Over dioden ved 25 C vil der altså være en spænding på 0,65 V. Når temperaturen ændres vil spændingen dermed stige eller falde fra de 0,65 V. Ændringen er så de -2,2 mv/k. Efter opkoblingen af systemet fandt jeg dog ud af at dioden var en lille smule forkert i forhold til formlen. Derfor blev det nødvendigt at rette den en lille smule til. Jeg målte spændingen over dioden ved en temperatur i rummet på 20 grader. Der blev spændingen 0,602V. Derved kan jeg finde den korrekte formel: 0.602V x ( )K V solve x V K Altså bliver den korrekte formel: U d T V T 1 298K V K Halvleder (MLP) Dioden som bliver brugt til projektet kan betragtes som en halvleder. Derfor kan den fungere som temperaturmåler. Ved en halvleder falder den elektriske modstand når temperaturen stiger og derfor kan jeg registrere en ændring i spændingen ved temperaturskift. Det materielle som bliver brugt stort set altid til halvlederkomponenter er Silicium. Nulpunkt (MLP) Da min temperatur måler med forstærker skulle levere 0V ved 0 grader er det nødvendigt at lave et virtuelt nulpunkt. Det første jeg skal finde er den spænding som dioden vil levere ved 0 grader. Denne findes ud fra formlen: 12

13 U d ( 273K) V Derfor skal forstærkeren have en reference spænding på 0,645V. Jeg laver derfor et kredsløb til at danne disse 0,645V. Opstillingen er som følgende. For at få den ønskede spænding U103 ud til forstærkeren ligger jeg en fast modstand in som R103. R Desuden har jeg spændingen fra spændingskilden U0 og den ønskede U103: U 0 5V U V Nu kan jeg finde den strøm som løber igennem modstanden: I 103 U 103 R A Jeg kan så finde spændingen over modstanden R102: U 102 U 0 U V 13

14 Strømmen som løber igennem modstandene er den samme så nu kan jeg finde modstanden R102: R 102 U 102 I k Til projektet bruger jeg en standard modstand af værdien R102 = 6800 Ohm. Forstærkning(MLP) Det var et krav for mit projekt at spændingen som skulle leveres fra min temperatur måler til ADkonverteren skulle være 0V ved 0 grader og 5V ved 50 grader. Dette er et passende interval til temperaturen i en bil. For at få dette spændingsinterval er det nødvendigt at bruge en forstærker. Forstærkeren virker på den måde at den kobles sammen med nulpunkts spændingen (U103) og spændingen fra transduceren (Ud(T)), og den tager simpelthen den spænding som er imellem de to spændinger og forstærker. Men da transduceren sender en spænding som falder i takt med at temperaturen stiger er det nødvendigt an invertere spændingen. Dette betyder at den normale negative værdi fra transducer nulpunkts spændingen vil bliver inverteret så den rent faktisk bliver positiv, og derefter vil den forstærkes en hvis grad. Forstærkeren som jeg har brugt var som sagt en inverterende forstærker. Denne forstærker ser ud som følgende i brug: 14

15 Ovenfor ses et udklip fra databladet og dette fortæller blot hvilke ben på IC en gør hvad. Som man kan se er der på hver IC samlet 4 af denne slags forstærkere. IC'en skal bruge en forsyning på 12V. Selve opstillingen for den inverterende forstærker ser således ud: Forstærkningen og dermed forstærknings graden afhænger af de to modstande som er ses på diagrammet ovenfor (R104 og R105). Den første opgave for mig var at finde hvor meget spændingen som kom ud af forstærkeren og gik videre til AD-konverteren skulle stiger per grad. Dette fandt jeg således: U max U min 5V 0V Temperaturen skulle ligge mellem 0 og 50 grader så intervallet blev: T interval 50K Nu kan jeg finde stigningen i spænding per grad: U max T interval 0.1 V K Spændingen ud af forstærkeren skulle altså stiger 0,1V per grad. Da lokalet var omkring 20 grader da jeg stillede opstillingen op beregne jeg ud fra det. Da nulpunktet var spændingen ved 0 grader ville disse 20 grader i lokalet så svare på en stigning på samlet 20 grader fra nulpunktet og derved kunne jeg finde ud af hvor stor spændingen ud fra forstærkeren skulle være ved disse 20 grader: 15

16 20K 0.1 V K 2V Nu kan jeg så finde den spændingsforskel som ligger mellem transducer spændingen og nulpunkts spændingen ved disse 20 grader: U d T V T 1 298K V K U d ( 273K) V U d ( 293K) V 0.601V 0.645V 0.044V Disse -0,044V skulle derfor forstærkes og inverteres så de svare til en spænding på 2V som forstærkeren skal levere til AD-konverteren. Ud fra dette kan jeg finde forstærkningsgraden: 2V 0.044V Spændingen mellem transducer og nulpunkt skulle altså derfor forstærkes omkring 45 gange. Forstærkningsgraden for den inverterende forstærker kan skrives som A': A For forstærkningen er det nødvendigt at ligge en fast modstand ind som R104. Denne modstand satte jeg til 4700 Ohm. R For at finde den anden modstand i kredsløbet (R105) bruger jeg formlen for den inverterende forstærker: 16

17 A R 104 R 105 solve R Til mit produkt brugte jeg en standard modstand til R105 som 100 Ohm. AD-konvertering(MLP) AD-konverteren har til opgave at tolke den spænding som den modtager fra forstærkeren. AD konverteren er opbygget således: V dd er forsyning på 5V, V ss er stel, V ref er en reference spænding som konverteren kan tolke ud fra altså skal denne være den maksimale strøm som konverteren kan modtage. Benene CS og CLK bruges af PIC en til at styrer hvornår AD-konverteren skal samle data op. D out er det data som AD-konverteren har fortolket og går videre ind til PIC en som input. AD-konverteren får spændingen fra forstærkeren ind på IN+ benet da IN+ kan modtage spænding fra intervallet IN- til V ref. Derfor er IN- altså også tilsluttet stel så intervallet for IN+ er helt fra 0 til 5V som forstærkeren sender ud afhængigt af temperaturen. Nedenfor kan man ses et diagram som viser hvordan AD-konverteren er tilsluttet. Nu da AD konverteren er forbundet vil jeg prøve at forklare lidt om hvordan AD-konverteren tolker spændingen fra forstærkeren og laver denne spænding om til et signal som udsender et tal til min PIC. Tallet AD-konverteren sender videre til min PIC er mellem 0 og svare til den maksimale spænding V ref og 0 svare til den minimale spænding nemlig IN- som i dette tilfælde er stel, 0V. 17

18 På billedet ovenfor ses hvordan AD-konverteren tolker spændingen. Før AD-konverteren går i gang med at tolke noget som helst på spændingen skal den først have signal fra PIC en på CS benet. Dette signal kommer når CS sættes til lav og derved begynder konverteringen. Efter konverteringen er startet vil ADkonverteren registrere en bit hver gang CLK bliver sat til lav. Men de førte bit er samples og bliver derfor ikke brugt kun de sidste 12 bit bliver opfanget af AD-konverteren. I min programmering kan jeg dog ikke bruge alle 12 bit, og der er ikke nogle speciel grund til at bruge alle 12. Derfor smider jeg de 4 mindst betydende bit væk. AD-konverteren kan desuden ikke starte en ny tolkning af spændingen fra forstærkeren før CS igen er sat til høj og derefter lav. Der kræver desuden en lille smule tid fra CS sidst var lav til man sætter den lav igen så AD-konverteren kan nå at genstarte og gøre klar til at samle ny data. Den data som AD-konverteren tolker fra spændingen var som sagt et tal mellem 0 og 255. Dette tal bliver lagt i en variable kaldet mpc3201 og denne vil jeg bruge når jeg gennemgår koden for projektet. Display(MLP) Til at vise temperaturen og set punktet benytter jeg et syv segment display med 16 karakterer. Informationen om displayet er taget fra PDF-filen omkring displayet som vi fik udleveret. Displayet fungere ved at man kobler den sammen med port d på 16F877-PIC en, men den kan ikke slås direkte til, derfor lavede jeg et connector-print, så man kan slutte det til. Printet så således ud: 18

19 SV1 er de 10 ben på displayet og SV2 er de 10 ben på port b. For at kunne se at displayet er sluttet korrekt til er printet blevet påført en lille lysdiode som lyser, når printet fungere. Desuden kan man ved at bruge den regulerbare modstand på printet skrue op og ned for lysstyrken på displayet. Jeg vil ikke gå for meget ind i printet til displayet da jeg ikke selv har fremstillet det eller programmeret koden til det. Styring af Varme- og kølelegeme(mlp) Til opgaven skulle det også gøres muligt at tilslutte et varmelegeme og et kølelegeme. Dette varme- og kølelegeme kræver en rimelig høj strøm og spænding så den regulerede strøm som kan trækkes ud af PIC'ens regulerede udgange er ikke nok. Derfor bruger jeg en af disse regulerede udgange til at styrer en transistor som så åbner op for en højere strøm og spænding. Opstillingen for transistoren kan ses nedenfor: På diagrammet symbolisere modstanden R106 vores varme / køleelement. Jeg fandt en god CPU køler fra en computer og den skulle bruge 12V. Køleren levere en effekt på 1,4W. Ud fra denne effekt kan jeg finde den modstand (R106) som, køleelementet erstatter: p U 2 R 1.4W ( 12V) V solve R R W Dette kan jeg så bruge til at finde strømmen igennem køleren / modstanden: 12V A 19

20 I C 0.117A I databladet fremgik det at transistoren som jeg benytter kun kan virke op til omkring 100 ma, men jeg prøvede lidt frem og fandt ud af at den godt kunne holde til den lille smule ekstra strøm som køleren bruger. Et billede af køleren er vedlagt i bilag 2. Jeg kan også finde strømmen som kommer ind på Base på transistoren ved at bruge en faktor for transistoren, denne faktor fandt jeg i databladet til 20. Derved blev strømmen ved base benet på transistoren: I C I B 20 solve I B A 5.85 ma I B 5.85mA Der er ikke forbindelse mellem Collector(C) og Emitter(E) på transistoren før der ligger en spænding på 0,7V mellem Emitter og Base(B) på transistoren. I og med Emitter er sluttet til stel skal der altså ligge en spænding på 0,7V på transistorens Base før transistoren åbner op for Collector til Emitter. PIC'en levere en spænding på 5V ved output og da jeg skulle bruge 0,7V på Base af transistoren skal der altså ligge en spænd ing på 5V 0,7V over modstanden R107: U 107 5V 0.7V 4.3V Jeg mangler nu blot at finde modstanden R107 og til dette bruger jeg strømmen som løber igennem modstanden R107 og den spænding som skal ligge over modstanden: 4.3V R 107 I B solve R V ma Til produktet brugte jeg en standard modstand å 680 ohm. Opstillingen er den samme for både varme- og kølelegemet. Men til projektet anvender jeg et stort varmeelement som trækker en del mere strøm. Derefter blev det nødvendigt at bruge en anden form for transistor som kunne holde op til 1.5A med nedkøling. Varmeelementet er opbygget således: 20

21 Varmeelement (JØ) Problemformulering (JØ) Til vores temperatur styring ønskede vi at lave et varmeelement, som kunne afgive en stor mængde varme, så vi fik et tydeligt udslag på vores temperatur føler. Blokdiagram (JØ) Diagram og board (JØ) Se Bilag 4 Serie- og parallel opkobling (JØ) Varmeelementet er bygget op af 6 modstands grupper. En gruppe består af 4x 10Ω modstande, som er parallel forbundet, gruppen vil derved have en samlet modstand på 2,5Ω da. De 6 grupper er så serie forbundet som giver en modstand på effekt på omkring 10 watt.. Samlet giver det en varme Udregninger (JØ) Billede af print (JØ) Se Bilag 4 21

22 Test af modul (JØ) Varmeelementet virkede rigtig godt, vi fik hurtigt et stort udsving på vores temperatur føler. Vi stødte dog på et problem, varmeelementet trak omkring 0,6 A, og det kunne den BC547 NPN transistor, som skulle åbne for strømmen, bestemt ikke holde til. Vi monterede derefter en transistor som kunne holde til det. Den blev dog varm, på grund af at den ikke blev åbnet helt op, da selve printet ikke var bygget til, at skulle sende så høj en spænding ud, til base på transistoren, som den nye transistor skulle bruge. Vi monterede derefter også en køleprofil, så transistoren bedre kunne komme af med varmen, samt satte en begrænsning på hvor lang tid varmeelement ville være tændt i koden. Hele opkoblingen(mlp) Hele opbygningen af denne del af produktet er vedlagt som Bilag 1. I dette bilag er både schematic opstillingen, tegningen af boardet og billede af det færdige board. Af diagrammet fremgår det at 3 af portens ben ikke bliver brugt til temperaturmåleren. Ben 7 og 8 bliver slet ikke benyttet i projektet, men ud fra ben 6 sætter jeg en åbning så jeg kan trække et kabel ud fra porten som jeg senere vil benytte til at vise lyset i kabinen. Transistor til styring af varmeelement(mlp) Efter produktet var opstillet og vi gennemtestede alle moduler i projektet løb vi ind i et lille problem. Vi kunne registre at varmeelementet ikke kunne slukkes og tændes som ønsket. Da vi lavede en grundig fejlfinding fandt vi ud af at transistoren, som var påsat til styringen af varmen ikke kunne holde til den høje strøm som løb igennem den. Derfor var det nødvendigt at bruge en stærkere transistor. Opstillingen forblev den sammen men vi påsatte en ny transistor som kunne holde op til 1,5A med nedkøling. Vi målte strømmen til omkring 1A og vi kunne mærke transistoren blev en smule varm så for at mindske risikoen for at transistoren skulle brænde af satte vi en køleplade på transistoren. Billeder af den nye transistor samt kølepladen er vedlagt i bilag 5. Desuden er databladet for den nye transistor også vedlagt som elektronisk bilag på CD. Programmering af displayet(mlp) Koden til styringen af displayet bliver allerførst inkluderet fra et andet script. include LCD Dette script har jeg ikke selv skrevet, kode stammer fra Bent Arnoldsen. Det denne del gør at tolke de variabler jeg skriver ind og gerne vil have ud på mit display, hvis jeg f.eks. skiver "O" vil koden selv registrer hvilke dele af syv segmentet som skal tændes for at skabe et "O". Displayet er som sagt et 16 karakters display og derfor har jeg i alt 16 pladser på displayet at gøre godt med. Det eneste som skulle ændres fra 22

23 Bent Arnoldsens kode var den pin-ben som displayet bruger. Det skulle jeg ændre fra port B til port D eftersom mit display er på port D. Programmeringen af displayet fungere på den måde at hvis jeg gerne vil havde skrevet f.eks. et H, på plads nummer 1 på displayet skriver jeg følgende i koden: LCD(1,"H") Og dette er end ved alle bogstaver og tal som kan skrives på et syv segment display. Men hvis jeg ønsker at den skal skrive f.eks. en variable som en decimaltal skriver jeg: decimal_tal(1, variable ) Og så skriver den variablen ud på plads nummer 1 som et decimal tal. Jeg vil nu gennemgå den del af min kode som har noget med displayet og visningen at gøre. Først i koden gøres displayet klar: init_lcd delay_100ms -- Gør displayet klar til at modtage Delayet er til for at displayet kan nå at reagere. Jeg bruger 2 knapper til displayet: var bit Kontakt4 is pin_c4 var bit Kontakt5 is pin_c5 -- Vælge tingen på displayet on / off -- Næste ting på display Kontakt 4 bruges til at vælge automatisk styring til eller fra. Hvad man vælger til og fra vil jeg kommer lidt ind på senere. Kontakt 5 bruges til at cirkulere i displayet. Da vi i gruppen har mange ting som skal kunne vises på displayet bliver vi nød til at vise nogle ting af gangen, og ikke det hele på en gang. Til at styrer dette bruger vi en variable: var byte disnumber = = temp + fart, 1 = autotemp, 2 = autolys Denne variable disnumber bruges til at holde styr på hvilken tilstand displayet er i. Der er i alt 3 forskellige tilstande, 0, 1 og 2. Tilstand 0 er standard tilstanden og viser farten og temperaturen. Tilstand 1 viser om automatstyringen af temperaturen er sat til eller fra og tilstand 2 gør det samme bare for automatstyringen af lyset i kabinen. Den næste del af koden er selve programeringen og findes inde i vores forever loop. Den først del af koden er cirkulationen mellem displayets forskellige tilstande: if kontakt5 then -- Skift hvad der vises på display disnumber = disnumber + 1 LCD(1," ") LCD(2," ") LCD(3," ") LCD(4," ") LCD(5," ") LCD(6," ") LCD(7," ") LCD(8," ") LCD(9," ") LCD(10," ") LCD(11," ") LCD(12," ") 23

24 LCD(13," ") LCD(14," ") LCD(15," ") LCD(16," ") if disnumber == 3 then disnumber = 0 Det koden gør er at hvis man trykker på kontakt 5 ligger den 1 til disnumber og derved skifter til næste tilstand på displayet. Desuden sletter den alt hvad der står på displayet så der ikke bliver efterladt noget fra tilstanden før. F.eks. ser man ikke længere temperaturen hvis man skifter til tilstanden om automatstyring af lys. Og eftersom der kun var 3 forskellige tilstande (0, 1, 2) vil koden automatisk skifte tilstanden til 0 hvis den er over 2. Man kan altså altid skifte hvad man vil se på displayet ved at trykke på kontakt 5. Her er de 3 forskellige tilstande men da jeg gennemgår koden til de enkelte dele afhængigt af hvad koden tilhører vil jeg ikke gå mere i dybden med displayet: if disnumber == 0 then -- temp og fart normal visning reg = reg1 + reg2 sp = reg LCD(1,"S") Decimal_Tal(5,sp) -- hastigheden LCD(12,"C") decimal_tal(15, tempe) if varmop == high then LCD(16,"H") elsif varmop == low then LCD(16,"F") if disnumber == 1 & autotemp == high then -- autotemp on visning LCD(1,"A") LCD(2,"U") LCD(4,"H") LCD(5,"E") LCD(8,"O") LCD(9,"n") LCD(10," ") LCD(12,"C") decimal_tal(15, tempe) if Kontakt4 & autotemp == high then -- Ændre fra auto-on til auto-of autotemp = low varmop = low kolned = low elsif disnumber == 1 & autotemp == low then -- autotemp of visning LCD(1,"A") LCD(2,"U") LCD(4,"H") LCD(5,"E") LCD(8,"O") LCD(9,"F") LCD(10,"F") LCD(12,"C") decimal_tal(15, tempe) if Kontakt4 & autotemp == low then -- Ændre fra auto-of til auto-on autotemp = high if disnumber == 2 & autolys == high then LCD(1,"A") LCD(2,"U") -- autolys on visning 24

25 LCD(4,"L") LCD(5,"Y") LCD(6,"S") LCD(8,"O") LCD(9,"n") LCD(10," ") if Kontakt4 & autolys == high then -- Ændre fra auto-on til auto-of autolys = low elsif disnumber == 2 & autolys == low then -- autolys of visning LCD(1,"A") LCD(2,"U") LCD(4,"L") LCD(5,"Y") LCD(6,"S") LCD(8,"O") LCD(9,"F") LCD(10,"F") if Kontakt4 & autolys == low then -- Ændre fra auto-of til auto-on autolys = high Display tilstande(mlp) Nedenfor er vedlagt billeder af displayets 3 forskellige tilstande. Tilstand 0 Tilstand 1 25

26 Tilstand 2 Programmeringen af temperaturmåleren(mlp) Jeg vil nu gennemgå min programmeringsdel af opgaven. Hele koden til projektet er vedlagt som bilag, men jeg vil her gå i dybden med den del af den samlede programmering som har noget med temperaturmåleren at gøre. Det førte jeg gør, er at inkludere et andet script. Dette bruges til at behandle data fra ADkonverteren. include mpc3201 Den andel del nemlig mpc3201 bruges til AD-konverteringen. Under afsnittet om AD-konverteren har jeg allerede forklaret hvordan AD-konverteren opsamler data og sender videre til PIC'en. Det mpc3201 koden gør er at sætte dette tal ind i en variable og kalde denne variable mpc3201. Dette tal er gemt som en byte hvor 0 svare til 0V og 255 svare til reference spændingen på AD-konverteren som i mit tilfælde var 5V. Dette er en lineær stigning af variablen i takt med spændingen og derfor bruges variablen til at give en temperatur. I den næste del af koden definere jeg de ben som jeg benytter til programmeringen. pin_a0_direction = output pin_a1_direction = output var bit kolned is pin_a1 var bit varmop is pin_a0 -- Output til varmelegeme -- Output til kølelegeme -- Output til temperaturmåling køl -- Output til temperaturmåling varme Disse 2 ben bliver brugt til at styre de 2 transistorer som åbner og lukker til stel fra henholdsvis varme- og køleelementet. Og de er hver blevet tilgivet en bit variable som enten kan være high eller low. var bit Kontakt0 is pin_c0 var bit Kontakt1 is pin_c1 -- Varme tændt -- Køl tændt Denne del er de to kontakter som tænder og slukker for varm- og køleelementet. Og de variabler jeg bruger til at styrer temperaturen er: var byte tempe = 0 var bit autotemp = low -- Variablen hvor den aktuelle temperatur gemmes -- Autotemperatur slået til / fra 26

27 var byte varmcount = 0 -- Bruges til at slukke varmeelementet Disse 3 variabler bruges altså til temperaturen. tempe variablen viser den aktuelle temperatur ud fra data fra AD-konverteren, autotemp variablen bruges til at holde styr på om automatik temperaturstyring er slået til eller fra. Og varmcount variablen er en variable vi blev nød til at tilføje til allersidst i forløbet efter produktet stod færdigt. Det var nødvendigt at tilføje den fordi varmeelementet meget hurtigt blev for varmt hvis ikke der blev slukket så den variable bruges så der automatisk slukkes for varmelegemet. Nu vil jeg gå over til selve programeringen og udregningen af temperaturen: tempe = mpc3201 tempe = tempe / 5 -- Udregning af temp Jeg bruger variablen tempe til at gemme det tal (0-255) som jeg får fra mpc3201 koden. Og da jeg under min forstærkning har regnet mig frem til at 0V svare til 0 grader og 5V svare til 50 grader dividere jeg tallet med 5 for at få den rigtige temperatur som tallet svare til i grader. F.eks. hvis tallet var 255 ville dette jo svare 50 grader og da 255 / 5 er 51 er dette et acceptabelt fejlmargin. Nu da jeg har den aktuelle temperatur fra temperaturmåleren programmere jeg automat delen: if autotemp == high then -- Autotemperaturen finder ud af om der skal varmes op eller køles ned eller ikke reguleres if tempe < 20 then varmop = high kolned = low elsif tempe > 20 then varmop = low kolned = high elsif tempe == 20 then varmop = low kolned = low Denne del af koden ser først om autotemperaturen er er slået til, og koden vil kun udvikles hvis dette er filfældet. Kort sagt gør koden blot det er se om den aktuelle temperatur er under, over eller lig med 20 grader. Hvis det er 20 grader bliver der hverken varmet op eller kølet ned, men hvis det er over 20 grader, bliver det sat gang i nedkølingen og hvis det er under 20 grader bliver der sat gang i opvarmningen. 20 grader er valgt efter en god normal temperatur men kan altid ændres til en anden temperatur efter ønske. Den næste del af koden som har noget med temperaturen at gøre er: if kontakt0 & varmop == low then kolned = low varmop = high autotemp = low elsif kontakt0 & varmop == high then varmop = low autotemp = low -- Tænd / Sluk for varmen 27

28 Denne del af koden bruges til at slukke og tænde for varmeelement og køleelement manuelt. Da man bruger same knap til at tænde og slukke for elementet (knap0 = varme, knap1 = køl) er der 2 dele som er næsten ens til hvert element. Begge dele slår den automatiske styring af temperaturen fra da hvis man bruger disse to knapper er det fordi man ikke er tilfreds med temperaturen i kabinen og derfor overruler den automatiske temperaturstyring. Den første if-sætning udvikles hvis der allerede er slukket for varmeelementet og den slukker for køl og tænder for varmen, den anden if-sætning gør det modsatte, den udvikles hvis der allerede er tændt for varmen, den slukker for varmen. Det er næsten den samme kode for nedkølningen bare det er knap 1 denne gang og ikke knap 0: if kontakt1 & kolned == low then varmop = low kolned = high autotemp = low elsif kontakt1 & kolned == high then kolned = low varmop = low autotemp = low -- Tænd / Sluk for køl En anden del af koden bruges til at sætte en maksimal tid på hvor lang tid varmelegemet må være tændt: if varmcount == 250 then varmop = low varmcount = 0 if varmop == high then varmcount = varmcount + 1 Den første if-sætning slukker for varmeelementet hvis varmcount når 250 og den genstarter variablen fra 0. Den anden if-sætning bruges til tidsstyring. Der er et samlet delay på 100ms i koden til allersidst for at give displayet tid til at reagere og derfor går der ca. 100ms for hver gang koden gennemløbes og derfor vil den sidste if-sætning ligge 10 til varmcount hvert sekund. Og sætningen ovenfor slukker altså for varmen hvis variablen når 250. Og dette vil den gøre efter ca. 25 sekunder. Dette gøres for ikke at brænde noget af på produktet da varmeelementet er så effektivt. Den sidste del af programmeringen som har noget med temperaturen at gøre er visningen på displayet. if disnumber == 0 then LCD(12,"C") decimal_tal(15, tempe) if varmop == high then LCD(16,"H") -- temp normal visning 28

29 elsif varmop == low then LCD(16,"F") Denne del af koden er standard visningen af temperaturen. Den udvikles hvis displayet er i tilstand 0. På plads nummer 12 på displayet skives et C for at symbolisere celsius og altså temperaturen, på plads nummer 15 skrives så temperaturen som er gemt i tempe variablen. Desuden skrives der et H (High) eller F (Fail) på plads nummer 16 på displayet. Dette var noget vi satte ind af synsmæssigt årsag. Og det eneste det gør er at vise om der er tændt eller slukket for varmen. Det er umuligt at se på varmeelementet alene om det er slukket eller tændt. På køleelementet kan man tydeligt se om blæseren er tændt eller slukket. Den næste del af koden bruges til at slå den automatiske styring af temperaturen til eller fra. Dette kan man kun hvis displayet er i tilstand 1: if disnumber == 1 & autotemp == high then LCD(1,"A") LCD(2,"U") LCD(4,"H") LCD(5,"E") LCD(8,"O") LCD(9,"n") LCD(10," ") LCD(12,"C") decimal_tal(15, tempe) if Kontakt4 & autotemp == high then -- autotemp on visning -- Ændre fra auto-on til auto-of autotemp = low varmop = low kolned = low Denne del af koden udvikles kun hvis displayet er i tilstand 1 og autotemperaturstyring allerede er slået til. Den skriver på displayet: AU(auto) HE(Heating) On og derefter skriver temperaturen ud ligesom når displayet var i tilstand 0 med et C foran for at symbolisere celsius. Inde i denne if-sætninger er så en anden if-sætning. Denne bliver kun gennemgået hvis displayet er i tilstand 1, autotemp er high og kontakt 4 bliver trykket ned. Det sætningen gør er at slukke for autotemperaturstyringen og slukke for varme- og køleelementet som autotemperaturreguleringen eventuelt har startet. Den næste del af koden ligner meget den som lige er gennemgået. elsif disnumber == 1 & autotemp == low then -- autotemp of visning LCD(1,"A") LCD(2,"U") LCD(4,"H") LCD(5,"E") LCD(8,"O") LCD(9,"F") LCD(10,"F") LCD(12,"C") decimal_tal(15, tempe) if Kontakt4 & autotemp == low then -- Ændre fra auto-of til auto-on autotemp = high 29

30 Denne kode bliver kun gennemløbet hvis displayet er i tilstand 1 og autotemp er low. Altså enten denne del eller den gennemgået lige før bliver løbet igennem hvis displayet er i tilstand 1. Denne kode skriver blot AU(auto) HE(Heating) Off på displayet når der ikke er sluttet autotemperaturreguleringen til. Og ligesom før kan man trykke på knap 4 og hvis displayet er i tilstand 1 og autotemp er low vil den nu ændre autotemp til high og derved slå automatisk temperaturregulering til. Knapper(MLP) Til at kunne styrer vores produkt bestemte vi at lave en print kun med de knapper vil ville bruge. Derfor tænkte vi først over hvilke ting vi ville kunne styrer manuelt. Her besluttede vi os for varmeelement, køleelement, lyset og vinduesviskerne. Derfor skulle der altså alene bruges 4 knapper til manuel styring af forskellige ting på produktet. Det blev også hurtigt klar for os at vi blev nød til at kunne cirkulere i displayet da vi ikke kunne skrive alt vores information på bare 16 karakterer. Derfor skulle vi altså også have en knap til at cirkulere på displayet. Til sidst skulle vi også have en knap til at slå automatisk styring til eller fra på nogle af elementerne i produktet, temperatur og lys i kabinen. Knappernes forskellige funktioner er gennemgået under de afsnit som tilhører det knapperne bliver brugt til. Alle knapperne er tilsluttet på port C på PIC'en og der findes kun knapper på denne port. Knapperne er elle opbygget på denne måde: R301 er en pulldown modstand som trætter knappen lav når der ikke er trykket, men når der så trykkes på knappen kommer der 5V input til PIC'en. Modstanden er en standard pulldown modstand på 100k Ohm. Et samlet diagram, board og billede af færdigt board er vedlagt i bilag 3. I bilag 3 fines også billede af displayet. Vinduesvisker (JØ) Problemformulering (JØ) Et af de moduler vi ønskede at bygge, var styringen til en vinduesvisker. Vinduesviskeren var ikke det første modul vi var begyndt med, og da koden til hastighedsmåler modulet skulle benytte interrupt samt delay, var vi nødt til at begrænse koden til vinduesviskeren, vi valgte derfor at bygge styringen til en DC-motor, frem for en step motor som ganske vist ville være nemmere mekanisk, men den ville kræve mere kodning, end vi måske havde plads til. 30

31 Da en DC-motors retning er bestemt af strømmens retning, var vi nødt til at bygge noget elektronik til at vende strømmens retning, ved blot at sende et output ud fra PIC en. Når en DC-motor har fået skiftet strøm retning, vil den stadig løbe lidt i den oprindelige retning, før den stopper og drejer i den nye retning. Når den løber i den oprindelige retning, efter at strømmen lige er blevet vendt, vil den sende en voldsom stor spænding i retning mod den nye strømretning, vi er derfor nødt til at montere en kondensator, som kan oplagre den høje spænding fra motoren samt nogle dioder, så strømmen ikke løber ned til de komponenter som ikke kan tåle det. Da vi ikke kunne bygge en gearing til motoren, var vi nødt til at give den en lav spænding, så den ikke kørte for hurtig, problemet var bare at, ligesom ved en el pære, vil motoren kræve en ekstra høj spænding for at komme i gang. Selve vinduesviskeren skal skifte retning, når den rammer en af de 2 kontakter, som skal sættes op på hver side af viskeren. Vi kan således opsummere det til disse punkter: Få input fra 2 kontakter/knapper. Lave en styring (H-bro) som kan ændre strømmens retning. Undgå at komponenter tager skade når strømmen vendes. Sænke spændingen motoren får fra de 4,8V vi får fra PIC en til et sted mellem 1,5V og 3V. Blokdiagram (JØ) 31

32 H-bro (JØ) En H-bro er et kredsløb som kan vende strømmen på et output. I kredsløbet er der 4 transistorer, 2 NPN og 2 PNP, de 2 NPN transistorer går til 2 outputs fra PIC en. På diagrammet herunder har jeg kaldt de 2 PNP transistorer 1 og 2, samt de 2 NPN transistorer 3 og 4. Når nummer 3 er lukket og 4 er åben (på grund af høj fra output 2), vil 4 eren også åbne for nummer 1, da nummer 4 åbner op så nummer 1 s base bliver trukket lav. Der vil derved løbe høj gennem nummer 1, og da nummer 2 s base er tilsluttet lige efter nummer 1 s emitter, vil den altid være lukket når nummer 1 er åben og omvendt. Der er tilmed monteret dioder, så strømmen ikke kan løbe i de forkerte retninger, samt en kondensator til at oplagre den strøm, som en motor eventuelt vil lave, efter et skift af strømmens retning, så man ikke kortslutter kredsløbet, på grund af en modsat rettet strøm. Diagram og board (JØ) Se Bilag 6 Udregninger (JØ) I H-broen er der også 4 modstande, som skulle udregnes så der ville ligge en spænding på 0,7 V, over transistoren. 32

33 For at få de 4,5 V fra PIC en ned på de 1,5 V, som vi ønsker at motoren skal have, var vi nødt til at lave en spændings deler, først lavede vi den med 2 modstande, hvor det var forholdet mellem de 2 modstande, som afgjorde hvor stor spænding man havde efter dem. Vi fik også ca. 1,5 V, men da motoren trak mere for at komme i gang, ville denne løsning ikke virke, så vi var nødt til at benytte en anden metode, til at komme ned på 1,5V. Vi valgte derfor at benytte 5 dioder (1N4007) i en serie forbindelse, da en diode tager omkring 0,5-0,6 V af spændingen. Da vi gerne ville være sikre på at vi kunne få motoren til at køre, valgte vi at bygge et denne del af kredsløbet op, med en jumper og 3 pins, hvor man så kan vælge, om man vil kører over 5 dioder, eller 4 dioder, alt efter hvor stor motor der er tilsluttet. Det viste sig dog alligevel ikke at være nok. Kode (JØ) pin_b1_direction = input -- Input fra viskerne 1 pin_b2_direction = input -- Input fra viskerne 2 pin_b3_direction = output -- Output fra viskerne 1 pin_b4_direction = output -- Output fra viskerne 2 var bit Kontakt2 is pin_c2 var bit viskin1 is pin_b1 var bit viskin2 is pin_b2 var bit viskud1 is pin_b3 var bit viskud2 is pin_b4 var bit viskon = low var bit waypoint = low -- Visker til -- Input 1 til viskerne -- Input 2 til viskerne -- Output 1 til viskerne -- Output 2 til viskerne -- Er viskerne sluttet til / fra forever loop If viskon == high then if waypoint == high then viskud2 = low viskud1 = high 33

34 elsif waypoint == low then viskud1 = low viskud2 = high if viskin1 == high then waypoint = high elsif viskin2 == high then waypoint = low if kontakt2 & viskon == low then viskon = high elsif kontakt2 & viskon == high then viskon = low viskud1 = low viskud2 = low end loop Koden styrer hvilken retning strømmen, som motoren får, skal have alt efter hvilke kontakter (viskin1 og viskin2), der bliver trykket på. Viskud1 og viskud2 går til hver sin af de to NPN transistorer i H-broen. Waypoint variablen er der så koden kan se hvilken retning viskeren er på vej i. Viskon og Kontakt2 er styring, til at kunne tænde og slukke for vinduesviskeren, Kontakt2 sidder på det print vi har, hvor alle kontakter til styring er samlet på. Billede af print (JØ) Se Bilag 6 Test af modul (JØ) Da vi testede vores endelige print, fandt vi frem til en fejl vi havde lavet, samt et problem vi ellers havde taget højde for. Det første var ganske enkelt en gemen fejl i printet, med hensyn til hvordan pulldown modstandene sad på kontakterne, vi løste dette problem ved at montere nogle nye pulldown modstande, på de rigtige forbindelser. Til højre ses de nye pulldown forbindelser. Det andet problem vi havde, var at selvom motoren fik en høj nok spænding til at køre med en passende hastighed, men den kunne ikke starte uden hjælp, da den krævede en højre spænding end den kunne få. Vi prøvede derfor at montere en mindre motor, men den kørte med en alt for stor hastighed. Vi kunne derefter godt se, at vi skulle have givet motoren 12V, samt monteret en form for gearing. Vi løste derfor dette problem ved blot at montere 2 lysdioder, så man tydeligt kan se at der bliver skiftet retning, vi viser derved at printet som sådan, virker som det skulle, og at det blot er den motoriske del som ikke fungerede. 34

35 Automatisk lys (JØ) Problemformulering (JØ) Dette modul skal automatisk kunne tænde lys, hvis det bliver mørkt. Modulet er beregnet til at styre kabinelyset i en bil, ikke forlygterne. Vi ønsker også at manuelt kunne slukke for lyset, i tilfælde af at man ikke ønsker er have lys i sin kabine om natten. Dette kan opsummeres til disse punkter: Lyset skal tænde når det bliver mørkt, og slukke når det er lyst. Lyset skal kunne slukkes, hvis man ikke ønsker at have det tændt. Blokdiagram (JØ) Diagram og board (JØ) Se Bilag 7 LDR (JØ) En LDR er en modstand som bliver lav når den bliver belyst. LDR står for Light Dependent Resistor, og den fungerer ved at opfange fotoner i en halvleder, som så giver de bundne elektroner nok energi til at springe over mellemrummet i LDR en, og derved danne en forbindelse. Kode (JØ) pin_e0_direction = input var bit Kontakt3 is pin_c3 var bit Kontakt4 is pin_c4 var bit Kontakt5 is pin_c5 -- Input fra lys-sensor -- Lys tændt -- Vælge tingen på displayet on / off -- Næste ting på display 35

36 var bit lightz is pin_a5 var bit lighton is pin_e0 var byte disnumber = 0 var bit autolys = low -- til lys -- input fra lys-sensor -- 0 = temp + fart, 1 = autotemp, 2 = autolys -- Autolys slået til / fra forever loop if autolys == high then -- Styring af autolys if lighton == high then lightz = low elsif lighton == low then lightz = high if kontakt3 & lightz == low then autolys = low lightz = high elsif kontakt3 & lightz == high then autolys = low lightz = low -- Tænd / Sluk for lys if disnumber == 2 & autolys == high then -- autolys on visning LCD(1,"A") LCD(2,"U") LCD(4,"L") LCD(5,"Y") LCD(6,"S") LCD(8,"O") LCD(9,"n") LCD(10," ") if Kontakt4 & autolys == high then -- Ændre fra auto-on til auto-of autolys = low elsif disnumber == 2 & autolys == low then -- autolys of visning LCD(1,"A") LCD(2,"U") LCD(4,"L") LCD(5,"Y") LCD(6,"S") LCD(8,"O") LCD(9,"F") LCD(10,"F") if Kontakt4 & autolys == low then -- Ændre fra auto-of til auto-on autolys = high end loop Det koden egentlig gør, er at den sætter variablen lightz til high, hvis LDR en ikke får nok lys, det resultere i at vores lille print med lysdioder bliver tændt. Det som gør koden noget mere avanceret, er at der er en del betingelser som skal være opfyldt, før lightz kan blive sat til high. Ligesom vinduesviskeren, har denne kode også en variabel, til at styre om modulet er tændt eller slukket. Billede af print (JØ) Se Bilag 7 36

37 Test af modul (JØ) Dette modul fungerede præcist som vi havde ønsket at det skulle. Vi fik dog ikke testet hvor mange lux der skulle til, for at lyset slukkede/tændte. Hastighedsmåler (AK) Formål (AK) I en bil er det meget praktisk at kende bilens hastighed og jeg besluttede os derfor for at konstruere en anordning til dette. Krav til løsning (AK) Inden jeg begyndte at arbejde med at fremstille et produkt, opstillede jeg flere krav som skulle opfyldes: Skulle kunne fungere på en pic af typen 16f877 Præcis registrering af bevægelse, både analog (komponent) og digitalt (koden i piccen) God behandling af data Sende output ud på et display Brugeren skal ikke indstille noget En lille motor skulle repræsentere den bevægelse et hjul på en bil ville foretage Løsning (AK) Ud fra kravene kom jeg frem til, at løsning skulle bestå af følgende dele: Registrering af hjulets bevægelse Behandling af data Output (hastighed) Jeg skulle altså finde en måde at registrere en bevægelse på, behandle denne registrering og til sidste smide en hastighed ud på et display. 37

38 Det første problem der skulle løses, var at finde en måde at registrere hjulets bevægelse. Jeg blev foreslået at bruge en såkaldt lysgaffel, som meget enkelt er en transistor og en lysdiode sat overfor hinanden: Lysgaflen virker ved at der konstant sendes lys ud fra dioden i den ene side, og transistorens basis er følsom overfor lys, det vil sige den åbner op for strømmen fra collector til emitter når der ikke er noget som blokerer lyset. Dette kunne jeg udnytte i projektet, da jeg nu havde en måde at registrere en bevægelse på. I praktisk udnytter jeg det på denne måde: Jeg sætter altså motoren til at rotere hjulet, som derved blokerer lyset noget af tiden. Inputtet (signalet) til piccen registreres så og ud fra det, burde en hastighed kunne beregnes. 38

39 Ud fra hjælp fra læreren, fandt jeg ud af at lysgaflen skulle sættes op i følgende system: Dioden er i serie med en modstand R202 på 680Ω for at sikre at den ikke brænder af, og transistoren er i serie med en modstand R201 på 100kΩ for at gøre strømmen igennem den læsbar for piccen (cirka 5V ved signal og 0V uden signal). På lysgaflen sidder der 4 ben, som jeg loddede ledninger på, så det kunne sættes ind i et kredsløb. Selve lysgaflen kom fra en printer, og det var derfor ikke muligt at finde et datablad for det. Jeg blev derfor nødt til at prøve os frem, da jeg skulle finde hvilke ben på lysgaflen, der hørte til dioden og transistoren. Da det var gjort, fik jeg lavet det første og sidste diagram for hastighedsmåleren: 39

40 Lysgaflens ledninger skrues så fast i de to headere (x1 og x2), og inputtet sendes så ind på ben 1 (markeret som 1 på porten på diagrammet) på en port som går til piccen. Kredsløbet får 5V på ben 9 og stel på ben 10. Se bilag 8 for billede af det færdige produkt Hastigheds programmering (AK) Selve elektronikken til hastighedsmåleren var altså hverken tidskrævende eller kompliceret, men da jeg kom i gang med at arbejde med registrering og behandling af inputtet fra lysgaflen (programmering), viste det sig hurtigt at det var her udfordringen fandtes. I resten af arbejdet med hastighedsmåleren, blev der udelukkende arbejdet med programmeringsdelen, og jeg vil derfor gennemgå nogle af de forskellige løsninger jeg har arbejdet med. Dele koderne er blevet skåret fra, dels for at spare plads og dels for ikke at fokusere for meget på irrelevante dele af arbejdet. Det er først i den sidste version af koden, at der blev udregnet en reel hastighed. Grunden til dette er at jeg i de tidlige versioner gik efter at få nogle præcise data, da jeg vidste at omregning af bevægelse til en hastighed var ret let, så jeg spildte ikke tid på at lave beregninger af hastigheder. 1. Test af input (AK) Dette var det første kode jeg lavede. Koden havde den enkle opgave at registrere om et bestemt ben var højt eller lavt (signal fra lysgaflen) og hvis den var høj, så skulle den vise 1 på displayet og hvis ikke, så vise 0. init_lcd -- Gør displayet klar til at modtage delay_100ms(5) var bit lol is pin_a0 -- Ben som der sendes signal til pin_a0_direction = input -- Sætter direction på benet til input var byte counter = 0 -- Variabel til registrering forever loop if lol then -- Tjekker om ben a0 er højt counter = 1 -- Sætter counter til 1 else -- Hvis ikke ben a0 er højt, så sættes counter til 0 counter = 0 Decimal_tal(13, counter) -- Smider værdien af counter ud på displayet output_lcd_buf -- Skriv bufferen til displayet delay_100ms() -- Vent lidt, så displayet kan reagere end loop 40

41 Koden virkede efter hensigten og gjorde præcist som jeg ønskede. Piccen aflæste tydeligvis inputtet korrekt, og det var muligt at arbejde med det. 2. Første tæller (AK) Da jeg havde konkluderet at piccen let kunne aflæse inputtet, gik jeg videre til at ville registrere bevægelsen. Mere specifikt, ville jeg have koden til at registrere hvor lang tid en halv omgang tog. Koden skulle ikke længere bare se på inputtet, den skulle holde styr på bevægelsen. init_lcd -- Gør displayet klar til at modtage delay_100ms(5) var bit lol is pin_a0 -- Ben som der sendes signal til pin_a0_direction = input -- Sætter direction på benet til input var byte counter = 0 -- Variabel for input var byte tid = 0 -- Variabel til registrering var bit mcmowgly = high -- Variabel til at holde styr på bevægelsen var byte mcnice = 0 -- Tiden for en halv omgang forever loop if lol then -- Lægger 1 til variabel tid tid = tid + 1 mcmowgly = high elsif lol == low & mcmowgly then -- Gemmer tiden i en anden variabel når mcnice = tid -- lyset bliver afbrudt mcmowgly = low elsif lol == low & mcmowgly == low then -- Resetter tid, efter den er blevet tid = 0 -- gemt i en anden variabel if lol then counter = 1 else counter = 0 -- Tjekker om lyset er brudt eller ej Decimal_tal(10, tid) -- Smider variablerne ud på displayet Decimal_tal(13, counter) Decimal_tal(7, mcnice) output_lcd_buf -- Skriv bufferen til displayet delay_10ms(5) -- Vent lidt, så displayet kan reagere end loop Koden lægger hele tiden 1 til tid, så længe lyset ikke er blokeret. Så snart lyset bliver blokeret, gemmer den tiden i en anden variabel mcnice og bagefter resetter den tid. Disse tre variabler skulle så vises på displayet. 41

42 Koden virkede sådan set efter hensigten, men den gjorde os også opmærksom på et problem med registrering af inputtet: Den del af koden som ser på inputtet, altså om lyset bliver blokeret eller ej, bliver kørt efter et vist tidsinterval (delay + den tid det tager at afvikle koden, som senere målt til cirka 7ms). Det vil altså sige, at koden godt kan misse noget af bevægelsen, fordi koden enten står og venter eller er ved at afvikle noget andet. Ideelt set skulle koden registrere konstant, og dermed begynde at tælle, så snart lyset ikke er blokeret, men det gik op for os at det ikke var muligt. Ved lave hastigheder betyder det ikke så meget, men som hastigheden stiger, falder præcisionen, fordi koden simpelthen ikke fanger det øjeblik hvor blokeringen (hjulet) er væk. 3. Reg -metoden (AK) Jeg konkluderede at metoden med at tælle tiden for hver omgang, hverken var præcis eller praktisk. Jeg diskuterede problemet med Bent Arnoldsen, og han foreslog en ny måde at registrere bevægelsen på, nemlig at tælle omgang i et bestemt tidsinterval. For at gøre det endnu mere præcist, skulle registreringen foregå over længere tid, ved at registrere i flere omgange. Fordelen ved denne metode var at registreringen bliver mere præcis, idet små usikkerheder får mindre udslag for det endelige resultat. Ulempen er til gengæld at registreringen for det første er et gennemsnit og at registreringen foregår over et stykke tid, så en hastighedsændring bliver første læsbar efter noget tid. init_lcd -- Gør displayet klar til at modtage var bit foel is pin_a0 -- Ben som der sendes signal til pin_a0_direction = input -- Sætter direction på benet til input var byte periode = 0 var bit last_foel var byte nr = 0 var byte counter = 0 var byte reg = 0 var byte reg1 = 0 var byte reg2 = 0 var byte reg3 = 0 var byte reg4 = 0 forever loop -- Smider de to variabler ud på displayet Decimal_tal(4, reg) Decimal_tal(7, counter) output_lcd_buf periode = periode Lægger 1 til periode hvert loop if periode == 100 then ms nr = nr + 1 if nr == 1 then -- Gemmer counter i reg1 efter 700ms reg1 = counter reg1 = reg1 / Dividerer med 10 for at undgå for store tal periode = 0 -- Resetter periode elsif nr == 2 then -- Gemmer counter i reg2 efter 1400ms 42

43 reg2 = counter reg2 = reg2 / 10 periode = 0 elsif nr == 3 then reg3 = counter reg3 = reg3 / 10 periode = 0 elsif nr == 4 then reg4 = counter reg4 = reg4 / 10 nr = 0 periode = 0 -- Gemmer counter i reg3 efter 2100ms -- Gemmer counter i reg4 efter 2800ms -- Resetter nr reg = reg1 + reg2 + reg3 + reg4 -- Summen af de 4 regs counter = 0 -- Resetter counter if foel then -- Tjekker om der er signal if! last_foel then -- Tjekker om der var signal ved sidste registrering counter = counter Lægger 1 til counter last_foel = true else -- Hvis der ikke er signal sættes last_foel til false last_foel = false delay_1ms end loop -- end forever Ved en måling med et digitalt oscilloskop havde jeg målt at det tager cirka 7ms at løbe igennem et loop (inklusiv et delay på 1ms). Det udnyttede jeg ved at sige, at 100 gennemløb var lig med 700ms, og da jeg kunne tælle omgangene, havde jeg to ret præcise registreringer, som jeg så kunne bruge til at beregne en hastighed. For at udelukke de usikkerheder der er ved målingen, blev der for det første registreret over de 700ms, og dette skete fire gange før det endelig resultat var fundet. Dette betød at målingen var rimelig præcis, men det var et gennemsnit af de sidste 2,8s og dette er som bekendt ikke praktisk i en bil. Et andet problem med koden var at den stadig ikke løste problemet med at den missede målinger, selvom den forbedrede dataene en del. Det største problem var dog stadig at målingen foregik over for lang tid. En løsning på dette kunne have været at registrere over kortere tid, men blev registreringen mere upræcis. Den forringede præcision var måske overkommelig, men jeg ønskede at hastighedsmåleren skulle være så præcis som mulig, samtidig med den var praktisk, så jeg skrottede også denne kode og gik videre til en helt anden løsning. 43

44 4. Interrupt og færdige version (AK) Da det stod klart at det ikke var muligt at lave en præcis og praktisk måling af hastigheden med nogle af de foregående metoder og jeg havde diskuteret dette med lærerne, præsenterede Bent Arnoldsen mig for en metode at registrere tid og bevægelse på: Interrupt. En interrupt er et stykke kode, som kan kaldes uafhængigt af hvad koden ellers har gang i. Dette kunne for eksempel være at den skal køre noget kode efter et bestemt tidsinterval eller når et ben bliver højt, og dette er jo enormt praktisk for min løsning. Selve kodningen og måden interrupten virker på er meget avanceret, men ved at gå ud fra et eksempel med interrupt fra Bent Arnoldsens hjemmeside 1, fik jeg lavet en kode der kan registrere bevægelsen og gemme dataene i variabler. Koden som er vist her var ikke den første jeg lavede, men da der ikke er stor forskel på de første test-versioner og den endelige version, har jeg valgt kun at vise den endelige. var byte reg = 0 var byte count = 0 var byte tim_30 = 0 var bit foel is pin_b0 var byte reg1 = 0 var byte reg2 = 0 var byte sp = 0 var byte skf = 0 -- Ben som der sendes signal til procedure time_int is tim_30 = tim_ Tæller op if tim_30 < 30 then -- Returner hvis tim_30 ikke er større end 30 return tim_30 = 0 -- Resetter tim_30 if skf == 0 then reg1 = count -- Gemmer count i reg1 skf = 1 -- Skifter skf count = 0 -- Resetter count elsif skf == 1 then reg2 = count -- Gemmer count i reg2 skf = 0 -- Skifter skf count = 0 -- Resetter count end procedure procedure speed is pragma interrupt if intcon_t0if then -- Test om det var timeren der lavede interrupt TMR0 = Sæt en ny værdi op til timeren time_int -- Udfør koden til timer-interruptet intcon_t0if = False -- Gør klar til næste timer interrupt if intcon_intf then -- Test for Port B0-intrerrupt count = count Lægger 1 til count intcon_intf = False -- Slet INTF for at re-enable b0 interrupt end procedure

45 intcon_t0ie = True intcon_inte = True intcon_rbie = False intcon_gie = True -- Sæt timerinterrupt aktivt -- Passiver Port B ben 0 interrupt -- Passiver Port B ben 4-7 kanttrigget interrupt -- Enable interrupt generelt option = 0b_1000_ timer interrupt på 128 * TMR0 pin_b0_direction = input init_lcd forever loop reg = reg1 + reg2 Decimal_Tal(5,sp) -- Gør displayet klar til at modtage -- Lægger de to variabler sammen -- Output output_lcd_buf() delay_100ms end loop Koden indeholder to interrupts: En der bliver kørt efter et bestemt tidsinterval (værdien af denne er forklaret senere) og en der bliver kørt når ben0 går fra false til true, altså når der kommer signal ind på ben0. Da disse interrupts bliver kørt uafhængigt af delays og så videre, bliver dataene utroligt præcise og det var altså den ideelle løsning. if intcon_intf then -- Test for Port B0-intrerrupt count = count Lægger 1 til count intcon_intf = False -- Slet INTF for at re-enable b0 interrupt Denne del af koden har den enkle opgave at lægge 1 til variablen count, hver gang ben0 går fra false til true, altså når blokeringen forsvinder. if intcon_t0if then -- Test om det var timeren der lavede interrupt TMR0 = Sæt en ny værdi op til timeren time_int -- Udfør koden til timer-interruptet intcon_t0if = False -- Gør klar til næste timer interrupt Dette stykke kode kører proceduren time_int hvert 128us * TMR0. procedure time_int is tim_30 = tim_ Tæller op if tim_30 < 30 then -- Returner hvis tim_30 ikke er større end 30 return tim_30 = 0 -- Resetter tim_30 if skf == 0 then reg1 = count -- Gemmer count i reg1 skf = 1 -- Skifter skf count = 0 -- Resetter count 45

46 elsif skf == 1 then reg2 = count skf = 0 count = 0 end procedure -- Gemmer count i reg2 -- Skifter skf -- Resetter count Denne procedure bliver som sagt kørt hvert 128us * TMR0. Det lægger hele tiden 1 til variablen tim_30. Når time_int proceduren er kørt 30 gange, resettes tim_30 og koden går videre til at gemme variablen count i reg1 og resetter count. Når time_int så er kørt 30 gange igen, gemmes count i reg2 og så videre. På den måde får man data over længere tid og får altså mindre usikkerhed. forever loop reg = reg1 + reg2 sp = reg Decimal_Tal(5,sp) -- Lægger de to variabler sammen -- Output på display output_lcd_buf() delay_100ms end loop Til sidst gemmes de to reg s i en samlet variabel sp, som er hastigheden. Sp bliver så smidt ud på displayet. Min endelige kode blev senere sat sammen med koden som de andre fra gruppen havde lavet. Dette betød ikke det store for mig, idet det eneste der skulle ændres var når hastigheden skulle beregnes og smides ud på displayet. Koden kom til at se således ud: if disnumber == 0 then -- temp og fart normal visning reg = reg1 + reg2 sp = reg LCD(1,"S") Decimal_Tal(5,sp) -- hastigheden Hastigheden skal altså kun beregnes og smides på displayet når variablen disnumber er 0. Samtidig har jeg også tilføjet et S (Speed) på displayet, for at indikere at det er hastigheden som nu bliver vist. For at gøre målingen endnu mere præcis, valgte jeg at udskifte min hjul med et nyt: 46

47 Dette betød at jeg fik dobbelt så mange data og det skulle gerne gøre målingerne mere præcise. Beregning af hastighed (AK) Da jeg endelige havde fået en metode til at registrere præcist, kunne jeg gå i gang med at udregne hastigheden. Som udgangspunkt ville jeg udregne hastigheden ved at kigge på et almindeligt bildæk med en radius på 30cm. Formlen for hastigheden for en cirkelbevægelse er givet ved: v 2 r T Hvor r er hjulets radius og T er omløbstiden. Jeg ville udregne hastigheden ved at registrere omgange inden for et bestemt tidsinterval. Dette interval skulle være stort nok til at der kan indsamles nok data, men heller ikke for langt til at der går for langt mellem opdateringerne. For at gøre udregningerne så enkle som muligt, gik jeg efter at omdrejningerne som var blevet registreret kunne ganges med et simpelt tal når hastigheden skulle udregnes. Ved at rode lidt rundt i nogle udregninger, kom jeg frem til at intervaller af 0,85s passede meget godt. Det var lang tid nok til at der kom nogle data, og heller ikke for lang tid til at det blev upraktisk for føreren af bilen. Omgangene ( count ) bliver altså gemt hver 0,85s, så der reelt går 1,7s fra en hastighedsændring finder sted, til den kan registreres på displayet. De 0,85s omregnes så piccen kan bruge det ved formlen: 128us 30 tmro 0.85s solve tmro TMR0 sættes så til -221 Formlen for hastigheden kom til at se således ud: 47

48 V 2 30cm 1.7s reg 2 30cm 1.7s km hr Det vil sige at hvis reg = 1 (0,5 omgange på 1,7s) køres der 4km/t. Denne formel viste sig at være ret upraktisk, da motoren er meget følsom, og dens hastighed ændres meget når man ændrer dens spænding en smule. I praktisk gjorde dette at bare man ændrede motorens spænding med 0,2V steg hastigheden med 40-60km/t. Udregningerne og dataene var sådan set rigtige, men det er meget upraktisk hvis man vil lave målinger på den eller bare vise dens funktion. Løsningen på dette problem kunne enten være at måle over længere tid, hvilket ville være meget upraktisk i en bil, eller antage at bilen kører på meget små hjul. Jeg valgte den sidste, simpelthen for at gøre produktet mere brugervenligt. Radiusen blev nedsat fra 30cm til 7,5cm og dermed kunne jeg pludselig måle i intervaller af 1km/t i stedet. Den nye formel kom så til at se således ud: V 2 7.5cm 1.7s reg 2 7.5cm 1.7s km hr Koden for hastigheden kom så simpelthen til at være v = reg = (reg1 + reg2) Test af hastighedsmåler (AK) Forsøg med stroboskop (AK) Til at teste om den hastighed vi beregner på vores hastighedsmåler stemmer overens med den reelle hastighed for motoren brugte vi et stroboskop. Stroboskopet udsender lysblink ved bestemte frekvenser og derfor programmerede vi displayet til at give omdrejninger per sekund i stedet for hastigheden til dette forsøg. På den ene af de to vinger på hjulet satte vi et lille stykke papir og satte motoren i gang. Hvis hjulets og stroboskopets frekvens var ens, burde hjulet se ud som om den står stille. Hvis stroboskopets frekvens og den frekvens der blev angivet på displayet var ens, måtte det betyde at hastighedsmåleren er præcis. I forsøget satte vi motoren i gang og forsøgte så at indstille stroboskopet så hjulet så ud til at stå stille, og noterede frekvensen, både det på displayet og det på stroboskopet. Data for forsøget er givet nedenfor enheden for Strobo og display er givet ved omdrejninger per sekund og spændingen er givet i volt. 48

49 Strobo Display Spænding , , , , Strobo Display ,3 0,35 0,4 0,45 0,5 0,55 0,6 0,65 Som man kan stiger de to frekvenser konstant hvilket passer overens med det forventede. Dog er der en mindre afvigelse mellem den målte værdi på stroboskopet og værdien aflæst på displayet. Vi er i gruppen overbevist om at grunden til denne afvigelse er at det var meget svært at aflæse den reelle frekvens på stroboskopet. Et billede af forsøgsopstillingen er vist nedenfor. Billede fra forsøget, hvor man ser stroboskopet til venstre, motoren i midten og displayet + pic ligger på bordet. 49

50 Fart (km/t) El Teknik Fart og spænding (AK) Ud over forsøget med stroboskopet lavede vi også en test for at se hvor godt hastighedsmåleren fungerede. Hastighed ,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 Spænding (V) Forsøg1 Hastighedsmåleren ser ud til at fungere fint, dog har den lidt problemer i starten. Dette skyldes at motoren ikke er ret kraftig og den har svært ved at rotere ved spændinger under 0,2V. Programmering Den samlede kode er vedlagt som elektronisk bilag og som Bilag 9 i rapporten. Konklusion Igennem vores projekt har vi fået opstillet de moduler som vi i projektplanen havde besluttet os for. Vi har fået alle modulerne til at fungere sammen og fået dem samlet på en central styringsenhed. Som det var opstillet i problemformuleringen ønskede vi en overskuelig måde at aflæse de forskellige ting i bilen, som temperatur og hastighed, og dette er også blevet opnået. De moduler som vi havde bestemt os for skulle virke manuelt og de moduler som skulle virke automatisk fungerer også tilfredsstillende. Nogle ting har været meget nye for os i processen og derfor har det været nødvendigt i flere tilfælde at tænke udenfor de normale rammer, og især under programmeringen af de forskellige moduler blev der stof til eftertanke i gruppen. 50

51 Der er nogle småting ved produktet som ville have været bedre hvis mere tid havde været til rådighed. Men vi har fået løst alle de ting jeg gerne ville med projektet og vi har alle i gruppen fået arbejdet med både hardware og software i forløbet. Idet vi alle har arbejdet med både hardware og software har der været god mulighed for internt i gruppen at hjælpe hinanden. Selvom vi hver især har arbejdet med hver vores moduler har der på intet tidspunkt været problemer i at spørge om hjælp af andre medlemmer i gruppen. Alle medlemmer i gruppen har forsøgt at sætte sig ind i hverandres dele og moduler for bedre at kunne støtte hinanden gennem processen. Igennem projektet har vi lagt meget op omkring emner inden for fysikken, f.eks. til frekvens beregninger under hastighedsmåleren og effekten ved varmelegemet. 51

52 Bilag 1 Schematic opstilling af temperaturmålings modulet 52

53 Board til temperaturmålings modulet Billede af færdigt temperatur board 53

54 Bilag 2 Billede af køleren som blev brugt til projektet 54

55 Bilag 3 Schematic opstilling af knap modulet 55

56 Board til knapper Billede af færdigt knap board og display 56

57 Bilag 4 Billede af schematic varme board Billede af varme board Billede af det færdige varme print 57

58 Bilag 5 Transistor med køleplade til styring af varmeelement 58

59 Bilag 6 Billede af schematic for vinduesviskeren Billede af board for vinduesviskeren 59

Projekt Træningsmaskine

Projekt Træningsmaskine Computer- og El-teknik A. Holstebro Tekniske Gymnasium - HTX Projekt Træningsmaskine Afleveret: Fredag d. 10/10-2008. Udarbejdet af: Bent Arnoldsen, Holstebro HTX. Gruppemedlem: Hjalmar Krarup Andersen,

Læs mere

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... 3 Kildekoden... 4 Variabler... 4 Setup... 4 Loop... 4 Indledning

Læs mere

Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B

Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B Udarbejdet af: Mathias R W Sørensen, klasse 3.4 Udleveringsdato: 02-03-2012 Afleveringsdato: 11-05-2012 IT-vejleder: Karl G. Bjarnason

Læs mere

Arduinostyret klimaanlæg Afsluttende projekt programmering C

Arduinostyret klimaanlæg Afsluttende projekt programmering C Arduinostyret klimaanlæg Afsluttende projekt programmering C Udarbejdet af: Mathias R W Sørensen, klasse 3.4 Udleverings-dato: 02-03-2012 Afleverings-dato: 11-05-2012 Programmeringvejleder: Karl G. Bjarnason

Læs mere

Indholdsfortegnelse:

Indholdsfortegnelse: Dataopsamling Klaus Jørgensen Gruppe. Klaus Jørgensen, Jacob Clausen Og Ole Rud Erhvervs Akademi Fyn Allegade 79 Odense C 5000 fra d 2/12-02 til d 20/12-02 Vejleder: SKH. Forord: Denne rapport omhandler

Læs mere

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan

Læs mere

KOMPONENT BESKRIVELSE

KOMPONENT BESKRIVELSE Beskrivelse : S12-20-8A tegningsnummer 630014 Program som styrer 5 individuelle trykforløb på samme tid. Kan køre med intern tryk-reservoir. Kommunikerer med PC-program 714014 Dato Sign. Beskrivelse af

Læs mere

Dr.Heron BRUGERVEJLEDNING TEMPERATUR - STYRING VER. 2.30

Dr.Heron BRUGERVEJLEDNING TEMPERATUR - STYRING VER. 2.30 Dr.Heron TEMPERATUR - STYRING BRUGERVEJLEDNING VER. 2.30 INDHOLDSFORTEGNELSE 1.0 Beskrivelse... 4 2.0 INSTALLATION - indkodning af parametre..................................... 6 2.1 Funktionspotmeter

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen

Læs mere

Undervisningsbeskrivelse for design & produktion - el

Undervisningsbeskrivelse for design & produktion - el Undervisningsbeskrivelse for design & produktion - el Termin Maj/juni 2013 Institution Uddannelse Fag og niveau Lærer Hold ZBC-Ringsted, Ahorn Allé 3-5 4100 Ringsted HTX Design & produktion - el Christian

Læs mere

Laboratorie Strømforsyning

Laboratorie Strømforsyning Beskrivelse af 0 30 Volt DC Stabiliseret strømforsyning med variabel strømregulering fra 0,002 3 Amp. Teknisk Specifikation Input spænding: 28-30 Volt AC Input Strøm: 3 A MAX Udgangsspænding: 0 30 Volt,

Læs mere

Temperaturmåler. Klaus Jørgensen. Itet. 1a. Klaus Jørgensen & Ole Rud. Odense Tekniskskole. Allegade 79 Odense C 5000 28/10 2002.

Temperaturmåler. Klaus Jørgensen. Itet. 1a. Klaus Jørgensen & Ole Rud. Odense Tekniskskole. Allegade 79 Odense C 5000 28/10 2002. Temperaturmåler Klaus Jørgensen Klaus Jørgensen & Ole Rud Odense Tekniskskole Allegade 79 Odense C 5000 28/10 2002 Vejleder: PSS Forord.: Denne rapport omhandler et forsøg hvor der skal opbygges et apparat,

Læs mere

Benjamin Franklin Prøv ikke at gentage forsøget! hvor er den passerede ladning i tiden, og enheden 1A =

Benjamin Franklin Prøv ikke at gentage forsøget! hvor er den passerede ladning i tiden, og enheden 1A = E3 Elektricitet 1. Grundlæggende Benjamin Franklin Prøv ikke at gentage forsøget! I E1 og E2 har vi set på ladning (som måles i Coulomb C), strømstyrke I (som måles i Ampere A), energien pr. ladning, også

Læs mere

Brugervejledning. Fjernbetjening display MT-5

Brugervejledning. Fjernbetjening display MT-5 Brugervejledning Fjernbetjening display MT-5 OVERSIGT Det digitale fjernbetjening display, der viser dig anlæggets driftsinformation, system fejl og selvdiagnostik udlæsning. Oplysningerne vises på et

Læs mere

Arduino Programmering

Arduino Programmering Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået

Læs mere

Analoge indgange og A/D konvertering. Analoge udgange

Analoge indgange og A/D konvertering. Analoge udgange Programmering for begyndere Brug af Arduino Programmeringskursus Analoge indgange og A/D konvertering Analoge udgange Knud Krogsgaard Jensen OZ1QK Oversigt Oversigt over i aften: A/D konvertering iterations

Læs mere

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys!

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys! Og der blev lys! OPGAVEFORMULERING:... 2 DESIGN AF SEKVENS:... 3 PROGRAMMERING AF PEEL KREDS... 6 UDREGNING AF RC-LED CLOCK-GENERAOR:... 9 LYSDIODER:... 12 KOMPONENLISE:... 13 DIAGRAM:... 14 KONKLUSION:...

Læs mere

Projekt. Analog Effektforstærker.

Projekt. Analog Effektforstærker. Projekt. Analog Effektforstærker. Udarbejdet af: Klaus Jørgensen. Gruppe: Klaus Jørgensen Og Morten From Jacobsen. It og Elektronikteknolog. Erhvervsakademiet Fyn Udarbejdet i perioden: 7/0-03 /-03 Vejledere:

Læs mere

Montørvejledning for DTC2100 Temperaturtyring - Version 1. Generel beskrivelse

Montørvejledning for DTC2100 Temperaturtyring - Version 1. Generel beskrivelse 1 2 3 R DTC2100 Danotek Generel beskrivelse DTC2100 er udviklet til væskebaseret solfangersystemer, men kan også benyttes til anden temperatur styring med op til tre temperatur målinger og en relæudgang.

Læs mere

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin maj-juni 20115 Institution KTS Vibenhus HTX Uddannelse Fag og niveau Lærer(e) Hold HTX Teknik fag Design og

Læs mere

Logik Rapport - Alarm. Klaus Jørgensen Itet. 1a. Klaus Jørgensen & Ole Rud 9/9-2002 Vejledere: PSS & SKH

Logik Rapport - Alarm. Klaus Jørgensen Itet. 1a. Klaus Jørgensen & Ole Rud 9/9-2002 Vejledere: PSS & SKH - Alarm Klaus Jørgensen Itet. 1a. Klaus Jørgensen & Ole Rud 9/9-2002 Vejledere: PSS & SKH Indholdsfortegnelse. Side 2. Side 2. Side 3. Side 3. Side 4. Side 4. Side 5. Side 6. Side 7. Side 8. Side 9. Side

Læs mere

Dansk Mink Papir. Teknisk brugermanual

Dansk Mink Papir. Teknisk brugermanual Dansk Mink Papir Teknisk brugermanual Styring til FIX tørrekasse Beskrivelse Enheden styrer en AC blæser-motor via en relæudgang. Betjening foregår via et tastatur og et display, og brugeren kan vælge

Læs mere

Quick start: NBE Wi-Fi temperatur sensor NBE PRODUCTION A/S. Kjeldgaardsvej Sæby

Quick start: NBE Wi-Fi temperatur sensor NBE PRODUCTION A/S. Kjeldgaardsvej Sæby : NBE Wi-Fi temperatur sensor NBE PRODUCTION A/S Kjeldgaardsvej 2 9300 Sæby www.nbe.dk 1 NBE Wi-Fi temperatur sensor - direkte forbindelse 1. Bring sensoren i nærheden af fyret 1-2 meter mens der sættes

Læs mere

Manual. IMage Elektronisk styring med varmeregulering. Type

Manual. IMage Elektronisk styring med varmeregulering. Type Manual. IMage Elektronisk styring med varmeregulering. Type 64-102050-1. Der tages forbehold for evt. produktændringer. Copyright. International Marketing A/S Udgave: 1.0 01 2005. Sprog: Dansk Tillykke

Læs mere

TG 8. Indhold: TG8 - Kredsløbsbeskrivelse Gruppemedlemmer: Kim Andersen, Kasper Jensen & Thyge Mikkelsen Dato: Modtaget af: Søren Knudsen

TG 8. Indhold: TG8 - Kredsløbsbeskrivelse Gruppemedlemmer: Kim Andersen, Kasper Jensen & Thyge Mikkelsen Dato: Modtaget af: Søren Knudsen TG 8 EUC-Syd Sønderborg 6. Skoleperiode Elektronikmekaniker Indhold: TG8 - Kredsløbsbeskrivelse Gruppemedlemmer: Kim Andersen, Kasper Jensen & Thyge Mikkelsen Dato: 30 04-2002 Modtaget af: Søren Knudsen

Læs mere

GSM port styring 400 brugere

GSM port styring 400 brugere 1 GSM port styring 400 brugere SMS alarm, temperatur og fjernkontrol system 16 brugere til at modtage alarmbeskeder via SMS Software vejledning SSIHuset Svane Electronic ApS Arildsvej 27, Gråmose, DK-7442

Læs mere

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!) MHz KIT Rev: /- Det er ikke tilladt, at man bare udsender radiobølger på den frekvens, man ønsker. Forskellige frekvenser er udlagt til forskellige formål. Nogle til politiet, militæret, FM-radio-transmission,

Læs mere

Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 %

Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 % A.1 Afladning af kondensator Opbyg følgende kredsløb: U TL = 70 % L TL = 50 % Når knappen har været aktiveret, ønskes lys i D1 i 30 sekunder. Brug formlen U C U start e t RC Beskriv kredsløbet Find komponenter.

Læs mere

Arduino kursus lektion 3:

Arduino kursus lektion 3: Arduino kursus lektion 3: I denne lektion skal vi lave få en diode til at fade op og ned! Herefter skal denne diode bruges sammen med en lysføler til at lave en smart lysfølsom diode som selv justere lyset

Læs mere

STYKLISTE AP 500 MANUAL 1 1 ELEKTRONIK MODUL 2 1 SERVOMOTOR 3 1 LEDNINGSNET 5 1 AP 500 MONTERINGS KIT 5.1 1 WIRETRÆK BESLAG

STYKLISTE AP 500 MANUAL 1 1 ELEKTRONIK MODUL 2 1 SERVOMOTOR 3 1 LEDNINGSNET 5 1 AP 500 MONTERINGS KIT 5.1 1 WIRETRÆK BESLAG STYKLISTE # ANTAL BESKRIVELSE 1 1 ELEKTRONIK MODUL 2 1 SERVOMOTOR 3 1 LEDNINGSNET 5 1 AP 500 MONTERINGS KIT 5.1 1 WIRETRÆK BESLAG 5.2 3 WIRE BESKYTTER 5.3 1 KABELHOLDER 5.4 1 SPÆNDESKIVE 5.5 1 WIRETRÆK

Læs mere

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor.

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor. Simple kontakter Accelorometer Example sensors Lysfølsomme modstande RFID reader & tags Temperaturfølsomme modstande Flex Sensor Ultralyds afstandsmåler Piezo Pressure/vibration Piezo Sound/buzzer Peltier

Læs mere

Genius laderegulator Monterings og brugervejledning

Genius laderegulator Monterings og brugervejledning Genius laderegulator Monterings og brugervejledning Laderegulatorens opbygning Genius er en avanceret laderegulator for solceller/solpaneler der kontroller, overvåger og styrer indladning og afladning

Læs mere

Kollektor. Teknisk skole Ringsted Fysikrapport Af Kenneth René Larsen Afleveret d.26. maj 1999. Emitter

Kollektor. Teknisk skole Ringsted Fysikrapport Af Kenneth René Larsen Afleveret d.26. maj 1999. Emitter Kollektor Teknisk skole Ringsted Fysikrapport Af Kenneth René Larsen Afleveret d.26. maj 1999 Basis Emitter 1 Indholdsfortegnelse Problemformulering 3 Transistorens opbygning 4 Transistoren DC forhold

Læs mere

Montørvejledning for DTC2102 Temperaturtyring - Version 1. Generel beskrivelse

Montørvejledning for DTC2102 Temperaturtyring - Version 1. Generel beskrivelse 1 2 3 R E DTC2102 Danotek Generel beskrivelse DTC2102 er udviklet til væskebaseret solfangersystemer, men kan også benyttes til anden temperatur styring med op til tre temperatur målinger og to relæudgange.

Læs mere

Betjeningsvejledning. SMS modul

Betjeningsvejledning. SMS modul Betjeningsvejledning SMS modul HW: P052A.0517 / MC35i SW: P052ASMS.070628 LBJ electronic, DK-7100 Vejle Før du tager dit nye SMS modul i brug, er det vigtigt, at du gennemlæser denne vejledning, og udfører

Læs mere

Instruktion. MINIGAM+ On/off og analog styring IN217DKA

Instruktion. MINIGAM+ On/off og analog styring IN217DKA Instruktion MINIGAM+ On/off og analog styring IN217DKA 1. Beskrivelse af kort Advarsel! Flere dele på printkortet er forsynet med 115/230VAC. Afbryd altid strømmen før der arbejdes på aktuatoren. 2. For

Læs mere

Maskiner og robotter til hjælp i hverdagen

Maskiner og robotter til hjælp i hverdagen Elektronik er en videnskab og et fagområde, der beskæftiger sig med elektriske kredsløb og komponenter. I daglig tale bruger vi også udtrykket elektronik om apparater, der udnytter elektroniske kredsløb,

Læs mere

IAI Quick Start Guide

IAI Quick Start Guide IAI Quick Start Guide Opsætning: Manualen til controllerene ligger i: Produkter\IAI\Manual\RoboCylinder\Controller\ Her ligger den i en undermappe alt efter hvilken type controller det er. Installer RCPC

Læs mere

Alt elektronik heri er købt via http://dx.com, og arduino udviklingssoftware er hentet fra http://arduino.cc.

Alt elektronik heri er købt via http://dx.com, og arduino udviklingssoftware er hentet fra http://arduino.cc. Få-tiden-til-at-gå-[DIGITAL]-ur =============================== Copyright 2013, Richard Jørgensen. Alle ophavsretlige rettigheder frafaldet 2015. (Kopier og brug som du har lyst.) Forord: ===== Denne vejledning

Læs mere

MP3 player med DMX interface.

MP3 player med DMX interface. Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK WWW.WAHLBERG.DK MP3 player med DMX interface. Funktion: En avanceret Mp3spiller med forskellige styringsmuligheder, velegnet til brug i museer, teatre, udstillinger

Læs mere

KONSTANT REGN 6 BETJENINGSVEJLEDNING VERSION 18 DATO 20-1-95 UDLÆSNING I DISPLAY. - Indtrækshastighed. - Total vandingstid

KONSTANT REGN 6 BETJENINGSVEJLEDNING VERSION 18 DATO 20-1-95 UDLÆSNING I DISPLAY. - Indtrækshastighed. - Total vandingstid UDLÆSNING I DISPLAY - Indtrækshastighed - Total vandingstid - Længde af den udtrukne slange - For- og eftervanding valgt - Tryk sensor - Stop sensor - Hastigheds sensor - Motor 1, motor der regulere turbinen

Læs mere

DAN TWINCA EASY. Brugervejledning

DAN TWINCA EASY. Brugervejledning DAN TWINCA EASY Brugervejledning EASY BrugerVejledning DK.doc Version 1.00 Indholdsfortegnelse Indholdsfortegnelse... 2 Start og manuel fodring... 4 Opstart...4 Indtastning af talværdier i menuen...4 Automatisk

Læs mere

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn.

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn. Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen Elektronikteknologafdelingen på Erhvervsakademi Fyn. Journal JTAG Xilinx XC9536 29-9-3 Generel beskrivelse af JTAG: JTAG:

Læs mere

2/3 Akset digital tæller

2/3 Akset digital tæller SERIE Z59E 2/3 Akset digital tæller for Elgo Magnetisk målebånd og / eller Encoder ELGO - ELECTRIC Gerätebau und Steuerungstechnik GMBH D - 78239 Rielasingen, Postfach 11 30, Carl - Benz - Strafle 1 Telefon

Læs mere

Postregistrering Eksamensprojekt i Programmering C Lavet af: Frantz Furrer Svendborg Erhvervsskole HTX Vejleder: Claus Borre

Postregistrering Eksamensprojekt i Programmering C Lavet af: Frantz Furrer Svendborg Erhvervsskole HTX Vejleder: Claus Borre Postregistrering Eksamensprojekt i Lavet af: Frantz Furrer Vejleder: Claus Borre Side af 4 Titelblad: Skolens navn: Svendborg Tekniske Gymnasium - Rapport: Rapportens titel: Postregistrering Side antal:

Læs mere

SimPal-T4. GSM Stikkontakt Bestillings nummer Vejledning Manual version 2.0

SimPal-T4. GSM Stikkontakt Bestillings nummer Vejledning Manual version 2.0 Side 1 af 14 SimPal-T4 GSM Stikkontakt Bestillings nummer 6000.0165 Vejledning Manual version 2.0 Side 2 af 14 Indhold 1. Funktioner og Specifikationer... 3 1.1 Funktioner... 3 1.2 Specifikationer... 3

Læs mere

Metal Detektor. HF Valgfag. Rapport.

Metal Detektor. HF Valgfag. Rapport. Metal Detektor. HF Valgfag. Rapport. Udarbejdet af: Klaus Jørgensen. Gruppe: Klaus Jørgensen Og Morten From Jacobsen. It- og Elektronikteknolog. Erhvervsakademiet Fyn Udarbejdet i perioden: 9/- /- Vejledere:

Læs mere

Indholdsfortegnelse: Sikkerhedsprocedurer: Chauvin Arnoux CA 27 Side Fejl! Ukendt argument for parameter.

Indholdsfortegnelse: Sikkerhedsprocedurer: Chauvin Arnoux CA 27 Side Fejl! Ukendt argument for parameter. Indholdsfortegnelse: Sikkerhedsprocedure Side 2 Instrumentbeskrivelse Side 3 Display Side 3 Måleprocedure Side 4 Måling med optisk kontakt Side 4 Måling med ekstern input Side 4 Forbindelse Side 5 Instrumentet

Læs mere

Enes Kücükavci Roskilde Tekniske Gymnasium 20 05 2010 Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C

Enes Kücükavci Roskilde Tekniske Gymnasium 20 05 2010 Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C Indhold Indledning(Enes)... 2 Problemstilling (Enes)... 2 Teori (Enes)... 2 Løsningsforslag (Enes)... 4 RFID relæet (Mathias)... 6 Krav (Enes og Mathias)... 8 Målgruppen (Mathias)... 8 Rekvirent... 8 Implementering(Mathias)...

Læs mere

Analyseopgaver. Forklar kredsløbet. Forklar kredsløbet. 3.0 DC Adapter med Batteri Backup.

Analyseopgaver. Forklar kredsløbet. Forklar kredsløbet. 3.0 DC Adapter med Batteri Backup. Analyseopgaver. Simpel NiMH lader. Forklar kredsløbet.. Infrarød Remote Control tester Forklar kredsløbet.. DC Adapter med Batteri Backup. Der bruges en ustabiliseret Volt adapter. Den giver normalt ca.

Læs mere

INSTALLATIONSMANUAL TIL GARAGEPORT ÅBNER

INSTALLATIONSMANUAL TIL GARAGEPORT ÅBNER INSTALLATIONSMANUAL TIL GARAGEPORT ÅBNER INSTALLATIONS MANUALEN SKAL GENNEMLÆSES OMHYGGELIG FØR IBRUGTAGNING ADVARSEL FOR SIKKER INSTALLATION Inden installation af automatikken skal balance fjederen på

Læs mere

Yamaha FS1 Spændingsregulator.

Yamaha FS1 Spændingsregulator. Yamaha FS1 Spændingsregulator. Denne spændingsregulator kan begrænse spændingen til for/bag og instrument lyste så pærerne ikke springer. Selv om man køre tunet og eventuelt uden batteri. (hvilket bestemt

Læs mere

D210 GSM Strømstyringsmodul med temperatursensor

D210 GSM Strømstyringsmodul med temperatursensor Side 1 af 11 D210 GSM Strømstyringsmodul med temperatursensor Vigtig: Maks 8A 110-230V AC Indgang Vejledning Manual version 1.0 1. Beskrivelse GSM Strømstyrings modul med indbygget 12VDC 200mA strømforsyning

Læs mere

STYRING FOR STOKERFYR

STYRING FOR STOKERFYR STYRING FOR STOKERFYR Måling og regulering af kedeltemperatur Måling og overvågning af røgtemperatur Eltænding og/eller pausefyring Mulighed for iltstyring Til Nordjysk Elektronik Ulvebakkevej 13 9330

Læs mere

X88S. SMS fjernstyring til sommerhuse

X88S. SMS fjernstyring til sommerhuse X88S SMS fjernstyring til sommerhuse X88s er en GSM/SMS baseret fjernstyring med: 6 indgange 8 relæudgange 2 temperaturfølere Billig i drift, intet abonnement. Kan køre på taletidskort. Nem og hurtig montering.

Læs mere

Projekt Når maskinen reagerer - Dataopsamling og aktuatorer

Projekt Når maskinen reagerer - Dataopsamling og aktuatorer Projekt Når maskinen reagerer - Dataopsamling og aktuatorer Af Nikki Mitchell og Jacob Thuesen Nikki Mitchell og Jacob Thuesen Side 1 af 20 08-02-2010 Indledning... 3 Formål... 3 Teori... 4 Arduino opgave

Læs mere

5-LCD FJERNBETJENING. Batterierne skal bortskaffes separat i de særlige batteriaffaldsbeholdere.

5-LCD FJERNBETJENING. Batterierne skal bortskaffes separat i de særlige batteriaffaldsbeholdere. GENERELLE SPECIFIKATIONER FOR LCD FJERNBETJENINGEN Fjernbetjeningen har en transmissionsfrekvens på 434,5 MHz. Den strømforsynes med 3 AAA batterier på følgende måde: fjern dækslet til batterirummet ved

Læs mere

Opgavesæt udviklet til kursus 48115. Grundlæggende elektronik på mobile maskiner 2. Udviklet i 2015

Opgavesæt udviklet til kursus 48115. Grundlæggende elektronik på mobile maskiner 2. Udviklet i 2015 Opgavesæt udviklet til kursus 48115 Grundlæggende elektronik på mobile maskiner 2 Udviklet i 2015 Ministeriet for Børn, Undervisning og Ligestilling (april, 2016). Materialet er udviklet af Metalindustriens

Læs mere

SSI 6000.0400 GSM Fjernbetjenings system for porte/garage døre

SSI 6000.0400 GSM Fjernbetjenings system for porte/garage døre 1 SSI 6000.0400 GSM Fjernbetjenings system for porte/garage døre Vejledning SSIHuset v/svane Electronic ApS Arildsvej 27, Gråmose, DK-7442 Engesvang mail: ssi@svane-el.dk http: svane-el.dk 2 System for

Læs mere

BETJENINGSVEJLEDNING VERSION 19.1 DATO PR9V19.DA TAST FOR AT FÅ FORSKELLIGE UDLÆSNINGER I DISPLAY

BETJENINGSVEJLEDNING VERSION 19.1 DATO PR9V19.DA TAST FOR AT FÅ FORSKELLIGE UDLÆSNINGER I DISPLAY BETJENINGSVEJLEDNING VERSION 19.1 DATO 6-1-98 PR9V19.DA TASTATUR: MENU TAST FOR AT FÅ FORSKELLIGE UDLÆSNINGER I DISPLAY - Indtrækshastighed - Total vandingstid - Længde af den udtrukne slange - For- og

Læs mere

Lektion 6 / Analog Arduino

Lektion 6 / Analog Arduino 1 Jeremiah Teipen: Electronic Sandwich BSPR11 Lektion 6 / Analog Arduino Mogens Jacobsen / moja@itu.dk Siden sidst 2 Har I fået nogle LEDs til at blinke? Har I brugt kontakter? Hvad har I eksperimenteret

Læs mere

USB Alarm Fag : El-teknik A Navn : Bent Arnoldsen Skole : Holstebro Tekniske Gymnasium Periode : Uge 43 til 48 2005 Aflevering : 29.

USB Alarm Fag : El-teknik A Navn : Bent Arnoldsen Skole : Holstebro Tekniske Gymnasium Periode : Uge 43 til 48 2005 Aflevering : 29. USB Alarm Fag : El-teknik A Navn : Bent Arnoldsen Skole : Holstebro Tekniske Gymnasium Periode : Uge 43 til 48 2005 Aflevering : 29. november 2005 Holstebro HTX USB Alarm Side 2 af 26 Indholdsfortegnelse:

Læs mere

Projekt - Roboventure Del journal. Power.

Projekt - Roboventure Del journal. Power. Projekt - Roboventure Del journal. Udarbejdet af: Klaus Jørgensen. Gruppe: Klaus Jørgensen Og Morten From Jacobsen. It og Elektronikteknolog, 2a Erhvervsakademiet Fyn Udarbejdet i perioden: 7/4-3 5/5-3

Læs mere

Digital positioner type RE 3446

Digital positioner type RE 3446 Installations- og driftsvejledning IN145 Digital positioner type Indholdsfortegnelse: Side 1 Generel information 2 2 Montering og tilslutning 2 3 Idriftsættelse 3 4 Drifts funktioner 6 5 Funktions beskrivelser

Læs mere

Materialer: Strømforsyningen Ledninger. 2 fatninger med pære. 1 multimeter. Forsøg del 1: Serieforbindelsen. Serie forbindelse

Materialer: Strømforsyningen Ledninger. 2 fatninger med pære. 1 multimeter. Forsøg del 1: Serieforbindelsen. Serie forbindelse Formål: Vi skal undersøge de egenskaber de 2 former for elektriske forbindelser har specielt med hensyn til strømstyrken (Ampere) og spændingen (Volt). Forsøg del 1: Serieforbindelsen Materialer: Strømforsyningen

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

Læs mere

El-Teknik A. Rasmus Kibsgaard Riehn-Kristensen & Jonas Pedersen. Klasse 3.4

El-Teknik A. Rasmus Kibsgaard Riehn-Kristensen & Jonas Pedersen. Klasse 3.4 El-Teknik A Rasmus Kibsgaard Riehn-Kristensen & Jonas Pedersen Klasse 3.4 12-08-2011 Strømstyrke i kredsløbet. Til at måle strømstyrken vil jeg bruge Ohms lov. I kredsløbet kender vi resistansen og spændingen.

Læs mere

User Guide AK-SM 720 Boolean logic

User Guide AK-SM 720 Boolean logic User Guide AK-SM 720 Boolean logic ADAP-KOOL Refrigeration control systems Anvendelse Funktionen er indeholdt i Systemmanager type AK-SM 720, og kan anvendes til brugerdefinerede funktioner. Funktionerne

Læs mere

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde SPIDER Quick guide DATO: August 2017 FORHANDLER: WASYS A/S Langebjergvænget 18 4000 Roskilde +45 7221 7979 Indhold Om SPIDER... 3 Funktioner ved SPIDER... 3 Spændingsforsyning... 3 Installation og fysiske

Læs mere

Vedvarende energi. Sådan kommer du i gang med LEGO Energimåleren

Vedvarende energi. Sådan kommer du i gang med LEGO Energimåleren Vedvarende energi Sådan kommer du i gang med LEGO Energimåleren de LEGO Group. 2010 The LEGO Group. 1 Indholdsfortegnelse 1. Beskrivelse af Energimåleren... 3 2. Sådan påsættes Energiakkumulatoren... 3

Læs mere

Mean Well, LCM-serie installations vejledning.

Mean Well, LCM-serie installations vejledning. Egenskaber: 180 -> 295 VAC (LCM-25: 180 277 VAC) Indbygget aktivt power factor funktion Udgangsstrøm indstilles med DIP kontakter Indbygget DALI interface og simpel kontakt dæmpning (DA version) Indbygget

Læs mere

Indre modstand og energiindhold i et batteri

Indre modstand og energiindhold i et batteri Indre modstand og energiindhold i et batteri Side 1 af 10 Indre modstand og energiindhold i et batteri... 1 Formål... 3 Teori... 3 Ohms lov... 3 Forsøgsopstilling... 5 Batteriets indre modstand... 5 Afladning

Læs mere

DFRC Radiografisk fjernbetjening for gaspejse

DFRC Radiografisk fjernbetjening for gaspejse Honeywell DFRC Radiografisk fjernbetjening for gaspejse Brugsanvisning DISPLAY OG TASTER Display Op tast Ned tast Sluk tast Menu tast FORORD RF fjernbetjeningen kan styre pejsen manuelt eller ved hjælp

Læs mere

HN Brugervejledning. Læs brugervejledningen omhyggeligt før multimeteret tages i brug, og gem brugervejledningen til senere brug.

HN Brugervejledning. Læs brugervejledningen omhyggeligt før multimeteret tages i brug, og gem brugervejledningen til senere brug. DIGITAL MULTIMETER HN 7364 Brugervejledning Læs brugervejledningen omhyggeligt før multimeteret tages i brug, og gem brugervejledningen til senere brug. 1 INDHOLDSFORTEGNELSE 1. Introduktion 1.1 Sikkerhedsanvisninger

Læs mere

LEGO Energimåler. Sådan kommer du i gang

LEGO Energimåler. Sådan kommer du i gang LEGO Energimåler Sådan kommer du i gang Energimåleren består af to dele: LEGO Energidisplay og LEGO Energiakkumulator. Energiakkumulatoren passer i bunden af Energidisplayet. Installer Energiakkumulatoren

Læs mere

Manual til Elegant DK190

Manual til Elegant DK190 Manual til Elegant DK190 Indhold Forord... 4 Alarmens generelle opbygning... 5 Placering af alarmen... 7 Oversigt over alarmen... 8 Forside... 8 Bagside... 9 Tag alarmen i brug... 10 Programering af alarmen...

Læs mere

Revision (sidste opdatering) Software Version 8:29

Revision (sidste opdatering) Software Version 8:29 Instruktion TWIN enhed (til brug ved 1 så-enhed) Revision 1.7 20130514 (sidste opdatering) Software Version 8:29 Index Program version... 1 Skift af værdier... 2 Tilpasning af parametre... 2 Kalibrering...

Læs mere

J-fet. Kompendium om J-FET

J-fet. Kompendium om J-FET J-fet 27/8-215 Kompendium om J-FET FET transistorer Generelt Fet-transistorer er opbygget helt anderledes end bipolar transistorerne. Her er det ikke en basisstrøm, der styrer ledeevnen gennem transistoren,

Læs mere

Elektronikken bag medicinsk måleudstyr

Elektronikken bag medicinsk måleudstyr Elektronikken bag medicinsk måleudstyr Måling af svage elektriske signaler Indholdsfortegnelse Indholdsfortegnelse... 1 Introduktion... 1 Grundlæggende kredsløbteknik... 2 Ohms lov... 2 Strøm- og spændingsdeling...

Læs mere

Øvelse 1.5: Spændingsdeler med belastning Udført af: Kari Bjerke Sørensen, Hjalte Sylvest Jacobsen og Toke Lynæs Larsen.

Øvelse 1.5: Spændingsdeler med belastning Udført af: Kari Bjerke Sørensen, Hjalte Sylvest Jacobsen og Toke Lynæs Larsen. Øvelse 1.5: Spændingsdeler med belastning Udført af: Kari jerke Sørensen, Hjalte Sylvest Jacobsen og Toke Lynæs Larsen. Formål: Formålet med denne øvelse er at anvende Ohms lov på en såkaldt spændingsdeler,

Læs mere

Brug af digitale ind og udgange

Brug af digitale ind og udgange Programmering for begyndere Brug af Arduino Programmeringskursus Brug af digitale ind og udgange Oversigt over aftenen Digitale ind- og udgange Det er der ikke så meget i: Digitale indgange kan tænde og

Læs mere

Projekt - RoboNet Del Journal.

Projekt - RoboNet Del Journal. Projekt - RoboNet Del Journal. A/D Konvertering. Udarbejdet af: Klaus Jørgensen. Gruppe: Jacob Clausen, Klaus Jørgensen og Ole Rud It og Elektronikteknolog, a Erhvervsakademiet Fyn Udarbejdet i perioden:

Læs mere

O2 STYRING. Fra version 7 og version 10.033

O2 STYRING. Fra version 7 og version 10.033 O2 STYRING Fra version 7 og version 10.033 Indholds fortegnelse: Side 3 Advarsel om brug af produktet. Installation af lambda sonde. Side 4 Side 5 Side 6 Side 7 Side 8 Side 9 El diagram. Beskrivelse af

Læs mere

Manual til: Miracas DK080 GSM Tyverialarm

Manual til: Miracas DK080 GSM Tyverialarm Manual til DK080 Indhold Forord... 4 Alarmens generelle opbygning... 5 Placering af alarmen... 7 Oversigt over alarmen... 8 Tag alarmen i brug... 9 Programering af alarmen... 10 Indtastning af egen kode...

Læs mere

L P. Komfort / Alarm system Installationsvejledning. Tekniske data, symbol forklaringer

L P. Komfort / Alarm system Installationsvejledning. Tekniske data, symbol forklaringer Tekniske data, symbol forklaringer Styreenhed Strømforsyning Strømforbrug Komponent teknik Temperatur område Sirene udgang Udgange Kanal 2 udgang Indbyggede relæer 12/24 Volt, minus til stel, polaritetsbeskyttet

Læs mere

X88. X88 er en GSM/SMS baseret fjernstyring med: 8 indgange 8 relæudgange Mulighed for temperaturføler

X88. X88 er en GSM/SMS baseret fjernstyring med: 8 indgange 8 relæudgange Mulighed for temperaturføler X88 X88 er en GSM/SMS baseret fjernstyring med: 8 indgange 8 relæudgange Mulighed for temperaturføler Let at betjene. Hurtig montering. Let konfiguration. Hurtig. Fleksibel. Passer i en alm gruppetavle.

Læs mere

Klasse 1.4 Michael Jokil 03-05-2010

Klasse 1.4 Michael Jokil 03-05-2010 HTX I ROSKILDE Afsluttende opgave Kommunikation og IT Klasse 1.4 Michael Jokil 03-05-2010 Indholdsfortegnelse Indledning... 3 Formål... 3 Planlægning... 4 Kommunikationsplan... 4 Kanylemodellen... 4 Teknisk

Læs mere

DC-Motor Controller. Brugermanual

DC-Motor Controller. Brugermanual Forside Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK WWW.WAHLBERG.DK DC-Motor Controller Brugermanual Firmware V4.00 Produkt indhold 1 styreboks til styring af 1 DC-motor. 1 strømforsyning 100 240 volt

Læs mere

Paul A. Jensen ApS. Driftvejledning. Beluftningsstyring RAKOTROL type LCD

Paul A. Jensen ApS. Driftvejledning. Beluftningsstyring RAKOTROL type LCD Driftvejledning Beluftningsstyring RAKOTROL type LCD Beluftningsstyringen RAKOTROL LCD er konstrueret til at styre ventilatorerne i et beluftningsanlæg således at temperaturen bringes ned hurtigst mulig.

Læs mere

MODUL 5 ELLÆRE: INTRONOTE. 1 Basisbegreber

MODUL 5 ELLÆRE: INTRONOTE. 1 Basisbegreber 1 Basisbegreber ellæren er de mest grundlæggende størrelser strøm, spænding og resistans Strøm er ladningsbevægelse, og som det fremgår af bogen, er strømmens retning modsat de bevægende elektroners retning

Læs mere

Kravspecifikation For. Gruppen

Kravspecifikation For. Gruppen Kravspecifikation For Gruppen Indholdsfortegnelse 1. INDLEDNING...3 1.1 FORMÅL...3 1.2 REFERENCER...3 1.3 LÆSEVEJLEDNING...3 2. GENEREL BESKRIVELSE...4 2.1 SYSTEM BESKRIVELSE...4 2.2 SYSTEMETS FUNKTION...4

Læs mere

1. Hovedramme 2. Bag stabilisator 3. For stabilisator 4. Cykelstyrsstang 5. Cykelstyr 6. Computer 7. Sædestang 8. Sæde 9. Pedaler 10.

1. Hovedramme 2. Bag stabilisator 3. For stabilisator 4. Cykelstyrsstang 5. Cykelstyr 6. Computer 7. Sædestang 8. Sæde 9. Pedaler 10. 1. Hovedramme 2. Bag stabilisator 3. For stabilisator 4. Cykelstyrsstang 5. Cykelstyr 6. Computer 7. Sædestang 8. Sæde 9. Pedaler 10. Plastik beslag 11. Adapter (6VDC, 500mA) M8x70 bolt (4)-4 M8x15mm skrue

Læs mere

MANUAL FANTRONIC 20AMP. TRIAC SLAVEENHED FOR VENTILATION VER:FAN 1.1 SKIOLD GØR EN FORSKEL!

MANUAL FANTRONIC 20AMP. TRIAC SLAVEENHED FOR VENTILATION VER:FAN 1.1 SKIOLD GØR EN FORSKEL! MANUAL SKIOLD GØR EN FORSKEL! FANTRONIC 20AMP. TRIAC SLAVEENHED FOR VENTILATION VER:FAN 1.1 981 002 317 Ver. 01 11-03-2013 Indhold 1. INTRODUKTION... 4 2. BESKRIVELSE FANTRONIC... 5 2.1 SÅDAN FUNGERER

Læs mere

FSystem beskrivelse PAR 200 CLOCK

FSystem beskrivelse PAR 200 CLOCK FSystem beskrivelse PAR 200 CLOCK Driftvejledningsnr: PAR-200-SYS-DK-041223 Beskrivelse Billede PAR-200-SYS er den overordnede og komplette beskrivelse af Ølands nye tidsstyring inden for analoge regulatorer.

Læs mere

BRUGERVEJLEDNING VIDEOKAMERA

BRUGERVEJLEDNING VIDEOKAMERA BRUGERVEJLEDNING VIDEOKAMERA Side 2 til nyt videokamera Introduktion Det nye videokamera er et IP-videokamera, der tilsluttes trådløst til din router. Videokameraet fungerer sådan, at du kan se videooptagelser

Læs mere

KING-METER. Bruger manual J-LCD. Indhold

KING-METER. Bruger manual J-LCD. Indhold KING-METER Bruger manual J-LCD Indhold 1. Forord 2. Udseende og størrelse 2.1. Materiale og farve 2.2. Display størrelse og installation 3. Funktionsoversigt og knap funktion 3.1. Kort introduktion til

Læs mere

BRUGERVEJLEDNING TÆND-SLUK ENHED

BRUGERVEJLEDNING TÆND-SLUK ENHED BRUGERVEJLEDNING TÆND-SLUK ENHED Side 1 til tænd-sluk enheden Introduktion Med tænd-sluk enheden fra LOCKON kan du styre strømmen i din bolig. Du kender princippet fra de traditionelle tænd-sluk ure, der

Læs mere

1 v out. v in. out 2 = R 2

1 v out. v in. out 2 = R 2 EE Basis 200 KRT3 - Løsningsforslag 2/9/0/JHM Opgave : Figur : Inverterende forstærker. Figur 2: Ikke-inverterende. Starter vi med den inverterende kobling så identificeres der et knudepunkt ved OPAMP

Læs mere

CAN BUS alarm, AK4625 Snapguide med oversigt over ledninger fra sirene og modul

CAN BUS alarm, AK4625 Snapguide med oversigt over ledninger fra sirene og modul CAN BUS alarm, AK4625 Snapguide med oversigt over ledninger fra sirene og modul Denne snapguide er ikke en komplet monterings- eller brugeranvisning, men en oversigt over ledninger og funktioner. AK4625

Læs mere