29/06/2025
- Introduktion til Raspberry Pi GPIO
- Hvad er GPIO Pins?
- Hvorfor bruge GPIO Pins?
- GPIO Pinout: Forstå dine pins
- Forberedelse af din Raspberry Pi
- Nødvendigt Hardware til Grundlæggende Projekter
- Breadboard Grundprincipper
- Dit Første Kredsløb: Blinkende LED
- Avancerede Pins: SPI, I2C, PWM
- Brug af Raspberry Pi Accessories: Sense HAT
- Vigtige Overvejelser og Fejlfinding
- Ofte Stillede Spørgsmål (FAQ)
- Konklusion
Introduktion til Raspberry Pi GPIO
Raspberry Pi er mere end blot en lille computer til at teste systemer og software. Dens sande potentiale ligger i dens evne til at interagere med den fysiske verden gennem dens General Purpose Input/Output (GPIO) pins. Disse 40 pins er din gateway til at bygge alt fra simple blinkende lys til komplekse robotter og IoT-enheder. Uanset om du er en erfaren Linux-administrator eller en komplet nybegynder inden for elektronik, vil denne guide hjælpe dig med at forstå og mestre Raspberry Pi's GPIO-pins.

Hvad er GPIO Pins?
GPIO står for General Purpose Input/Output. Som navnet antyder, er disse pins alsidige og kan konfigureres til enten at sende signaler ud (output) eller modtage signaler ind (input). De 40 pins, der sidder langs kanten af de fleste Raspberry Pi-modeller, fungerer som grænsefladen mellem din Pi og omverdenen. Du kan bruge dem til at tilslutte eksterne komponenter som LED'er, sensorer, knapper, motorer og endda andre enheder via HATs (Hardware Attached on Top).
Hvorfor bruge GPIO Pins?
GPIO-pins åbner op for en verden af muligheder for at udvide funktionaliteten af din Raspberry Pi. Du kan:
- Skabe interaktive projekter: Byg din egen vejrstation, en dørklokke med kamera, eller et system til at overvåge planter.
- Automatisere opgaver: Styr lys, motorer eller andre apparater baseret på tid, sensorinput eller netværkskommandoer.
- Lære om elektronik: Få praktisk erfaring med at arbejde med kredsløb, komponenter og programmering.
- Tilslutte specifik hardware: Brug pins til kommunikationsprotokoller som I2C og SPI til at forbinde med mere avancerede sensorer og skærme.
GPIO Pinout: Forstå dine pins
Det er afgørende at kende den specifikke funktion af hver GPIO-pin. Hver pin har en unik rolle, som kan være input/output, strømforsyning (3.3V eller 5V) eller jord (Ground). At forstå pinout-diagrammet er det første skridt til succesfuld GPIO-programmering.
Moderne Raspberry Pi (40 pins)
De fleste nyere Raspberry Pi-modeller (fra Raspberry Pi 1 Model B+ og frem, inklusive Pi 2, 3, 4, Zero og Zero W) har en 40-pin GPIO-header. Her er en generel oversigt:
| Pin Nummer (BOARD) | Pin Nummer (BCM) | Funktion |
|---|---|---|
| 1 (3.3V) | - | 3.3V Strøm |
| 2 (5V) | - | 5V Strøm |
| 3 | 2 | GPIO 2 (SCL for I2C) |
| 4 | - | Jord (Ground) |
| 5 | 3 | GPIO 3 (SDA for I2C) |
| 6 | - | Jord (Ground) |
| 7 | 4 | GPIO 4 |
| 8 | 14 | GPIO 14 (TXD for UART) |
| 9 | - | Jord (Ground) |
| 10 | 15 | GPIO 15 (RXD for UART) |
| 11 | 17 | GPIO 17 |
| 12 | 18 | GPIO 18 (PWM0) |
| 13 | 27 | GPIO 27 |
| 14 | - | Jord (Ground) |
| 15 | 22 | GPIO 22 |
| 16 | 23 | GPIO 23 |
| 17 | - | 3.3V Strøm |
| 18 | 24 | GPIO 24 |
| 19 | 25 | GPIO 25 |
| 20 | - | Jord (Ground) |
| 21 | 5 | GPIO 5 |
| 22 | 6 | GPIO 6 |
| 23 | 12 | GPIO 12 (PWM0) |
| 24 | 16 | GPIO 16 |
| 25 | 26 | GPIO 26 |
| 26 | - | Jord (Ground) |
| 27 | 17 | GPIO 17 |
| 28 | 13 | GPIO 13 (PWM1) |
| 29 | 19 | GPIO 19 (MISO for SPI) |
| 30 | - | Jord (Ground) |
| 31 | 26 | GPIO 26 |
| 32 | 20 | GPIO 20 (MOSI for SPI) |
| 33 | 12 | GPIO 12 (PWM0) |
| 34 | - | Jord (Ground) |
| 35 | 19 | GPIO 19 (MISO for SPI) |
| 36 | 16 | GPIO 16 |
| 37 | 26 | GPIO 26 |
| 38 | 21 | GPIO 21 (CE0 for SPI) |
| 39 | - | Jord (Ground) |
| 40 | 8 | GPIO 8 (CE1 for SPI) |
Det er vigtigt at bemærke, at der findes to primære nummereringssystemer: BOARD og BCM. BOARD refererer til den fysiske placering af pinnen på headeren, mens BCM (Broadcom) refererer til chipens interne kanalnummer. For programmering er det ofte mest praktisk at bruge BCM-nummereringen. Du kan bruge kommandoen pinout i terminalen på din Raspberry Pi for at se et interaktivt diagram.

