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.

    It-løsninger | Nordhavn

    SAP Excellence Day 2026

    Få konkrete erfaringer med S/4HANA, automatisering og AI i praksis. Hør hvordan danske virksomheder realiserer gevinster og etablerer effektive SAP-løsninger. Vælg fysisk deltagelse hos SAP eller deltag digitalt.

    Infrastruktur | København

    Datacenterstrategi 2026

    Denne konference bidrager med viden om, hvordan du balancerer cloud, on-premise og hybrid infrastruktur med fokus på kontrol, compliance og forretning.

    Sikkerhed | Aarhus C

    Identity Festival 2026 - Aarhus

    Er du klar til en dag, der udfordrer din forståelse af, hvad Identity & Access Management kan gøre for din organisation? En dag fyldt med indsigt, inspiration og løsninger, der sætter kursen for, hvordan vi arbejder med IAM i de kommende år.

    Se alle vores events inden for it

    Navnenyt fra it-Danmark

    Simple Agency Group A/S har pr. 1. januar 2026 ansat Allan Bo Christiansen, 38 år,  som CCO. Han skal især beskæftige sig med kommercielle partnerskaber og digitalisering af koncernens aktiviteter. Han kommer fra en stilling som Director for eCommerce & Customer Platforms hos Atea A/S. Han er uddannet MSc in economics and business administration, Strategy, Organisation and Leadership. Han har tidligere beskæftiget sig med drift og udvikling af større eCommece teams med fokus på kundeoplevelsen. Nyt job

    Allan Bo Christiansen

    Simple Agency Group A/S

    Christian Pedersen,  emagine Consulting A/S, er pr. 1. februar 2026 udnævnt som Chief AI Officer. Han beskæftiger sig med opkvalificere emagines ansatte, udvikle interne AI-værktøjer og levere AI-projekter for kunderne. Som leder af et nye AI-team skal han også udvikle og lancere AI-produkter til markedet. Udnævnelse

    Christian Pedersen

    emagine Consulting A/S

    Forte Advice har pr. 5. januar 2026 ansat Claes Frederiksen som Commercial Director. Claes skal især beskæftige sig med at løfte den kommercielle modenhed i teknologiprojekter og sikre, at teknologi bliver brugt som strategisk løftestang. Claes kommer fra en stilling som Senior Client Partnership Director, Nordics hos Valtech. Claes har tidligere beskæftiget sig med teknologivalg og platformstrategi til teknologidrevet forretningsudvikling og marketing initiativer. Nyt job

    Claes Frederiksen

    Forte Advice

    Alcadon ApS har pr. 1. januar 2026 ansat Thomas Møller Pedersen som Key Account Manager. Han skal især beskæftige sig med teknisk support og salg inden for FTTx/Telecom i Jylland og på Fyn. Nyt job