BASAL ARDUINO SÅDAN KOMMER DU IGANG MED ARDUINO, OG FORBEREDER DIG TIL KURSERNE MBHOBBY.COM AFHOLDER.

Størrelse: px
Starte visningen fra side:

Download "BASAL ARDUINO SÅDAN KOMMER DU IGANG MED ARDUINO, OG FORBEREDER DIG TIL KURSERNE MBHOBBY.COM AFHOLDER."

Transkript

1 BASAL ARDUINO SÅDAN KOMMER DU IGANG MED ARDUINO, OG FORBEREDER DIG TIL KURSERNE MBHOBBY.COM AFHOLDER. DETTE SELVSTUDIE ER UDVIKLET AF MARTIN GERTZ BECH, OG MÅ UDELUKKENDE BENYTTES TIL PERSONLIGE IKKE KOMMERCIELLE FORMÅL. FOR ANDET BRUG, KONTAKT MIG SKRIFTLIGT. MANGE HAR HJULPET MIG IGENNEM TIDEN, OG GJORT MIG I STAND TIL AT LAVE SÅDAN ET KURSUS. EN STOR TAK TIL ALLE. EN SPECIEL TAK TIL: ANDERS GERTZ BECH, FOR AT HAVE GIVET MIG EN ARDUINO STEEN RUDBERG, FOR MED SIT FALKEØJE AT HAVE GENNEMLÆST OP TIL FLERE VERSIONER AF DETTE DOKUMENT NIELS-ERIK MEIER, FOR AT HAVE SVARET PÅ UTALLIGE SPØRGSMÅL GENNEM TIDEN.

2 FORMÅL Kende forskel på de forskellige dele Lodde Arduinoen sammen. Vide hvordan en Arduino fungerer basalt Kende de allermest grundlæggende komponenter Kunne lave en standard opstilling på et breadboard med modstande, lysdioder og en Arduino. Starte Arduino IDE Installation af driver på PC om nødvendigt Indstille Arduino IDE til det rigtige Arduino board og com port Grundlæggende program struktur - lær at genkende de forskellige dele af et program. Få en lysdiode til at blinke Lidt om Serial monitor til fejlsøgning. Lære at bruge konstanter, variabler, samt funktionerne pinmode(), digitalwrite(), delay, millis(), if(), switch(), #define installation og af bibliotek, og brug af dette med #include Kende forskel på at "sinke" og "source". lære at lave simpelt array Lave et trafiklys