Ældre Raspberry Pi-modeller (26 pins)
Tidligere modeller af Raspberry Pi havde en 26-pin GPIO-header. Selvom de er mindre almindelige i dag, er det godt at kende forskellen:
| Pin Nummer (BOARD) | Pin Nummer (BCM) | Funktion |
|---|---|---|
| 1 (3.3V) | - | 3.3V Strøm |
| 2 (5V) | - | 5V Strøm |
| 3 | 0 | GPIO 0 |
| 4 | - | Jord (Ground) |
| 5 | 17 | GPIO 17 |
| 6 | - | Jord (Ground) |
| 7 | 4 | GPIO 4 |
| 8 | 14 | GPIO 14 (TXD) |
| 9 | - | Jord (Ground) |
| 10 | 15 | GPIO 15 (RXD) |
| 11 | 18 | GPIO 18 |
| 12 | 12 | GPIO 12 |
| 13 | 27 | GPIO 27 |
| 14 | - | Jord (Ground) |
| 15 | 22 | GPIO 22 |
| 16 | 23 | GPIO 23 |
| 17 | - | 3.3V Strøm |
| 18 | 24 | GPIO 24 |
| 19 | 25 | GPIO 25 |
| 20 | - | Jord (Ground) |
| 21 | 5 | GPIO 5 |
| 22 | 6 | GPIO 6 |
| 23 | 13 | GPIO 13 |
| 24 | 19 | GPIO 19 (MOSI) |
| 25 | 26 | GPIO 26 |
| 26 | - | Jord (Ground) |
Forberedelse af din Raspberry Pi
Før du kan begynde at lege med GPIO-pins, er det en god idé at sikre, at dit system er opdateret og har de nødvendige biblioteker installeret. Åbn en terminal og kør følgende kommandoer:
sudo apt update sudo apt upgrade Selvom python3-gpiozero ofte er forudinstalleret, kan du sikre dig, at det er der med:
sudo apt install python3-gpiozero For mere avancerede projekter kan det være nyttigt at aktivere I2C og SPI-protokollerne via raspi-config. Dette gøres ved at køre:
sudo raspi-config Naviger derefter til "Interface Options" og aktivér I2C og SPI.
Nødvendigt Hardware til Grundlæggende Projekter
For at komme i gang med dit første GPIO-projekt, skal du bruge følgende:
- Raspberry Pi: Enhver model med GPIO-pins fungerer.
- Breadboard: Et breadboard er et "solderless" prototypebræt, der gør det nemt at oprette forbindelser.
- Jumper Wires: Male-til-female jumper wires til at forbinde Raspberry Pi'ens GPIO-pins til breadboardet, og male-til-male wires til forbindelser på selve breadboardet.
- LEDs: Lysdioder er perfekte til at visualisere output fra dine pins.
- Resistorer: Modstande er nødvendige for at beskytte LEDs mod for høj strøm. En typisk værdi for en standard LED med 3.3V output er omkring 220-330 Ohm.
Et godt start-kit, som f.eks. fra Sunfounder, kan indeholde alt dette og mere, hvilket kan spare dig for besværet med at finde individuelle komponenter.
Breadboard Grundprincipper
Et breadboard er designet til hurtig prototyping uden lodning. Forståelse af dets layout er essentiel:
- Strømrails: De lodrette linjer langs kanterne (ofte markeret med rød og blå) er forbundet lodret. Den røde linje bruges typisk til positiv strøm (f.eks. 3.3V eller 5V), og den blå bruges til jord (Ground). Vær opmærksom på, at nogle breadboards har en adskillelse i midten af disse rails.
- Kolonner: De vandrette rækker af huller i midten er forbundet i kolonner. Hver kolonne er uafhængig af de andre, medmindre du forbinder dem med en jumper wire eller en komponent. Der er typisk en adskillelse i midten af breadboardet (dalen), som betyder, at kolonnerne på den ene side af dalen ikke er forbundet med kolonnerne på den anden side.
Dit Første Kredsløb: Blinkende LED
Lad os nu lave vores første praktiske projekt: At få en LED til at blinke.

