Kom i gang med sjov elektronik på Arduino

Med Arduinos open source-platform kan du lave en masse sjove elektronik-ting. Her er to projekter: et simpelt kredsløb og en emulering af et USB-tastatur, så du hurtigt kan ændre skærmbilledet, når chefen kommer ind. Kod via enten en online-editor eller det traditionelle Arduino-IDE. Tilslut dit Arduino Nano 33 IoT. Gå ind på <a href="https://create.arduino.cc">https://create.arduino.cc</a>. Opret en konto, så du kan hente appen Arduino Create. Følg anvisningerne.

Artikel top billede

(Foto: Computerworld)

Af Torben Okholm, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

 
Det skal du bruge

• Et Arduino Nano 33 IoT eller Leonardo A-breadboard – pris 200-300 kr.
2 x  M2M-jumperkabler.


• Projekt 1: en LED 330 Ohm-resistor
(orange-orange-brun-guld)


• Projekt 2: trykknapkontakt
(enhver type burde fungere her)


 
1 Projekt 1: Hello World

Det mest elementære projekt, vi kan oprette, er at flashe et LED-lys. Men hvorfor skulle vi gøre det? Fordi det bekræfter, at vi kan sende data til kortet, og det bekræfter også, at vores elektroniske komponenter virker [Billede]. Projektets kredsløb omfatter et LED-lys, et breadboard, en 330 ohm-resistor og to jumperkabler (han-til-han). LED-lyset bliver placeret på et breadboard, og resistorer bliver forbundet til det korte ben (katoden, –, GND-ben) og til Arduinos GND-pin via et jumperkabel. LED’ets lange ben (anode, +) bliver forbundet til Arduinos pin 2 via et andet jumperkabel.


2 Projektets kodning

I Arduino IoT Cloud klikker du
“Arduino Web Editor”, hvorefter du forbinder Arduino til din computer. Opret en ny sketch i “Sketchbook”. Det første skridt er at oprette en funktion, der kan fortælle
Arduino, at vi ønsker at bruge pin 2 som et output til at sende strøm til det forbundne LED.


 

void setup() {


 pinMode(2, OUTPUT);


}


>> Vores løkke vil køre koden for evigt, og inden i hovedløkken er der en for
-løkke, som vil gentage (gå rundt) tre gange og hurtigt flashe vores LED-lys, før den holder pause.


 

void loop() {


  for (int i = 0; i <= 3; i++) {


 

>> For at tænde LED’et skal vi bruge
“digitalWrite” og derefter angive pin-tallet og pin’ens tilstand. I dette tilfælde sætter vi pin 2 til “HIGH”, hvilket forårsager, at LED’et lyser op. Efter en kort pause på 100 ms tænder vi LED’et ved hjælp af “LOW”. Endnu en pause opstår, før  for  -løkken går tilbage til start igen. Når for -løkken har kørt tre gange, slutter den og afbryder. En sidste pause på et sekund (1000 ms) får LED’et til at slukke, og den opretter en lang pause i flashsekvensen.


 

   digitalWrite(2, HIGH); 


   delay(100); 


   digitalWrite(2, LOW);


   delay(100);


  } 


  delay(1000);


 }


>> Klik på fluebenet for at tjekke din kode [Billede], og klik dernæst på pilen for at flashe koden til Arduino. Efter få sekunder genstarter kortet, og LED’et flasher hurtigt tre gange, holder pause, og gentager processen. Til lykke! Du har med held afprøvet dit Arduino. 


3 Projekt 2: behold jobbet

Her vil vi lave en simpel kontakt – når man trykker på den, udløser den en ny fane i Firefox eller Chrome, og der bliver åbnet en side, som ligner MS Outlook, men som faktisk er Reddit i forklædning. Den er praktisk på arbejde, i skolen eller hjemme, men du må bruge den på egen risiko!

>> Ved hjælp af et breadboard skal vi forbinde en trykknapkontakt over den centrale kanal, således at benene bliver spredt over mellemrummet. Brug nu to jumperkabler (han-til-han), forbind kontaktens øverste venstre ben til GND på Arduino, og forbind så det øverste højre ben til pin 2 på Arduino.

4 Projektets kodning

I Arduino IoT Cloud klikker du “Arduino Web Editor” og slutter Arduino til din computer. Opret en ny sketch i “Sketchbook”. Importer nu biblioteket “Keyboard”, som sætter Arduino i stand til at emulere et USB-tastatur [Billede].

 

 #include <Keyboard.h>


 
Vi kan skrive dette i kode, eller vi kan gå til “Libraries”, søger efter “Keyboard” og klikke “Include”.


>> Det næste skridt er at konfigurere den pin, vi bruger til kontakten, og til at starte tastaturets interface. Vi bruger en funktion ved navn “setup”, som kører én gang, når der bliver tændt for kortet. Ved hjælp af “pinMode” kan vi fortælle Arduino, at vi ønsker at bruge pin 2 som input, og at den interne pull-up-resistor skal trække pin’en højt, således at når der bliver trykket på kontakten, forbinder den pin 2 (high) til GND. Dette trækker pin 2 lavt og udløser handlingen. 

 void setup() {


  pinMode(2, INPUT_PULLUP);  


  Keyboard.begin();


 }