3 FORUDSÆTNINGER FOR DETTE KURSUS En computer der kører enten Windows 7 eller nyere samt har mindst een ledig USB port. Programmet Arduino IDE, der kan hentes gratis på En Arduino, samt eventuelt USB til SERIAL adapter hvis sådan en er påkrævet. (jeg bruger næsten udelukkende Arduino Mini Pro, og den kræver man har en sådan adapter - du kan eventuelt købe et kit der er special designet til dette kursus på - så støtter du samtidig udviklingen af kurset. 4 røde, 4 grønne, 2 gule lysdioder 10 stk 330 Ohm modstande 1/4 watt. 1 stk 10k Ohm modstand 1/4 watt 1 ringetryks kontakt 1 potentiometer 10k Ohm 1 9g servo motor - eksempelvis en SG90. 1 forsøgsbræt - også kaldet fumlebræt eller breadboard. Minimum 20 han/han prøve ledninger med dupont stik, (dem der kan stikkes ned i forsøgsbrættet. en loddekolbe med fin spids, og loddetin.

4 ORDBOG PIN = et givent ben på Arduino. SYNTAKS = Regler for hvordan en given kode skal skrives. SKETCH = et Arduino program (altså er sketch et synonym for et program). PROGRAM = Den kode Arduino skal bruge for at gøre som den gør. VCC = Spænding - her kan man enten forsyne Arduino med spænding, eller trække spænding fra Arduino, hvis den er tilsluttet en strømkilde på andre måder. GND = Stel - nogle forveksler dette med minus, det er det bare ikke, vi har + og vi har stel. Med ekstra komponenter kan vi dog godt lave minus, men så er det minus Volt. Mellem -5V og +5V er der eksempelvis 10V difference. (flere ord bliver tilføjet senere)

5 KENDE FORSKEL PÅ DE FORSKELLIGE DELE, OG HVAD DE GØR - FORORD For at forstå basal elektronik og komponenter er der nogle begreber vi må have på plads. Strømstyrke (I), Spænding (U), og Modstand (R). Det er vigtigt når vi roder med Arduino og elektronik at kende bare lidt til det. Volt - eller spændingen som den også kaldes, betegnes ofte med et U. her ses spændingen (volt), som trykket på ampere. Modstanden (Ohm eller R), spænder her røret sammen, så det er sværere at passere. Dermed kommer der mindre Ampere (i) igennem røret. Populært kaldes Ampere for strømstyrken. Ved at kende vores komponenter og deres forbrug, kan vi dermed beregne hvilken modstand der ville passe, for at vores komponent ikke får for meget strømstyrke eller spænding.

6 KENDE FORSKEL PÅ DE FORSKELLIGE DELE, OG HVAD DE GØR - HVORFOR ER DET VIGTIGT? Hvis vi eksempelvis vil lave noget med LED (Light Emitting Diodes), så har de et meget begrænset forbrug, og giver man dem for meget, så holder de ikke længe. Et eksempel kunne være at de fleste Arduinoer kan give 5V og op til 40 ma på hver udgang. En typisk lysdiode kan måske kun tåle 20 ma, og måske 2V. Derfor er vi nødt til at begrænse strømmen med en modstand. Beregning af disse ting er ikke så svært, men ikke en del af dette kursus. Du skal bare kende til det, så du kan forstå, hvorfor vi vil bruge det senere i kurset.

7 KENDE FORSKEL PÅ DE FORSKELLIGE DELE, OG HVAD DE GØR - MODSTANDE En modstand er altså en der kan begrænse strømmen. Den er typisk enten brunlig/beige eller lyseblå, men kan også være i andre farver. Oftest er de udstyret med nogle ringe, som indikerer hvor meget modstand de giver. I kurset her kommer vi til mest at beytte 330 0hm modstande og 10 kilo Ohm modstande (10000 = 10k Ohm). Strøm kan løbe begge veje igennem en modstand

8 KENDE FORSKEL PÅ DE FORSKELLIGE DELE, OG HVAD DE GØR - LYSDIODER Helt basalt er der mange der sidestiller en lysdiode eller LED med en elektrisk pære. De giver også begge to lys, men gør det på forskellig måde. En lysdiode bruges ofte til elektronik, da den dels bruger meget lidt strøm, dels har en anden egenskab, nemlig at sørge for at strømmen kun kan løbe den ene vej. Lysdioder fungerer altså som en slags ensretter for strømmen. Her ses en lysdiode, både som den ser ud, men også som den ser ud i et diagram. Vi ser at den ene side er en PIN hvor vi tilslutter +, og den anden er hvor vi tilslutter minus. Minus er egentlig en lidt forkert betegnelse, for det vil tilslutter på minus siden er det man kalder stel, når man roder med elektronik. Når vi kigger på diagram delen kan vi også se at der er en pil og en "mur". så det er ikke svært at se hvilken vej strømmen kan løbe.

9 KENDE FORSKEL PÅ DE FORSKELLIGE DELE, OG HVAD DE GØR - ARDUINO Arduinoen er "hjernen" i vores elektronik. Det er her vi bestemmer om noget skal være tændt eller slukket. Men det kan også være her at vi måler om der bliver trykket på en knap. Der findes mange forskellige modeller af Arduino. Nogle af de mest populære modeller er Arduino Uno R3, Arduino Mega 2560, Arduino Nano, og Arduino Mini Pro. Nogle Arduinoer kører på 5V andre på 3,3V. Grundlæggende gør de alle sammen det samme - styrer nogle PIN, og disse PIN kan så bruges enten som udgange (OUTPUT), altså til at tænde eller slukke for noget. Eller de kan bruges som indgange, så de kan måle eksempelvis om en knap bliver aktiveret. (INPUT/INPUT_PULLUP). Inde i Arduino sidder der så noget hukommelse, og et internt ur og andre ting som vi kan få brug for. En Arduino er altså næsten det man kan kalde en microcomputer. Selve "hjernen" på Arduino printet kalder vi dog en mikroprocessor. De fleste Arduinoer arbejder med 16 MHz. Det betyder at den kan lave 16 mio simple ting, eller instruktioner, i sekundet - meget mere end vi har behov for til de fleste ting - også selvom nogle af de kommandoer vi bruger, kræver flere instruktioner at udføre internt i "hjernen". "Hjernen" kaldes også en CPU - eller Central Processing Unit.

10 KENDE FORSKEL PÅ DE FORSKELLIGE DELE, OG HVAD DE GØR - ARDUINO For at en Arduino fungerer, skal den have et program. Det er det du lærer på dette kursus. Programmet skrives på en rigtig computer (underforstået en PC eller Mac), og overføres til Arduinoen. Det kan enten overføres via et USB kabel, eller med et USB kabel og en lille adapter til de Arduinoer der ikke har USB stik. En sådan adapter kaldes USB til Serial konverter, men jeg omtaler det også som dit "programmeringsstik", eller din FTDI adapter.

11 KENDE FORSKEL PÅ DE FORSKELLIGE DELE, OG HVAD DE GØR - ARDUINO Eksempler på Arduinoer af forskellig afstamning. De kan basalt set det samme, og med samme kode.

12 LAGDE DU MÆRKE TIL? Denne Arduino - en Arduino Mini Pro, har ikke noget USB stik. Derfor skal man bruge en adapter for at kunne "tale" med den fra sin computer. Den såkaldte USB til Seriel adapter. Hvorfor har man ikke puttet USB stik på?, jo det fylder og koster alt sammen. Disse små Arduinoer, eller retter kopier, kan købes ned til ca 35 kr i Danmark (2017 priser). og endnu billigere i Kina. Og så behøver man kun een adapter, uanset hvor mange Arduinoer man har!

13 KENDE FORSKEL PÅ DE FORSKELLIGE DELE, OG HVAD DE GØR - USB TIL SERIEL ADAPTEREN Dette er adapteren man bruger til at tilslutte sin computer til de Arduinoer der ikke har indbygget USB, såsom dem jeg bruger, Arduino Mini Pro. Nogle gange kan man være udsat for at den skal vende omvendt end man forventer. Derudover skal man ofte have installeret drivere til den - det kommer vi igennem senere i dette kursus.

14 KENDE FORSKEL PÅ DE FORSKELLIGE DELE, OG HVAD DE GØR - FUMLEBRÆT / BREADBOARD Her er et af de berømte fumlebrædder. Det er delt op i fire dele. Øverst og bunden, hvor der er forbindelser der går vandret langs med den røde og blå streg. I midten går forbindelserne lodret. Jeg har forsøgt at vise det med gule streger. læg mærke til ingen af de gule streger er forbundet!

15 KENDE FORSKEL PÅ DE FORSKELLIGE DELE, OG HVAD DE GØR - DUPONT KABLER Dette er de mest anvendte ledninger når man anvender fumleprint. her kan man skille ledningerne ad, så man har dem enkeltvis. Så kan man stikke enderne ned i de huller på fumlebrættet, der hvor man vil have forbindelse. De fåes i flere varianter, men i dette kursus har vi kun behov for en slags.

16 OPSUMMERING Vi kan nu kende de forskellige komponenter vi skal bruge til kurset Vi kender nu begreberne Strømstyrke, Spænding og Modstand Vi ved nu hvordan en lysdiode skal vendes.

17 HVORDAN FUNGERER EN ARDUINO Mange kan godt være lidt afskrækket af Arduinoer, men det er faktisk slet ikke så svært. Helt grunlæggende, så har en Arduino X antal I/O PIN. Disse PIN kan enten være indgange (INPUT), eller udgange (OUTPUT). Hvis man konfigurerer det til at være indgange, kan man modtage signal fra eksempelvis en trykknap. Hvis man derimod konfigurerer det til at være en udgang, kan man styre LED, lamper, servoer, motorer og andet. Nogle gange er Arduinoen bare ikke kraftig nok i sig selv, og så må der lidt ekstra elektronik til - i de tilfælde fungerer Arduinoen som ren styre enhed. Jeg tager udgangspunkt i en Arduino Mini Pro på dette kursus, også når jeg omtaler antallet af "Pins" eller PIN som man kan bruge. Andre modeller Arduino har et andet antal - men udover antallet af PIN, så er det grundlæggende stort set identisk. Arduinoen har som sagt en stribe PIN - eller Pins som det hedder på engelsk. Alle PINs der ikke lige har med strømforsyning at gøre eller reset PIN, kan bruges som ind eller udgange - men ikke begge dele på samme tid.

18 HVORDAN FUNGERER EN ARDUINO Når man bruger en PIN som udgang, kan den enten levere 0V (slukket - eller på engelsk LOW), eller 5V (tændt, eller på engelsk HIGH). Dog kan en Arduino ikke levere så meget strømstyrke. Maksimalt 40 ma per udgang (det anbefales max 20),og maks 200 ma (ma) totalt. Det betyder at har man noget der bruger eksempelvis 30 ma, kan man maksimalt have 6 af dem tændt på samme tid. Det er dog ikke et problem, skal vi bruge mere, kræver det bare lidt ekstra elektronik, som vi så kan styre med Arduinoen. Der er stort set ikke grænser for hvad man kan lave af styringer med en Arduino. Jeg har set, at nogle har lavet en styring til en hel bilvaskehal, og selv har jeg eksempelvis lavet en poletautomat til et vaskeri, samt et utal af andre små styringer. Med erfaring og viden om Arduino, kan man meget, men hvis man kombinere det med viden om elektronik - så er det stort set kun fantasien der sætter grænser!

19 HVORDAN FUNGERER EN ARDUINO Der findes en lang række projekter med forskellige robotter der er mere eller mindre avancerede - hvor hjernen er en Arduino eller noget tilsvarende. Nogle 3D printere bruger en Arduino som styring. Så det er bare at få ideerne, og lære hvordan man får Arduinoen til at gøre som man vil. Der hvor Arduinon eksempelvis har sine begrænsning er omkring lyd og billede - men der findes der andre lignende produkter på markedet, som i princippet fungerer på nøjagtig samme måde som Arduino. Indeni en Arduino er der et program, som vi lægger ind. Ja, faktisk er der to programmer. En såkaldt bootloader, som sørger for at Arduinoen forstår vores program, og så selve vores program. Det er kun vores eget program vi behøver at bekymre os om. Et Arduino program består minimalt af to dele, men oftest tre. Deklarationer Setup Loop

20 ARDUINO PROGRAMMETS DELE - SETUP Nu undrer du dig måske over at jeg før skrev deklarationer først, men nu starter med at beskrive setup. Deklarationer er ikke nødvendige for et basalt Arduino program - i modsætning til setup og loop. void setup(){ } Dette er definationen af en funktion der hedder setup. en funktion kan enten udføre noget og give et svar, eller bare udføre noget, uden der forventes svar. Når man skriver void foran funktionen, forventes ikke et svar retur. Hvis man ville lave en regnemaskine, havde selve regnefunktionen været en hvor man forventede et svar. Efter navnet på funktionen ser vi to paranteser (). Har man en funktion som kræver input, så vil det være imellem paranteserne ( og) det er defineret. De "væltede tuborg" { og } definerer start og slut på koden der hører til funktionen. Setup funktionen er der hvor man fortæller Arduino hvad man gerne vil bruge de forskellige PIN til, altså om de skal være indgange (INPUT), eller udgange (OUTPUT). VIGTIGT: setup funktionen kører KUN een gang, lige når Arduino er startet

21 ARDUINO PROGRAMMETS DELE - LOOP I modsætning til void setup() der kun kører EEN gang, så afvikles loop straks efter setup er færdig, men starter forfra fra begyndelsen af loop, når den er færdig. Derfor er det her at selve vores program skrives, så det køres igen og igen, til vi tager strømmen fra. void loop() { } Igen ser vi at der bruges ordet void, som betyder at vi ikke forventer at loop sender noget tilbage til os. Vi ser også at der i mellem ( og ) ikke står noget. Sidst men ikke mindst ser vi at der endnu ikke står noget kode mellem { og }. Når både setup() og loop() er tomme for kode mellem { og } gør Arduinoen absolut intet. Man kan dog godt opleve programmer, hvor der kun er kode i setup()

22 ARDUINO PROGRAMMETS DELE - DEKLARATIONER Nu er det blevet relevant at høre om deklarationer, fordi du kan godt lave et program uden, men meget hurtigt er det en stor hjælp hvis man eksempelvis kan hente et bibliotek ind som giver os øget funktionalitet, eller konstanter og variabler som vi kommer til om lidt. Fælles for dem er at de SKAL deklareres i toppen af din kode, dvs før Arduinoen når ned til setup() Derfor nævnte jeg dem først i den rækkefølge som de skal være i koden, men beskrev først deklarationer som det sidste af de tre.

23 OPSUMMERING Vi har nu lært det helt grundlæggende om hvad en Arduino er, og hvad den kan. Vi har set lidt på de tre hovedelementer i et Arduino program. Vi har lært at void betyder at vi ikke forventer noget retur Vi har lært at når vi kalder en funktion vil det der står imellem ( og) være værdier som vi ønsker at give til funktionen Vi har lært at når vi kalder en funktion, så er det det der står mellem { og }, som er den egentlige kode i funktionen.

24 INSTALLATION AF ARDUINO IDE Arduino IDE er gratis og kan hentes på Dog er det som med altid, at jo mere det kan betale sig at lave noget ved det, desto mere tid bruger de på at lave det endnu bedre. Jeg kan derfor varmt anbefale at man overvejer en donation, men man er ikke tvunget, programmet virker lige godt af den grund. Når man har installeret det, er det godt at checke hvor det har lagt sit libraries bibliotek. Det er bedst hvis library biblioteket ligger under din egen brugerprofil: på windows eksempelvis C:\Users\<ditbrugernavn>\Documents\Arduino\libraries eller på dansk C:\Brugere\<ditbrugernavn>\Dokumenter\Arduino\libraries Dette for at undgå at dine filer bliver overskrevet når programmet opdateres. Stien kan ændres under menuen "Fil/Egenskaber"

25 DEN FØRSTE KOMMUNIKATION MELLEM PC OG ARDUINO - INSTALLATION AF DRIVER De originale Arduino boards har den fordel, at der har man inkluderet driveren i Arduino IDE, så der kan man bare tilslutte den, og vælge det rigtige board, processor og port, og så er man kørende. Med kopi Arduinoer fra kina, er det lidt anderledes, da de ofte bruger nogle andre billigere kredse for at lave forbindelsen mellem Arduino Seriel kommunikationen og USB. Typisk er dette en driver der hedder enten er af typen FTDI eller CH340G. Mange nyere operativsystemer kan selv finde de rigtige driver, men det sker ofte at vi selv må installere det manuelt. Processen er den samme uanset om vi taler om FTDI eller CH340G, og selvom jeg viser det her på en PC med windows 10, så er det faktisk de samme windows elememter vi skal bruge, og ca samme process. Første skridt er at hente den rigtige driver - det kan gøres fra Ch340g stammer fra en side på kinesisk, som kan gøre det lidt utrygt, jeg har dog ikke oplevet problemer med den driver jeg har linket til på min Arduino hjemmeside. Så hent driveren der passer til din version, (eller hent dem begge), og pak dem ud i en mappe hvor du let kan finde dem igen.

26 DEN FØRSTE KOMMUNIKATION MELLEM PC OG ARDUINO - INSTALLATION AF DRIVER - FORTSAT Jeg kan desværre ikke få min windows 10 til ikke at automatisk at installere driveren, hvorfor det ikke er muligt for mig at lave en guide til det fra for nuværende. Dog er der en der har lavet en fin guide, dog på engelsk, men skulle være til at forstå. Det vigtigste at vide i den forbindelse er at Device Manager er det som på dansk kaldes Enhedshåndtering. Derudover er der nogle drivere der skal installeres ad to omgange, så første gang man installerer, installerer den typen af enhed (USB to Serial) anden gang man installerer, den specifikke driver der passer til den chip der sidder på printet. Linket til den engelske guide

27 HVAD ER EN COM PORT Ordet "COM" står for det engelske ord communications, eller på dansk kommunikation. Det er en meget gammel, og simpel standard for hvordan en computer kan kommunikere med andre computere eller andet elektronik. Der er siden COM portens oprindelse, kommet mange nye standarder til, herunder eksempelvis USB. Da de nye standarder er både hurtigere og smartere, fylder mindre, og billigere at producere, har man for en del år siden stoppet med at udstyre computere med en COM port som standard. I stedet har man lavet et konverteringsstik, som omdanner en USB port til en COM port. En såkaldt USB to serial adapter. Ikke alle Arduinoer er udstyret med en indbygget USB port, men de er alle udstyret med mindst een seriel port (COM port). Programmeringen foregår via denne port. Personligt holder jeg meget af at bruge Arduino Mini Pro, da den ikke fylder meget, og er billig i indkøb. Det er dog også en af dem der ikke har indbygget USB til seriel kommunikation, hvorfor vi skal bruge den føromtalte adapter.

28 DEN FØRSTE KOMMUNIKATION MELLEM PC OG ARDUINO - TILSLUTNING AF FORBINDELSE Arduino med indbygget USB Arduino uden USB USB til Serial

29 ARDUINO IDE Arduino programmeres via Arduino IDE. Det kan hentes gratis på adressen Når det er installeret og startet op ser det ud som billedet til venstre. Jeg vil på de næste sider gennemgå de vigtigste funktionaliteter og menuer.

30 ARDUINO IDE - MENUEN FIL I menuen "Fil" kan du enten lave en ny sketch (program), åbne en eksisterende, eller under "Sketchbook" finde en af de sketches som du har har lagt i mappen Arduino under dokument biblioteket. Eksempler indeholder eksempler både på standard Arduino IDE sketches, men også hvis du har installeret andre biblioteker, så medfølger der også ofte eksempler med der, så du kan se hvordan biblioteket bruges i din kode. Når man åbner et eksempel, kan man modificere koden til sine egne behov, og når man gemmer filen, vil Arduino IDE bede om at gemme den som en ny sketch Menupunktet "Rediger" vil jeg springe over da det kun indeholder helt standard ting.

31 ARDUINO IDE - MENUEN "SKETCH" I menuen Sketch kan vi kompilere eller uploade vores program. Vi kan også eksportere vores kode færdig kompileret så den ikke kan modificeres. Det er dog ret avanceret brug, hvorfor jeg ikke kommer nærmere ind på det her. Der er dog en ting i denne menu som kan være interesant for en som er ny i Arduino verdenen. Include library - der inkluderer et bibliotek i din kode. Det kan eksempelvis være et bibliotek hvor du har noget standard kode til en bestemt funktionalitet, eller et bibliotek der får noget andet elektronik til at virke sammen med Arduino - et eksempel kunne være et display.

32 ARDUINO IDE - MENUEN VÆRKTØJER I denne menu er der flere vigtige funktioner. Jeg gennemgår de vigtigeste. Automatisk formatering - Gør din kode mere simpel at læse, og dermed også fejlsøge. Serial monitor - når man vil kommunikere med Arduino, eksempelvis når man fejlsøger en kompleks sketch (program). Board - her skal man vælge hvilken Arduino version man benytter. Det har betydning for hvordan programmet laver koden, og vælger du et forkert board, vil det i bedste fald ikke uploade, i værste vil det ødelægge din Arduino. Processor - Nogle Arduino modeller fåes i varianter med forskellige processorer, her er det vigtigt at det er den rigtige version. Port - Her vælges den COM port som der skal bruges til at få computeren til at kommunikere med din Arduino.

33 ARDUINO IDE - STIER Jeg ejer desværre ikke en mac, så derfor er denne beskrivelse udelukkende gældende for en PC med Windows. Som standard installeres selve Arduino IDE i programmappe som ligger under C:\Program Files eller C:\Program Files (x86) for 64-bit. I denne mappe, ligger der en undermappe der hedder "libraries" - det er her alle biblioteker du henter fra nettet skal ligge. Til en begyndelse skal du ikke spekulere på det, vi kommer ind på det senere i dette kursus. Alligevel er det vigtigt at kende placeringen af denne mappe, da den bliver overskrevet hver gang vi installerer en ny version af Arduino IDE. Arduino IDE leder dog også efter en mappe et andet sted, nemlig under dit almindelige dokumet biblotek, der som standard ligger under C:\Users\<dit brugernavn>\arduino Her gemmes dine programmer, som i Arduino verdenen kaldes "sketches" - og samtidig også en mappe der hedder "libraries" som kan indeholde alle dine downloadede biblioteker, så disse ikke overskrives ved opdatering af programmet.

34 INDSTILLE ARDUINO IDE TIL AT BRUGE DEN RIGTIGE COM PORT, OG DEN RIGTIGE ARDUINO VERSION Her er et eksempel på hvordan du indstiller Arduino IDE til at vide, at du bruger en Arduino mini pro. Listen er meget længere end den vises her, men alle er versioner er forskellige Arduinoer - som alle kan programmeres på samme måde via Arduino IDE. Det samme gøres under processor og port.

35 ARDUINO IDE - EKSEMPLER Arduino IDE er fyldt med rigtigt mange eksempler, og næsten hvergang man finde nye Arduino biblioteker, er der eksempler med, der viser hvordan koden bruges i praksis. Du finder eksemplerne hvis du starter Arduino IDE programmet og går i menuen File / Examples eller på dansk Filer / Eksempler

36 VORES FØRSTE PROGRAM Som standard ligger der allerede et program i en Arduino når man får den. Programmet er identisk med eksemplet under file /examples/basic/blink Programmet får den indbyggede lysdiode på PIN 13 til at blinke med 1 sekund tændt, og 1 sekund slukket. Lad os se hvordan det ser ud:

37 VORES FØRSTE PROGRAM - KODEN /* Dette er vores blink program */ void setup(){ } void loop(){ } pinmode(13,output); digitalwrite(13,high); delay(1000); digitalwrite(13,low); delay(1000);

38 VORES FØRSTE PROGRAM - FORKLARING /* Dette er vores blink program */ void setup(){ } void loop(){ } pinmode(13,output); Slut på setup digitalwrite(13,high); delay(1000); digitalwrite(13,low); delay(1000); kommentaren Slut på kommentaren Slut på loop, loop startes forfra indtil Arduino slukkes Her starter der en kommentar som går over flere linier Kommentarer er kun til for at vi kan skrive små hjælpetekster til os selv, eller andre der skal læse vores kode Start på Setup funktionen der køres EEN gang lige når Arduino tændes Her fortælles at PIN nummer 13 skal være en udgang - mulighederne er OUTPUT, INPUT, INPUT_PULLUP Start på Loop funktionen der startes når setup er færdig, og kører indtil sluk Vi venter i 1000 millisekunder Vi venter i 1000 millisekunder Her fortæller vi at vi gerne vil skrive til PIN 13, at den skal være HØJ, dvs give 5V (Lysdioden tændes) Her fortæller vi at vi gerne vil skrive til PIN 13, at den skal være LAV, dvs give 0V (Lysdioden slukkes)

39 VORES FØRSTE PROGRAM - NYE FUNKTIONER pinmode Vi er altid nødt til at fortælle Arduinoen hvad de enkelte PIN skal bruges til - ellers sker der ingenting. Det gøres med funktionen pinmode som tager to værdier (parametre), den første hvilken PIN vi vil bruge, den næste hvad vi så vil bruge denne PIN til, indgang (INPUT), udgang (OUTPUT), eller indgang med "pull-up" modstand aktiveret. En pull-up modstand sørger for at hvis PIN ikke forbindes til stel (minus), så vil den blive "trukket" op til 5V. Alternativt kan man risikere at Arduino bliver forvirret, og ikke ved om den skal gøre PIN højt eller lavt, når der ikke er signal. digitalwrite Denne funktion tager igen to værdier (parametre), og styrer om vi vil tænde eller slukke en udgang. Den første værdi er PIN, den næste er om den skal være 5V (HIGH), eller 0V (STEL) delay Dette er en vente funktion, der får HELE vores program til at gå i stå i et givent antal millisekunder.

40 VORES FØRSTE PROGRAM - NYE FUNKTIONER Kommentarer Det kan være meget belejligt at indsætte kommentarer i sin kode, enten for at beskrive hvad man laver, hvis andre skal læse den, eller for at man også selv kan huske hvad man har lavet, hvis man skal kigge på den igen senere. Der er to måder at lave kommentarer på // angiver at alt der står efter de to skråstreger, er en kommentar, men kun på den linie. /* alt hvad der står efter skråstreg stjerne, er en kommentar, der kan strække sig over flere linjer. Præcis ligesom teksten du læser her. Kommentaren slutter først når den møde stjerne skråstreg således: */

41 LAVE EN TESTOPSTILLING PÅ FUMLEBRÆT

42 LAVE EN TESTOPSTILLING PÅ FUMLEBRÆT Jeg har været inde på breadboards før, men lige en gang til for Prins Knud. Hvis vi kigger lidt på vores breadboard til venstre, så ser vi at det er næsten skåret over på midten - vandret. Der er altså ikke forbindelse mellem øverste halvdel og nederste. Dernæst, så er der både nogle lodrette forbindelser, og nogle vandrette forbindelser. De lodrette er dem ind mod midten af printet, og de vandrette dem helt i kanten, gerne indikeret med en rød og en blå. Breadboardet er ligeglad med hvad du forbinder til hvad, men indikationerne kan være en hjælp til at lave det rigtigt, men forhindrer ikke fejl i dine opstillinger. i midten er de 5 lodrette huller i en række forbundet med hinanden, i de vandrette er de alle forbundet lige så langt som den røde eller blå streg viser. Det viser det nederste billede i venstre side Man bruger breadboardet ved at stikke komponenternes PIN ned i det, eller ledninger med hårde PIN, eksempelvis ledninger med såkaldte dupont stik.

43 LAVE EN TESTOPSTILLING PÅ FUMLEBRÆT Lav en opstilling som dette. Bemærk at opstillingen kun får strøm når Serial to USB adapteren er tilsluttet både Arduino og computer. Vil du have den til at køre selvstændigt skal du give den +5V på VCC og stel på GND.

44 VI SKRIVER ET PROGRAM TIL VORES TESTOPSTILLING /* blink test */ void setup(){ pinmode(10,output); //For at give strøm til noget vi har tilsluttet en PIN, skal vi definere PIN som en udgang. pinmode(11,output); } void loop(){ digitalwrite(10,high); //vi tænder for den grønne digitalwrite(11,low); // vi slukker for den røde delay(1000); //vi venter 1000 millisekunder. digitalwrite(10,low); digitalwrite(11,high); delay(1000); }

45 OPSUMMERING Vi har fået installeret driveren til vores Arduino Vi har fået startet programmet Arduino IDE Vi har indstilt Arduino IDE til den rigtige Arduino, Processor og port. Vi har testet kommunikationen til Arduino ved at uploade et eksempel

46 FEJLSØGNING De fleste af os er kun mennesker, og mennesker laver som bekendt fejl. Noget af det der kan være rigtigt svært med Arduino er at fejlsøge. Der er dog dels nogle ting som man kan starte med at checke, og dels findes der et værktøj indbygget i Arduino IDE, som vi kan udnytte til fejlsøgning. 1. Hvis du kan kompilere programmet, så hop direkte til næste side - "Serial Monitor" 2. Først check at du har husket semikolon ; alle de steder hvor det skal være (typisk i enden af hver linie) 3. Dernæst skal du checke alle paranteser og "væltede tuborg" - der SKAL være samme antal { som } og ( som ) 4. Check for stavefejl i funktionsnavne, husk at Arduino kode kender forskel på store og små bogstaver

47 SERIAL MONITOR Serial Monitor er et værktøj der er indbygget i Arduino IDE. Det gør os i stand til at kommunikere med Arduino mens den kører. En af de ting man kan bruge det til, er at skrive noget til denne monitor fra vores program - det vil så kunne aflæses på vores computer i realtid. Og så er det meget meget simpelt at bruge Vi skal først starte den serielle kommunikation op, og derefter kan vi skrive til den. Hvis du forestiller dig du så har nogle variabler, altså nogle værdier som ændrer sig i løbet af dit programs afvikling, så vil du kunne skrive dem ud til seriel monitoren, og dermed se, hvor langt i dit program du er kommet. SUPER SMART! På næste side viser jeg et simpelt eksempel, hvor jeg hvert sekund udskriver antal millisekunder at Arduino har kørt siden den startede sidst. HUSK at du åbner seriel monitoren via menuen Værktøjer, eller CTRL+SHIFT+M, og husk at sætte hastigheden i Seriel monitor vinduet til samme hastighed som den hastighed du har startet din serielle kommunikation med.

48 SERIAL MONITOR - EKSEMPEL void setup(){ Serial.begin(9600); //det er denne hastighed 9600 du skal huske at sætte i serial monitor vinduet } void loop(){ delay(1000); Serial.print("Nu er der gaaet: "); //her skriver vi på een linie i serial monitor vinduet Serial.print(millis()); // her skriver vi værdien af millis() ud i samme linie Serial.println(" millisekunder siden start"); //vi tilføjer så resten af teksten, man da vi her bruger println, laver den også linieskift til sidst }

49 KONSTANTER Som tommelfingerregel er det første man skriver i sin kode, det der starter med #, hvis man har noget sådan. Dernæst definerer man sine konstanter. En konstant er en værdi, som man vil bruge igen og igen igennem sit program,eksempelvis en PIN-nummer således at hvis du ønsker at rette det senere, kan du nøjes med at rette det eet sted. Definationen af en konstant, starter altid med ordet const, herefter hvilken type data, så et navn som vi kan kalde konstanten med, så et lighedstegn, og så den værdi man ønsker. Eksempelvis: const int detteerenkonstant = 1; BEMÆRK :navnet må være hvad du synes giver mening, bare du holder dig til engelske bogstaver og tal

50 EKSEMPEL PÅ BRUG AF KONSTANTER const int LEDPIN = 13; void setup(){ pinmode(ledpin,output); } void loop(){ digitalwrite(ledpin,high); delay(1000); digitalwrite(ledpin,low); delay(1000); Koden til venstre giver får den indbyggede LED til at blinke. skulle vi få lyst til at ændre det til en anden PIN, eksempelvis 9, ændrede vi bare dette: const int LEDPIN = 13; til const int LEDPIN = 9; Da det er en konstant, er den ens hele vejen igennem vores program, og kan ikke ændres mens programmet kører. }

51 VARIABLER Hvad er en variabel i forhold til en konstant Når først dit program er kompileret, så kan man ikke ændre på værdien af en konstant. Det kan man derimod med en variabel. Derfor bruges variabler meget mere end konstanter. Du definerer en variabel ved at skrive type, navn, lighedstegn og værdi. Eksempelvis sådan her int minvariabel = 13; Jeg kunne også nøjes med at skrive int minvariabel; Så ville den indeholde værdien 0 Nu kan vi i vores kode skrive minvariabel = 5+5; Nu er indholdet af minvariabel lig med 10.

52 EKSEMPEL PÅ BRUG AF VARIABLER OG KONSTANTER const int LEDPIN = 13; int tid = 100; void setup(){ pinmode(ledpin,output); } void loop(){ digitalwrite(ledpin,high); delay(tid); digitalwrite(ledpin,low); delay(tid); tid = tid+tid; } Koden til venstre giver får den indbyggede LED til at blinke. skulle vi få lyst til at ændre det til et anden PINnummer, eksempelvis 9, ændrede vi bare dette: const int LEDPIN = 13; til const int LEDPIN = 9; Vi har dog også en variabel - variablen "tid". Loop kører jo igen og igen, indtil man tager strømmen fra Arduino, så i bunden af Arduino, ændrer vi så variablen tid, ved at fordoble tiden ved hvert gennemløb. Det er en variabel - altså en værdi der kan ændre sig efter behov.

53 DATATYPER En konstant eller en variabel definerer man ved hjælp af en datatype. Datatypen afgør dels hvad konstanten / variablen kan indeholde, dels hvor meget plads der optages i Arduinoens hukommelse. Derfor findes der også rigtigt mange variabel typer, men i praksis kommer man rigtigt langt med nogle ganske få. Her er dem jeg bruger mest. int et heltal mellem og unsigned int et positivt heltal mellem 0 og unsigned long et positivt heltal mellem 0 og char gemmer værdien af en ascii karakter - enten med karakteren, eller karakteres ascii værdi String gemmer en tekst streng der kan indeholde både bogstaver og tal. array en liste over variabler der bliver knyttet til et nummer i et indeks. boolean kan have værdien true eller false (sandt eller falsk) float et tal der indeholder decimaler. Flere datatyper kan man finde på

54 LIDT OM PIN TYPER Arduinoen har en stribe pins (PIN), som kan bruges som enten input eller output. De fleste er digitale - dvs de forstår kun 0V eller 5V. Andre kan bruges som analoge indgange, som kan aflæse en variabel spænding mellem 0 og 5V. Man kan dog også bruge de analoge pins som digitale men har din Arduino en A6 og A7, kan disse kun bruges som indgange. Hvis vi bruger en digital pin til indgang for et analogt signal, vil den registrere den med den værdi der ligger tættest på, enten 0V (LOW), eller 5V (HIGH). Når vi i setup skal definere vores pins, så kan vi definere dem på tre måder. OUTPUT - en udgang, hvis vi vil eksempelvis tænde og slukke en led eller andet. INPUT - en indgang der kan modtage et signal INPUT_PULLUP - en indgang hvor der internt i Arduino bliver forbundet en modstand til 5V, så hvis der ikke er noget signal på indgangen, så bliver den automatisk "trukket" HIGH - som om der var 5V på indgangen.

55 SPECIELLE PINS Nogle pins har specielle formål. Hvilken PIN nummer der bliver brugt til hvilken funktion KAN variere, men gør det sjældent når man bruger Arduino boards. Der findes flere end beskrevet her - men da dette kursus er for begyndere, er det ikke taget med. TX0 / RX1 - disse bruges af seriel kommunikationen. De kan bruges, men vil så blive forstyrret når man uploader et nyt program, eller bruger en seriel forbindelse, eksempelvis Seriel monitoren. 2 / 3 - disse pins fungerer normalt, men kan også bruges til eksterne interrupts. Et eksternt interrrupt bruges eksempelvis hvis man vil lave en omdrejningstæller, eller modtage et digitalt signal - eksempelvis DCC til styring af modeltoget. 3 / 5 / 6 / 9 / 10 / 11 - disse pins kan bruges til det man kalder Pulse width modulation, eller på dansk pulsbredde modulering. Med PWM kan man sige en PIN skal være tændt eksempel 30% af tiden. Signalet vil så skifte mellem HIGH og LOW mange gange i sekundet, men være HIGH 30% af tiden. Frekvensen den skifter med kan sættes til 62500hz for pin 5 og 6, og for PIN 3,9,10 og 11 - altså mere end gange i sekundet, men standard er den hhv 980 hz og 490 hz. Det menneskelige øje kan opfange ca 25 ændringer i sekundet, men deler vi et sekund med 25, så vil Arduinoen stadig have nået at skifte pin status ca 1000 gange - helt umuligt at opfange for os mennesker. Det kan vi udnytte til eksempelvis at lave fade effekter - eller styre spændinger. Denne cyclus kaldes Duty cycle. Reference: A0-A5 (for nogle Arduinoer A0-A7) Analog indgange, som kan måle en spænding mellem 0V og 5V, og giver en værdi i Arduino på mellem 0 (0V) og 1023 (5V) - ialt 1024 værdier. Vil man PINytte dem som digitale, referes de til som pin

56 HVORDAN BRUGER VI PINS Det er sådan set meget simpelt at bruge pins - vi kan enten skrive til dem, eller læse fra dem, alt efter om det er input eller output pins vi har defineret. OUTPUTS digitalwrite(pin,værdi) // her sætter vi en PIN til at være enten 0V (LOW), eller 5V (HIGH). analogwrite(pin,værdi) // her kan man sætte en PWM værdi fra til en PWM pin. Hvis værdien er 255 svarer det til at den er tændt med en duty cycle på 100% altså 5V. Er den sat til 128 vil det svare til en duty cycle på 50%, og analog elektronik vil opfatte det som ca 2,5V, selvom det egentlig er 5V, bare kun halvdelen af tiden. INPUTS digitalread(pin) //her aflæses værdien af en digital PIN, hvis den får 0V ind er resultatet LOW, får den 5V, er det HIGH. analogread(pin) //her fåes værdien for den spænding der måles på den pågældende PIN. 0 for 0V, ca 512 for 2,5V og 1023 for 5V - og alt derimellem.

57 OPSTILLING - PINTYPER Lav følgende opstilling. Bemærk at opstillingen kun får strøm sålænge Arduino er forbundet til din computers USB.

58 EKSEMPEL - PINTYPER /* Test af pin typer */ void setup(){ pinmode(9,output); //Vi definerer PIN 9 som en udgang pinmode(10,input_pullup); //Vi definerer PIN 10 som en indgang, som i mangel på signal går HIGH pinmode(a0,input); //Vi definerer A0 som input (A0 er en analog PIN og kan således måle en spænding mellem 0 og 5V) } void loop(){ int potvaerdi = map(analogread(a0),0,1023,0,255); // Vi tildeler en variabel værdien fra potmeteret, dog ændret til en en skala fra i stedet for indgangens if(digitalread(10)==low){//hvis knappen er trykket, bliver ben 10 forbundet til stel, og dermed vil PIN gå LOW. analogwrite(9,255); //Her skriver vi en PWM værdi til LED, som her får den til at lyse med max styrke. }else{ analogwrite(9,potvaerdi); //Her skriver vi en PWM værdi til LED, som får den til at lyse mere eller mindre kraftigt. } }

59 SINKE ELLER SOURCE En Arduino indeholder millionvis af bittesmå komponenter, og fordi de er så små, kan de ikke tåle ret meget strøm før de står af. Et enkelt PIN på Arduinoen kan max levere ca 40 ma, men det anbefales at man holder den på max 20 ma. En hel Arduino kan maximalt levere 200 ma, og dermed bliver det hurtigt problematisk at levere strøm nok til de ting vi gerne vil. Løsningen er alene at bruge Arduino som styring af noget andet elektronik, noget der kan holde til strømstyrken vi har behov for. Et andet lille trick er, at i stedet for at Arduino er kilde til det strøm som skal bruges, så lade kilden være en anden. Det eneste du skal huske er at stel (GND), som udgangspunkt altid skal være fælles. På den måde kan vi lade stel (GND) styre vores elektronik, fremfor +5V. Denne teknik kaldes at "sinke", hvor det modsatte kaldes at "source". Den store forskel når vi skriver vores program, er at så vil digitalwrite(13,high) - slukke, mens LOW vil tænde - altså modsat af hvad vi har arbejdet med indtil nu.

60 OPSTILLING TIL TRAFIKLYS PÅ FUMLEBRÆT

61 VI PROGRAMMERER TRAFIKLYS /* Trafiklys gælder både trafiklyset i den ene retning og den anden retning */ int tidhvoralleerroed = 2000; int tidroedtoggroent = 6000; int tidgult = 3000; int tidgultroedt = 1000; /* Vi definerer nu vores LEDs så de er nemmere at referere til i koden signaler i den ene retning laver vi med et prefix. Hvis vi forestiller os at vi ser lyskrydset fra oven, så er der et lyskryds der går vertikalt, det kalder vi V_ og så er der et der går horisontalt, det kalder vi H_ Da vi har både fodgænger og vej signaler, så laver vi endnu et prefix, fod_ for fodgænger signalet, og vej_ for vejsignalet. Til sidst farven uden danske karakterer - Altså ROED, GUL, GROEN */

62 VI PROGRAMMERER TRAFIKLYS - FORTSAT int V_fod_ROED = 9; int V_fod_GROEN = 8; int V_vej_ROED = 7; int V_vej_GUL = 6; int V_vej_GROEN = 5; int H_fod_ROED = 10; int H_fod_GROEN = 11; int H_vej_ROED = 4; int H_vej_GUL = 3; int H_vej_GROEN = 2; /* Herefter skal vi starte med at sætte alle vores PINs til at være udgange - da de er i rækkefølge gør jeg det således Samtidig sørger vi for at alle er slukket ved start, og slutter så af med at tænde for de røde lys*/ void setup(){ } for(int i=2;i<=11;i++){ pinmode(i,output); digitalwrite(i,low);digitalwrite(v_fod_roed,high);digitalwrite(v_vej_roed,high); } digitalwrite(h_fod_roed,high);digitalwrite(h_vej_roed,high);

63 VI PROGRAMMERER TRAFIKLYS - FORTSAT /* Nu er det tid til at skrive selv logikken - altså selve hovedprogrammet, eller hovedrutinen - kært barn har mange navne */ void loop(){ delay(tidhvoralleerroed); digitalwrite(v_vej_gul,high); delay(tidgultroedt); digitalwrite(v_vej_roed,low); digitalwrite(v_vej_gul,low); digitalwrite(v_vej_groen,high); digitalwrite(v_foed_groen,high); delay(tidroedtoggroent-2000); digitalwrite(v_foed_groen,low); digitalwrite(v_foed_roed,high); delay(2000); digitalwrite(v_vej_groen,low); digitalwrite(v_vej_gul,high); delay(tidgult); digitalwrite(v_vej_gul,low); delay(tidhvoralleerroed);

64 VI PROGRAMMERER TRAFIKLYS - FORTSAT delay(tidhvoralleerroed); digitalwrite(h_vej_gul,high); delay(tidgultroedt); digitalwrite(h_vej_roed,low); digitalwrite(h_vej_gul,low); digitalwrite(h_vej_groen,high); digitalwrite(h_foed_groen,high); delay(tidroedtoggroent-2000); digitalwrite(h_foed_groen,low); digitalwrite(h_foed_roed,high); delay(2000); digitalwrite(h_vej_groen,low); digitalwrite(h_vej_gul,high); delay(tidgult); digitalwrite(h_vej_gul,low); }

65 FUNKTIONEN RANDOM Nogle gange ønsker man at lave noget der sker tilfældigt. Et eksempel er hvis vi vil simulere lyset fra en der står og svejser. Det er uforudsigeligt hvordan det lyser, og denne uforudsigelighed kan vi opnå ved at bruge funktionen random. random(min,max); giver os et tilfældigt tal mellem min og max værdien, eksempelvis random(0,25) giver et tal mellem 0 og 25. Random er bare ikke helt tilfældig, hvilket du vil erfare hvis du roder meget med det. Derfor har man også lavet en anden funktion - nemlig randomseed(input); Nu kommer vi tættere på. input kan vi erstatte med noget som vi ved ændrer sig. På en Arduino har man nogle PIN der kan bruges som analoge inputs - når der ikke er forbundet noget til dem, vil de stå og "svæve" - dvs de vil måle en værdi, men hvilken kan vi ikke helt forudsige. Derfor er den god, men ikke perfekt, at bruge som random seed. Det gøres sådan her randomseed(analogread(a0)); //giver en rimeligt tilfældig værdi til som random bruger som basis når den skal finde et tilfældigt tal. random(0,25); //giver en random værdi mellem 0 og 25

66 SVEJSELYS const int ledpin = 13; // LED forbundet til PIN 13 med formodstand på 330 Ohm void setup() { pinmode(ledpin, OUTPUT); //vi sætter vores ledpin som udgang } void loop(){ int i,count; //her definerer vi to int variabler i samme linie, variabler af samme type kan defineres på denne måde count=random(10,60); //vi finder et tilfældigt tal mellem 10 og 60 for (i=0;i<count;i++) { //vi laver en forløkke som vi kigger nærmere på senere, den bruges til at køre det samme kode X antal gange. digitalwrite(ledpin, HIGH); // Vi tænder vores LED delay(random(60)); //vi venter mellem 0 og 60 millisekunder digitalwrite(ledpin, LOW); // vi slukker vores LED delay(random(200)); //vi venter mellem 0 og 200 millisekunder } delay(random(800,2000)); //vi venter mellem 800 og 2000 millisekunder. }

67 IF THEN ELSE Ofte har vi i koden brug for at teste på en PIN om det er højt eller lavt, og alt efter status, gøre det ene eller andet. Dette kalder man en IF funktion. Ordet if er direkte oversat til det danske HVIS. Altså hvis denne er lig med denne, så skal vi gøre et, ellers skal vi gøre noget andet eller ingenting. Selve sammenligningen kalder vi for en operator. if(value1==value2){ }else{ } Her sammenligner vi to værdier. Du undrer dig sikkert over hvorfor vi bruger == og ikke kun =. Alle computere er dumme, det gælder også Arduino. Hvis vi nøjes med = vil den tro vi forsøger at sætte en variabel til en bestemt værdi, mens bruger vi to == lige efter hinanden, vil Arduinoen forstå at vi forsøger at sammenligne de to værdier.

68 IF THEN ELSE - FORTSAT if(digitalread(6)==high){ digitalwrite(13,high); }else{ digitalwrite(13,low); } Koden herover vil checke om der kommer 5V ind på PIN 6, og hvis så tænde for 5V på PIN 13, og ellers slukke. if(digitalread(6)==high){ digitalwrite(13,high); } Koden herover vil også tænde PIN 13, men ikke slukke den igen.

69 IF THEN ELSE - FORTSAT Vi kan også bruge if sætninger direkte når vi sætter værdien af en variabel. Eksempel: minvariabel = (digitalread(6)==high)?1:0; /* Ovenfor siger vi at variablen skal være lig med, og så kommer det interessante. Vi laver en sammenligning af digitalread(6) og HIGH inde i parantes. med det efterfølgende? gør vi det så til en såkaldt conditional statement, altså en beregnet erklæring. Efter spørgsmålstegnet kommer vi først med vores resultat, hvis sammenligningen var sand, og der efter et kolon for at sige, nu definerer vi resultatet hvis sammenligningen var falsk */ Her skriver vi ikke if foran, men den gør det samme som if(digitalread(6)==high){ minvariabel = 1; }else{ minvariabel = 0; }

70 LIDT OM OPERATORER Der findes disse operatorer som du kan benytte i en if. x == y (x er lig y) x!= y (x er forskellig fra y) x < y (x er mindre end y) x > y (x større end y) x <= y (x er mindre eller lig med y) x >= y (x er større eller lig med y) Du kan kombinere flere ved at bruge logiske operatorer i tillæg! (logical ikke) && (logical og) (logical eller)

71 LIDT OM OPERATORER - FORTSAT if(digitalread(6)==high&&digitalread(7)==low){ digitalwrite(13,high); } Ovenfor skal både PIN 6 være høj og 7 være lav, før at der tændes for pin 13 if(digitalread(6)==high digitalread(7)==high){ digitalwrite(13,high); } Herover er det så hvis enten PIN 6 eller PIN 7 er høj, så skal der tændes for pin 13.

72 FOR-LØKKE En for-løkke brugte vi lidt tidligere i svejse eksemplet. Hver gang vi ønsker at gøre det samme igen og igen x antal gange, er det smart at bruge en for-løkke. Navnet løkke minder os om at det går i ring. En løkke har brug for tre ting defineret, en start værdi, en betingelse for hvornår den skal stoppe, og hvilket spring startværdien skal tage ved hvert gennemløb. Startværdien er bare et tal Betingelsen er bare en erklæring fra som i en if og springet er bare en defination af hvor meget den skal hoppe (typisk plus een eller minus een, men kunne også være spring som eksempelvis *128 eller noget helt tredie).

73 FOR LØKKER - FORTSAT for(int i=5;i<=10;i++){ digitalwrite(i,high); } Her definerer vi "i" som en variabel af typen int, altså heltal. Den tildeler vi startværdien 5, men kunne være hvad som helst. Så checker vi om værdien af i er mindre eller lig med 10, hvis ikke så kører vi koden, men er den, så stopper vi og fortsætter med koden der kommer efter forløkken (efter } ) Til sidst siger vi at i skal tælles op med een hver gang. Jeg kunne også have skrevet i+1, det havde været det samme. koden her ville tænde for PIN 5-10, da i'et i digitalwrite(i,high); erstattes af værdien af I i dette gennemløb hvis man eksempelvis skal sætte alle pins til output, kunne man i setup skrive: for(i=0;i<=17;i++){ pinmode(i,output); }

74 SWITCH Ofte bruger man een variabel til at holde en status, eksempelvis på et signal. Hvis signalet har mere end to aspekter, skal vi kunne checke på flere værdier. Her er koden switch(værdi) helt genialt. inde i switch, laver man nogle forskellige scenarier, også kaldet cases på engelsk. Hvis den aktuelle case er sand, så køres den efterfølgende kode, hvorefter man hopper ud af switch igen med en break. Så fortsætter koden efter } i switch. Eksempel switch(minvariabel){ case 0: digitalwrite5,high); //hvis værdien af minvariabel er 0, så køres denne kode break; case 1: digitalwrite(6,high); //hvis værdien af minvariabel er 1, så køres denne kode break; case 2: digitalwrite(7,high); //hvis værdien af minvariabel er 2, så køres denne kode break; }

75 UNDGÅ DELAY Rigtigt mange eksempler man finder på nettet, eksempelvis det svejseeksempel vi lavede tidligere, benytter delay(). Delay får Arduinoen til at stoppe op, og vente det angivne antal millisekunder. Til helt simple programmer er det meget fint, men hvis vi eksempelvis gerne vil kunne styre to lyssignaler uafhængigt af hinanden, så går det ikke at bruge delay - for arduionoen multitasker ikke (den kan ikke lave flere ting på een gang). Så har vi sat lyssignal til at pause i X sekunder, så kan vi i den tid ikke gøre noget med et andet lyssignal. Heldigvis kan vi få den til at lave noget der minder om multitasking. Det gøres ved at vi definerer vores egen tidskontrol (timer), og hvis der er gået den ønskede tid, så kører vi koden. Dette kaldes også en statemachine på engelsk. Til det skal vi bruge en variabel der kan indeholde et kæmpe tal. Jeg definerer derfor ofte en variabel der hedder _lasttime som en unsigned long. unsigned long _lasttime; Der er ingen speciel grund til at jeg bruger understregning først, eller kalder den netop det - det kan du gøre som du har lyst til. Jeg gør det mest af vane, og ved at gøre det på samme måde, bliver fejlsøgningen lettere. Vi bruger så funktionen millis(), der returnerer antal millisekunder siden vi tændte for Arduinoen.

76 UNDGÅ DELAY - FORTSAT /* Eksempel på brug af timer i stedet for delay */ unsigned long _lasttime; //en variabel som vi kan bruge til at gemme hvor mange millisekunder der var gået sidst vi aktiverede vores timer. int ventetid = 500; //den tid vi gerne vil have at der skal gå mellem hvergang at vores kode eksekveres int status; //en variabel som vi kan bruge til at holde status på vores LED - 1 = HIGH, 0=LOW void setup(){ pinmode(13,output); //vi sætter PIN 13 til at være vores udgang } void loop(){ if(millis()-_lasttime>=ventetid){ //hvis tiden der er gået siden tændt minus tidstemplet fra sidst vores kode kørte er større eller lig med vores ventetid, så skal vi køre koden status=!status; //her sætter jeg status til det modsatte af hvad den var, hvis den er 0, sættes den til 1, og omvendt. digitalwrite(13,status); //her tænder og slukker jeg PIN 13, alt om status variablen er 1 eller 0 _lasttime = millis(); //her gemmer jeg tidsstemplet for hvornår vores kode sidst har været eksikveret. } }

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

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

TinkerCad - Arduino simulator

TinkerCad - Arduino simulator TinkerCad - Arduino simulator Dokument fra H.C.Ørsted Gymnasiet, delt i HTX-Strømspassergruppen. ( Lidt modificeret / Valle ) På tinkercad.com kan man både arbejde med 3D emner, men også elektroniske kredsløb.

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

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

ARDUINO PROGRAMMERING

ARDUINO PROGRAMMERING ARDUINO PROGRAMMERING Teknologisk Institut Opgaver i programmering af Arduino Indholdsfortegnelse Kapitel 1... 2 Arduino Uno mikrokontroller... 2 Digitalt signal... 3 Analogt signal... 3 Arduino Uno Specifikationer...

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

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

Modeljernbane elektronik for begyndere...og dem der vil igang med at bygge deres egne dekodere

Modeljernbane elektronik for begyndere...og dem der vil igang med at bygge deres egne dekodere 2015 Modeljernbane elektronik for begyndere...og dem der vil igang med at bygge deres egne dekodere Dette dokument giver en grundlæggende indføring i standard elektronik komponenter og deres virkemåde,

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

Start på Arduino og programmering

Start på Arduino og programmering Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget

Læs mere

Kom godt i gang med Fable-robotten

Kom godt i gang med Fable-robotten Kom godt i gang med Fable-robotten 1. Først skal du installere programmet på din computer. Gå ind på shaperobotics.com og under support vælger du download: Her vælger du, under PC App om du kører Windows

Læs mere

Fable Kom godt i gang

Fable Kom godt i gang Fable Kom godt i gang Opdateret: 26-03-2018 Indholdsfortegnelse 1. Først skal du installere programmet på din computer 3 2. Når programmet er installeret er du klar til at pakke robotten ud 4 3. Nu er

Læs mere

Fra programmering til mikroprocessor

Fra programmering til mikroprocessor Programmering for begyndere Brug af Arduino Fra programmering til mikroprocessor EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Programmerings kursus Sidste gang (Introduktion)

Læs mere

Fable Kom godt i gang

Fable Kom godt i gang Fable Kom godt i gang Vers. 1.3.1 Opdateret: 29-08-2018 Indholdsfortegnelse 1. Installer programmet 3 2. Pak robotten ud 5 3. I gang med at programmere 6 4. Programmér Fable til at køre fra 90 til -90

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

Sådan forbindes Arduinoen via et fumlebræt til ATTiny45 chippen.

Sådan forbindes Arduinoen via et fumlebræt til ATTiny45 chippen. Arduino software: https://www.arduino.cc/en/main/software Klaus modeltog, det levende hus: http://www.moppe.dk/levhusel.html TV simulation: http://www.herberts-n-projekt.de/basteleien-1/belebtes-haus/

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

CANSAT & ARDUINO step by step

CANSAT & ARDUINO step by step CANSAT & ARDUINO step by step Jens Dalsgaard Nielsen SATLAB Aalborg Universitet Danmark jdn@space.aau.dk 1/51 Arduino CANSAT - MÅL At måle ved hjælp af sensor temperatur, tryk, acceleration, CO2, lys,...

Læs mere

Programmering for begyndere Lektion 2. Opsamling mm

Programmering for begyndere Lektion 2. Opsamling mm Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger

Læs mere

Ved indkøring påtrykkes en kendt amplitude (HUSK 50 ohms afslutning) og displayet aflæses.

Ved indkøring påtrykkes en kendt amplitude (HUSK 50 ohms afslutning) og displayet aflæses. /* Power Meter 2012 /* Rettet den 13.februar 2013 /* Version 1.2 /* Input medie er en AD8307, som forsynes fra Arduino Uno stabiliserede 5 volt. A/D input er på Arduino analog input pin A0 AREF er tilført

Læs mere

Arduino kursus lektion 4:

Arduino kursus lektion 4: Arduino kursus lektion 4: I denne lektion skal vi bruge et digitalt termometer til at aflæse temperaturen! Herefter skal vi tænde 3 dioder som hver indikerer forskellige temperaturer! Opgave 1: Temperatursensor

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

Arduino Programmering

Arduino Programmering Microcontroller-programmering med Arduino I teknologi skal vi lære at lave programmer til en microcontroller for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal

Læs mere

CANSAT & ARDUINO step by step

CANSAT & ARDUINO step by step CANSAT & ARDUINO step by step Jens Dalsgaard Nielsen SATLAB Aalborg Universitet Danmark jdn@space.aau.dk 1/45 Arduino CANSAT - MÅL At måle ved hjælp af sensor temperatur, tryk, acceleration, CO2, lys,...

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

EKSEMPEL PÅ ELEVOPGAVE TIL ARBEJDET MED PROGRAMMERING AF ARDUIONO MED LED BÅND

EKSEMPEL PÅ ELEVOPGAVE TIL ARBEJDET MED PROGRAMMERING AF ARDUIONO MED LED BÅND EKSEMPEL PÅ ELEVOPGAVE TIL ARBEJDET MED PROGRAMMERING AF ARDUIONO MED LED BÅND side 1 LED bånd I dette opgavesæt skal du arbejde med et LED bånd og en Arudino. Diagrammet viser LED båndets tilslutningen.

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

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4. APPETITVÆKKEREN OZ6YM, Palle A. Andersen Efteråret 2017 Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4. DEMO-video

Læs mere

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning ELCANIC A/S ENERGY METER Type ENG110 Version 3.00 Inkl. PC program: ENG110 Version 3.00 Betjeningsvejledning 1/11 Generelt: ELCANIC A/S ENERGY METER Type ENG110 er et microprocessor styret instrument til

Læs mere

Hos Podconsultsbutik kan du finde vandpumpen i 3 udgaver, hvilket har betydning for hvordan du samler og forbinder pumpen til din Micro:bit.

Hos Podconsultsbutik kan du finde vandpumpen i 3 udgaver, hvilket har betydning for hvordan du samler og forbinder pumpen til din Micro:bit. Leg med vandpumper Hos Podconsultsbutik kan du finde vandpumpen i 3 udgaver, hvilket har betydning for hvordan du samler og forbinder pumpen til din Micro:bit. For nemheds skyld vil vi i denne guide kalde

Læs mere

MB-001 DCC/MM Udviklingsmodul

MB-001 DCC/MM Udviklingsmodul Rev 1.0.3 2016-06-05 Side 1 af 10 Intro DCC/MM Udviklingsmodul Venligst læst denne guide HELT igennem en gang eller to, før du begynder at samle kit et, så du føler dig afklaret med hvordan det skal samles.

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

I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide

I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide I gang med dit Gamer: bit Arkade Kit Denne guide er oversat og en smule forenklet fra Sparkfuns Hook-Up guide Gamer: Bit Carrier Board er en docking-station til micro:bit, som gør det nemt at anvende alle

Læs mere

Morse med micro:bit. Morse med micro:bit

Morse med micro:bit. Morse med micro:bit Forord Dette dokument indeholder 4 opgaver, som alle går ud på at kode en micro:bit til at udføre en funktion med morsealfabetet. Opgaverne er beregnet til elever i 5-7. klasse. Opgaverne har stigende

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

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003 Side 1 af 8 Dato: 14-05-2003 Til Sigurd Som aftalt vil jeg her fremsende vores program til vores 80C535 kit og display. Det gik jo ud på at vi skulle starte med at få den til at intialiserer displayet,

Læs mere

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Interrupt - Arduino EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Interrupts Programmeringskursus Genbrug Interrupts Betyder blot at man afbryder

Læs mere

const int disponibel_10= 10; const int disponibel_11= 11; const int disponibel_12= 12; const int blinkled = 13; // pin 13 er LED på NANO

const int disponibel_10= 10; const int disponibel_11= 11; const int disponibel_12= 12; const int blinkled = 13; // pin 13 er LED på NANO Styring_af_analog_repeater_OZ1LN_07-04-2018_v_1_07 device Arduino NANO fra v 1.06_j kræves Starttid bærebølge for valid pilottone ved start fra v 1.06_j kræves ResetTid uden bærebølge ved genstart efter

Læs mere

MANUAL TIL. OptitecRS CIPHERLAB 8000 - SCANNER

MANUAL TIL. OptitecRS CIPHERLAB 8000 - SCANNER MANUAL TIL OptitecRS CIPHERLAB 8000 - SCANNER INDHOLDSFORTEGNELSE 1 SAMLING OG TILKOBLING AF SCANNER... 1 1.1 STRØM TIL SCANNER... 2 1.2 TILKOBLING TIL COMPUTER... 2 1.2.1 Tilkobling med Seriel Stik...

Læs mere

Mircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)

Mircobit Kursus Lektion 3   (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.) Mircobit Kursus Lektion 3 http://microbit.org/ (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.) I sidste lektion var der en opgave man selv skulle prøve at løse. Man skulle lave et tabel

Læs mere

Kapitel 3 Betinget logik i C#

Kapitel 3 Betinget logik i C# Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret

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

Undersøgelse teknologi og resurser: Eleverne skal lære om enkel produktudvikling fra ide til implementering.

Undersøgelse teknologi og resurser: Eleverne skal lære om enkel produktudvikling fra ide til implementering. Forløbets titel Design og byg en solcelle racerbil Intro: Solcellelamper findes i mange forskellige versioner til haven. Solcellen omdanner solens energi til elektrisk strøm, så man kan bruge den til fx

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

Optimering af fraværsregistrering

Optimering af fraværsregistrering Journal Optimering af fraværsregistrering Eksamensprojekt i Programmering C, klasse 3.4, 2011 AFLEVERET 09-05-2014 Indhold Abstract... Fejl! Bogmærke er ikke defineret. Problemformulering... 2 Produktet...

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

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

Kom i gang med Course Tool 1.2

Kom i gang med Course Tool 1.2 Kom i gang med Course Tool 1.2 Indhold Indledning...2 Pris beregning...2 Anvendelse...2 Open Source...2 Anbefalinger...2 Installation...3 USB-Pen...3 Download Libre Office (Draw)...3 Indstil makrosikkerhed...4

Læs mere

ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning

ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning Generelt: ELCANIC A/S COUNTER Type CNT150 er en microprocessor baseret tæller. Specielt designet

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

GSM SMS Modem MODEL: SA RTU-1 V1.01

GSM SMS Modem MODEL: SA RTU-1 V1.01 GSM SMS Modem MODEL: SA RTU1 V1.01 Brugervejledning Indgange: Der er fire indgange på modulet. De kan programmeres som normale indgange. De kan programmeres som tæller. Udgange: Der er en udgang på modulet

Læs mere

USB-kabler og drivere

USB-kabler og drivere USB-kabler og drivere til Microsoft XP, Vista, Windows 7, Windows 8, Windows 10 Ofte stillede spørgsmål og fejlmeddelelser Bestem hvilket kabel du har Installation af korrekt driver version 3.2.0.0 MacOS

Læs mere

// inkluder library kode: #include <LiquidCrystal.h> #include <Serial.h> // Initialiser display LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// inkluder library kode: #include <LiquidCrystal.h> #include <Serial.h> // Initialiser display LiquidCrystal lcd(12, 11, 5, 4, 3, 2); /* OZ1HJR Program til styring af Mercury Motor SM-42BYG011-25 (ROB-09238) med EasyDriver V4.4 (ROB-10267). Når MS1 og MS2 begge er High, er et step (1.8 grader) opløst i 8 mikrostep. Et mikrostep svarer

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

Vejledning til opbygning af hjemmesider

Vejledning til opbygning af hjemmesider Side 1 af 9 Vejledning til opbygning af hjemmesider Hvis du er inde på din klubs hjemmeside, fx på forsiden, kan du nu gå i gang med at redigere. For at få redigeringsværktøjet frem, skal du klikke på

Læs mere

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller.

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller. Flowchart Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller. Et godt program til at tegne flowcharts med er, EDGE-Diagrammer, eller Smartdraw.

Læs mere

Bundkort Beskrivelse

Bundkort Beskrivelse Bundkort 2 3 4 8 5 6 7 9 0 2 3 4 5 6 20 2 7 8 9 Bundkortet er computerens midtpunkt, alle de andre hardware komponenter er tilsluttet til bundkortet. Når du skal købe et bundkort er det vigtigt at alle

Læs mere

Mircobit Kursus Lektion 1

Mircobit Kursus Lektion 1 Mircobit Kursus Lektion 1 I denne lektie skal vi se nærmere på den lille mini computer kaldt microbit. Egentlig kræver det at man har en fysisk microbit men man kan også næsten lave det samme med den simulator

Læs mere

Opdatering af firmware

Opdatering af firmware Opdatering af firmware Udgave 1 1. Oversigt Introduktion Denne manual beskriver, hvordan Premier 48, 88, 168 og 640 opdateres til firmwave version 8.x Udstyr Følgende udstyr skal benyttes til opgraderingen:

Læs mere

Internt interrupt - Arduino

Internt interrupt - Arduino Programmering for begyndere Brug af Arduino Internt interrupt - Arduino - Afslutning EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Intern interrupt Jeg vil rydde lidt op. Her er nogle punkter vil har glemt

Læs mere

Det er nødvendigt for brugeren at læse, forstå og følge vejledningens instruktioner.

Det er nødvendigt for brugeren at læse, forstå og følge vejledningens instruktioner. Tams Elektronik LD-G-3 / LD-W-3 (1) Lokomotivdekoder LD-G-3 / LD-W-3 i Märklin-Motorola format Denne oversættelse omfatter monterings- og anvendelsesvejledningerne til LD-G-3 / LD-W-3 dekoderen. Den originale

Læs mere

Beskrivelse af tryghedsalarmen

Beskrivelse af tryghedsalarmen Denne vejledning fungerer som en hurtig og nem brugervejledning på dansk, oversat af GSM Teknik ApS. Skal man bruge alle detaljer, henvises til den engelske vejledning, der medfølger i kassen. Beskrivelse

Læs mere

Dekoder type 628. Diagram. Print. Litra.DK

Dekoder type 628. Diagram. Print. Litra.DK Dekoder type 628 Denne dekoder anvendes hovedsagelig til signaler. Den kan også anvendes til andre opgaver, men her vil andre typer af dekodere være mere velegnet. Dekoderen forsynes med spænding og digital

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Adobe Digital Editions

Adobe Digital Editions Adobe Digital Editions Kom godt i gang Klik på knapperne nedenfor for at komme videre Forberedelse Download Adobe Digital Editions: Til Windows TRYK HER Til Mac OS TRYK HER Bemærk: Adobe Digital Editions

Læs mere

Udlæsning af stregkodefil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt).

Udlæsning af stregkodefil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt). Indholdsfortegnelse Introduktion... 2 Udlæsning af stregkodefil til scanneren... 3 Installation af scanneren... 5 Indlæsning af datafil i scanneren... 7 Brug af scanneren... 8 Sådan scanner du... 8 Sådan

Læs mere

Mircobit Kursus Lektion 4 (Du skal her vælge Lets Code Og herefter Block Editor.)

Mircobit Kursus Lektion 4   (Du skal her vælge Lets Code Og herefter Block Editor.) Mircobit Kursus Lektion 4 http://microbit.org/ (Du skal her vælge Lets Code Og herefter Block Editor.) I sidste lektion var der en opgave man selv skulle prøve at løse. I skulle lave et stop ur man kunne

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

Gem dine dokumenter i BON s Content Management System (CMS)

Gem dine dokumenter i BON s Content Management System (CMS) 24. august 2007 Gem dine dokumenter i BON s Content Management System (CMS) INDHOLDSFORTEGNELSE 1. Indledning... 2 2. Se indholdet i dit Content Management System... 3 3. Tilgå dokumenterne i My Content

Læs mere

Online via USB med ATS8500. Revision 02

Online via USB med ATS8500. Revision 02 Online via USB med ATS8500 ATS8500 - Opstart Programmet startes op ATS8500 - Opstart Ved første tilslutning af central via USB vil PC skulle installere driver for denne. Vælg Ja, kun denne gang & Installere

Læs mere

Åbn Paint, som er et lille tegne- og billedbehandlingsprogram der findes under Programmer i mappen Tilbehør. Åbn også Word.

Åbn Paint, som er et lille tegne- og billedbehandlingsprogram der findes under Programmer i mappen Tilbehør. Åbn også Word. 75 Paint & Print Screen (Skærmbillede med beskæring) Åbn Paint, som er et lille tegne- og billedbehandlingsprogram der findes under Programmer i mappen Tilbehør. Åbn også Word. 1. Minimer straks begge

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

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

HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING

HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING HUMANWARE BRAILLIANT INSTALLATIONSVEJLEDNING KOMMANDOOVERSIGT TIL BRUG PÅ WINDOWS COMPUTERE MED JAWS INTRODUKTION: Brailliant displays har indbygget BlueTooth og USB. BlueTooth anvendes til at forbinde

Læs mere

Udlæsning af opslagsfil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt).

Udlæsning af opslagsfil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt). Indholdsfortegnelse Introduktion... 2 Udlæsning af opslagsfil til scanneren... 3 Installation af scanneren... 4 Indlæsning af datafil i scanneren... 6 Brug af scanneren... 7 Sådan scanner du... 7 Tømning

Læs mere

SmartAir TS1000. Daglig brug

SmartAir TS1000. Daglig brug SmartAir TS1000 Daglig brug Indhold Brugere... 4 Opret brugere... 4 Brugerliste vinduet... 5 Knapper... 5 Grupper... 6 Søg bruger... 7 Rapport vinduet (brugere)... 7 Døre... 8 Opret døre... 8 Dørliste

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

LCD intro. LCD Character display-intro. Redigeret 4/6-2019

LCD intro. LCD Character display-intro. Redigeret 4/6-2019 LCD Character display-intro Parallel interface, Forbindelsesdiagram, Ram & Rom-struktur, Biblioteksfunktioner til at styre LCD-skærmen, Lcd.Print vs Lcd.Write, Selvdefinerede karakterer, herunder æ, ø

Læs mere

Vejledning til opsætning af: Dankort terminal model Flexi : Side 2 HUB : Side 4 Opsætning af PSAM : Side 5. Vigtigt!

Vejledning til opsætning af: Dankort terminal model Flexi : Side 2 HUB : Side 4 Opsætning af PSAM : Side 5. Vigtigt! Vejledning til opsætning af: Dankort terminal model Flexi : Side 2 HUB : Side 4 Opsætning af PSAM : Side 5 Vigtigt! I forbindelse med installation af dankort terminalen, skal du på den computer hvor dankort

Læs mere

\ \ Computerens Anatomi / /

\ \ Computerens Anatomi / / HTX Roskilde - mat-it-prog, 1.4 \ \ Computerens Anatomi / / Introduktion En PC ( personlige computer ) eller computer er bygget op af forskellige komponenter. Vi vil hermed gennemgå størstedelen af computerens

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

Installation af GPS med tilslutning til USB port

Installation af GPS med tilslutning til USB port Indholdsfortegnelse Opsætning af GPS-tilslutning... 1 1: Installation af driver... 2 2: Opsætning af COM-port... 2 3: Vælg COM-port i DLS NG... 3 4: Brug af GPSViewer testprogram... 5 5: Hvis COM-port

Læs mere

Motorline JAG (indbygget limit switch) Dansk brugermanual

Motorline JAG (indbygget limit switch) Dansk brugermanual Motorline JAG (indbygget limit switch) Dansk brugermanual Til brug for Motorline MC2 kontrolpanel i kombination med Motorline JAG eller Motorline LINCE 230Vac lågeautomatik. Motorline LINCE (kører på tid)

Læs mere

Digital dataopsamling hvordan og hvorledes?

Digital dataopsamling hvordan og hvorledes? 2019-02-25 / Ulrik Bing, Virum Skole Digital dataopsamling hvordan og hvorledes? Dataopsamling er at vi kan samle data fra forsøg, der enten skal køre længe, resultaterne kommer meget hurtigt eller bare

Læs mere

QUICK MANUAL - HUAWEI E3276

QUICK MANUAL - HUAWEI E3276 Indhold Forberedelse af mobile WiFi... 3 Fejlfinding... 5 Hvis installationen mislykkes... 5 Hvis du ikke kan oprette forbindelse til internettet via dit modem... 5 Hvis det tager lang tid, før modemmet

Læs mere

Projekt - RoboNet Del Journal.

Projekt - RoboNet Del Journal. Projekt - RoboNet Del Journal. Udarbejdet af: Klaus Jørgensen. Gruppe: Jacob Clausen, Klaus Jørgensen og Ole Rud It og Elektronikteknolog, 2a Erhvervsakademiet Fyn Udarbejdet i perioden: 20/01-03 03/02-03

Læs mere

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET Mandag den 14 januar 2013 I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET OZ1QK Knud Krogsgaard Jensen 1 ARDUINO I 2 C - BUSSEN ELLER?? Plan for I aften: Jeg siger noget i 10 minutter I fortæller lidt om

Læs mere

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

FireBUS PARKERINGSVENTILATION

FireBUS PARKERINGSVENTILATION FireBUS PARKERINGSVENTILATION QUICK GUIDE Quick guiden beskriver hvordan et mindre anlæg kan installeres og idriftsættes. Alle moduler tildeles en individuel adresse på DIP-switchen i modulet Modulerne

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

LISA 2 System til faringsovervågning

LISA 2 System til faringsovervågning Indledning Du har netop anskaffet dig et unikt stykke værktøj til brug ved faringsovervågning. LISA 2 systemet er et interaktivt værktøj, som sikrer at medarbejdere i farestalden holder fokus på faringer

Læs mere

1. Installere Logger Pro

1. Installere Logger Pro Programmet Logger Pro er et computerprogram, der kan bruges til at opsamle og behandle data i de naturvidenskabelige fag, herunder fysik. 1. Installere Logger Pro Første gang du installerer Logger Pro

Læs mere

TS1000 Quick Guide. Daglig brug

TS1000 Quick Guide. Daglig brug TS1000 Quick Guide Daglig brug Indholdsfortegnelse Opret brugere... 4 Brugerliste... 4 Fanen Data... 4 Fanen Tilvalg... 5 Fanen Specialområder... 6 Grupper... 6 Søg bruger... 7 Rapport vinduet (brugere)...

Læs mere

Daglig brug af JitBesked 2.0

Daglig brug af JitBesked 2.0 Daglig brug af JitBesked 2.0 Indholdsfortegnelse Oprettelse af personer (modtagere)...3 Afsendelse af besked...4 Valg af flere modtagere...5 Valg af flere personer der ligger i rækkefølge...5 Valg af flere

Læs mere

Dansk El-montage manual Portautomatik

Dansk El-montage manual Portautomatik Dansk El-montage manual Portautomatik (med fysiske ende stop) Terminaler: Power Portstyring 1 2 Power input 220/230Vac. Kabeldim. 3x1.5 PVIKJ eller lign. 3 4 Advarselslampe. Udgang 230Vac/20W. Signalet

Læs mere

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato: Side 1 af 13 Dato: 03-06-03 Til Sigurd Som aftalt får du nu tilbygningen til 80C535 kittet, keyboard og programmet med programopdatering. Den sidste opgave her, gik så ud på at tilslutte et tastatur, og

Læs mere