Opsætning af Kredsløbet
- Sluk for Raspberry Pi: Afbryd strømmen, før du arbejder med kredsløbet.
- Tilslut Jord: Brug en male-til-female jumper wire til at forbinde en jord-pin (f.eks. pin 6 eller 9) på din Raspberry Pi til en af strømrailsene på breadboardet (den blå linje).
- Tilslut GPIO-pin: Brug en anden jumper wire til at forbinde en GPIO-pin (lad os bruge GPIO 17, som er BOARD pin 11) til en tom kolonne på breadboardet.
- Tilslut Modstand: Sæt den ene ende af en 220-330 Ohm modstand i samme kolonne som den GPIO-forbundne jumper wire. Sæt den anden ende af modstanden i en ny, tom kolonne.
- Tilslut LED: LEDs har polaritet. Den længere ben (anoden, +) skal forbindes til den kolonne, hvor modstanden sidder. Det kortere ben (katoden, -) skal forbindes til den samme strømrail som jord-kablet (den blå linje). Hvis LED'en ikke virker, prøv at vende den om.
Python-kode til at styre LED'en
Opret en ny Python-fil, f.eks. blink_led.py, og indsæt følgende kode:
from gpiozero import LED from time import sleep # Brug BCM-nummerering for GPIO pins led = LED(17) # GPIO 17 print("Starter LED blink...") while True: led.on() # Tænd LED sleep(1) # Vent 1 sekund led.off() # Sluk LED sleep(1) # Vent 1 sekund Gem filen og kør den fra terminalen med:
python3 blink_led.py Din LED skulle nu blinke med et sekunds mellemrum. Tryk på CTRL+C for at stoppe scriptet.
Avancerede Pins: SPI, I2C, PWM
Udover standard input/output har visse GPIO-pins specielle funktioner:
- SPI (Serial Peripheral Interface): Bruges til hurtig kommunikation mellem flere enheder, ofte til skærme eller sensorer. Kræver flere pins samtidigt (MOSI, MISO, SCLK, CE).
- I2C (Inter-Integrated Circuit): En to-leder kommunikationsprotokol, der er ideel til at forbinde flere enheder (som sensorer) med færre pins (SDA, SCL).
- PWM (Pulse Width Modulation): Bruges til at styre hastigheden på motorer eller lysstyrken på LEDs ved at variere bredden af et digitalt signal.
- UART (Universal Asynchronous Receiver-Transmitter): Bruges til seriel kommunikation, ofte til at forbinde med andre mikrokontrollere eller GPS-moduler.
Brug af Raspberry Pi Accessories: Sense HAT
En populær måde at udnytte GPIO-pins på er ved at bruge specielle add-on boards kaldet HATs. Sense HAT er et fremragende eksempel, der indeholder en 8x8 LED-matrix, joystick og flere sensorer (temperatur, fugtighed, tryk, accelerometer, gyroskop). Den tilsluttes direkte til Raspberry Pi'ens 40-pin GPIO-header.
Eksempel: Temperaturmåling med Sense HAT
Først skal du installere Sense HAT-softwaren:
sudo apt update sudo apt install sense-hat Opret derefter en fil, f.eks. temp_sense.py, med følgende kode:
from sense_hat import SenseHat import time sense = SenseHat() sense.clear() try: while True: temp = sense.get_temperature() # Formater temperaturen til én decimal og erstat punktum med komma for dansk format temp_formatted = "{:.1f}".format(temp).replace('.', ',') # Vis temperaturen på LED-matrix (simpel visning) # Kan være begrænset for komplekse tal message = f"Temp: {temp_formatted} C" sense.show_message(message, scroll_speed=0.05, text_colour=[255, 255, 255], back_colour=[0, 0, 0]) # Alternativt kan temperaturen bare printes til konsollen # print(f"Temperaturen er: {temp:.2f} grader Celsius") time.sleep(1) except KeyboardInterrupt: sense.clear() print("Program stoppet.") Kør scriptet med:
python3 temp_sense.py Du vil nu se temperaturen rulle hen over Sense HAT'ens LED-matrix. Tryk CTRL+C for at stoppe.
Vigtige Overvejelser og Fejlfinding
- Strømstyrke: Vær opmærksom på, hvor meget strøm dine tilsluttede enheder trækker. Raspberry Pi'ens 5V og 3.3V pins har begrænsninger. For enheder, der kræver meget strøm (f.eks. motorer), brug en ekstern strømforsyning.
- Pin-nummerering: Vær konsekvent med enten BOARD eller BCM-nummerering. BCM bruges oftest i kode.
- Korrekt Tilslutning: Dobbelttjek altid dine ledningsføringer. En forkert forbindelse kan potentielt beskadige din Raspberry Pi.
- Beskyttelse: Brug altid passende modstande til LEDs for at forhindre, at de brænder af.
- Softwarebiblioteker: Sørg for, at de korrekte Python-biblioteker (som
gpiozeroeller specifikke biblioteker til HATs) er installeret.
Ofte Stillede Spørgsmål (FAQ)
- Hvor mange GPIO-pins har en Raspberry Pi? De fleste moderne Raspberry Pi-modeller har 40 GPIO-pins. Ældre modeller havde 26 pins.
- Hvilken programmeringssprog kan jeg bruge med GPIO? Python er det mest populære og bedst understøttede sprog, men du kan også bruge C/C++, Node.js og andre.
- Kan jeg beskadige min Raspberry Pi med GPIO? Ja, det er muligt, hvis du forbinder komponenter forkert, kortslutter pins, eller sender for høj spænding ind i en pin. Vær forsigtig og dobbelttjek altid dine forbindelser.
- Hvad er forskellen på BOARD og BCM pin-nummerering? BOARD refererer til den fysiske placering af pinnen på headeren, mens BCM refererer til den interne kanalnummerering fra Broadcom-chippen.
- Hvad er en HAT? En HAT (Hardware Attached on Top) er et add-on board, der monteres oven på Raspberry Pi'ens GPIO-header for at tilføje ekstra funktionalitet som sensorer, displays eller motorcontrollere.
Konklusion
Raspberry Pi'ens GPIO-pins er en utrolig kraftfuld ressource, der giver dig mulighed for at bygge alt fra simple elektronikprojekter til komplekse, interaktive systemer. Ved at forstå pinout, bruge et breadboard korrekt og mestre grundlæggende Python-programmering, er du godt på vej til at udforske den fascinerende verden af maker-kultur og embedded systems. Fortsæt med at eksperimentere og byg videre på din viden – mulighederne er næsten uendelige!
Hvis du vil læse andre artikler, der ligner Raspberry Pi GPIO: Din guide til at komme i gang, kan du besøge kategorien Tøj.