>> For at få koden til at køre konstant skal vi oprette en løkke, der rummer koden. Den første kodesektion i løkken er en test af, om der er blevet trykket på knappen. Med “digitalRead” kan vi tjekken pin 2, og hvis den er “HIGH”, er der ikke blevet trykket på knappen. Det betyder, at koden ikke skal gøre noget og stadig skal vente på input. Vi bør bruge en pause på 50 ms for at forhindre uønsket aktivering.

 

 void loop() {  


  while (digitalRead(2) == HIGH) {


    delay(50); 


 }


 
>> Hvad sker der, hvis der bliver trykket på knappen? I dette tilfælde bliver der tilføjet en pause på 100 ms, før der bliver trykket på en række taster for at åbne en fane. Til at trykke på en tast bruger vi “Keyboard.press” og angiver tastens detaljer. For taster som Ctrl, Alt og Shift angiver vi detaljerne i en fast rækkefølge og angiver, om det er venstre eller højre udgave af hver tast. For almindelige tegn (bogstaver, tal, tegnsætning) angiver vi tasten som en streng. Dernæst angiver vi en pause på 100 ms for at sikre os, at tastaturtrykkene bliver registreret. 

 delay(100); 


   Keyboard.press(KEY_LEFT_CTRL); 


   Keyboard.press(‘t’); 


   delay(100);


 
>> Lige nu bliver tasterne trykket ned. Hvis det sker for længe, kan det give problemer. For at slippe tasterne bruger vi “Keyboard.releaseAll”, før vi fortsætter. Når en ny fane åbnes i Firefox/Chrome, fokuserer markøren på adressebjælken, og i den næste kodelinje sætter vi en URL til Reddit/Outlook-websitet. Så slipper vi tasterne endnu en gang, før en endelig pause på 100 ms afslutter løkken.

 

   Keyboard.releaseAll(); 


   Keyboard.println(“http://pcottle.github.io/ MSOutlookit/”); 


   Keyboard.releaseAll(); 


   delay(100);


 }


>> Klik på fluebenet for at tjekke din kode, og klik så på pilen for at flashe koden til Arduino. Efter få sekunder genstarter kortet og er klart til brug. Fortsæt, tryk på knappen [Billede], og sørg for, at det virker, før chefen kommer marcherende ind! 

Læses lige nu
    Computerworld Events

    Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

    Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
    Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
    Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
    Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

    Sikkerhed | København

    Strategisk It-sikkerhedsdag 2026 - København

    Få overblik over cybersikkerhedens vigtigste teknologier, trusler og strategiske valg. Hør skarpe oplæg om AI-risici, forsvar, compliance og governance. Vælg mellem to spor og styrk både indsigt og netværk. Deltag i København 20. januar.

    Andre events | København

    Executive Conversations: Fra hype til afkast – her er vinderne af AI-ræset

    Få et klart overblik over AI’s reelle effekt i danske virksomheder. Arrangementet giver unge talenter og ambitiøse medarbejdere viden, der løfter karrieren, skærper beslutninger og gør dig klar til at præge den digitale udvikling. Læs mere og...

    Sikkerhed | Aarhus C

    Strategisk It-sikkerhedsdag 2026 - Aarhus

    Få overblik over cybersikkerhedens vigtigste teknologier, trusler og strategiske valg. Hør skarpe oplæg om AI-risici, forsvar, compliance og governance. Vælg mellem tre spor og styrk både indsigt og netværk. Deltag i Aarhus 22. januar.

    Se alle vores events inden for it

    Navnenyt fra it-Danmark

    Danske Spil har pr. 1. oktober 2025 ansat Jesper Krogh Heitmann som Brand Manager for Oddset. Han skal især beskæftige sig med at udvikle og drive brandets strategi og sikre en rød tråd på tværs af alle platforme og aktiviteter. Han kommer fra en stilling som Marketing & Communications Manager hos Intellishore. Nyt job

    Jesper Krogh Heitmann

    Danske Spil

    Norriq Danmark A/S har pr. 1. september 2025 ansat Thea Scheuer Gregersen som Finace accountant. Hun skal især beskæftige sig med håndteringer af bl.a. bogføring og finansiel rapportering på tværs af selskaberne. Hun er uddannet Bachelor´s degree i Business Administration & Economics og en Master of Sustainable Business degree. Nyt job

    Thea Scheuer Gregersen

    Norriq Danmark A/S

    Norriq Danmark A/S har pr. 1. september 2025 ansat Alexander Bendix som Consultant. Han skal især beskæftige sig med tilføre nye, friske perspektiver og værdifuld viden til NORRIQS Data & AI-afdeling. Nyt job

    Alexander Bendix

    Norriq Danmark A/S

    Enterprise Rent-A-Car har pr. 1. september 2025 ansat Christian Kamper Garst som Senior Key Account Manager. Han skal især beskæftige sig med at vinde markedsandele i hele Norden som led i en storstilet turnaround-strategi. Han kommer fra en stilling som Salgsdirektør hos Brøchner Hotels. Nyt job

    Christian Kamper Garst

    Enterprise Rent-A-Car