Skip to main content

Raspberry Pi GPIO

Raspberry Pi Composite Video Output? (April 2025)

Raspberry Pi Composite Video Output? (April 2025)
Anonim
01 av 09

En introduksjon til Raspberry Pi's Pins

Begrepet "GPIO" (General Purpose Input Output) er ikke eksklusivt for Raspberry Pi. Inngangs- og utgangsspinner finnes på de fleste mikrokontrollere som Arduino, Beaglebone og mer.

Når vi snakker om GPIO med Raspberry Pi, refererer vi til den lange tappeblokken i øverste venstre hjørne av brettet. Eldre modeller hadde 26 pins, men de fleste av oss skal bruke en nåværende modell med 40.

Du kan koble komponenter og andre maskinvareenheter til disse pinnene, og bruk kode for å kontrollere hva de gjør. Det er en viktig del av Raspberry Pi og en utmerket måte å lære om elektronikk.

Etter noen programvareprosjekter vil du sannsynligvis finne deg selv å eksperimentere med disse pinnene, ivrige etter å blande koden med maskinvare for å få ting til å skje i "virkeligheten".

Denne prosessen kan være skremmende hvis du er ny på scenen, og i betraktning at en falsk bevegelse kan skade din Raspberry Pi, er det forståelig at det er et nervøst område for nybegynnere å utforske.

Denne artikkelen vil forklare hva hver type GPIO-pin gjør og deres begrensninger.

02 av 09

GPIO

Først, la oss se på GPIO som helhet. Tappene ser kanskje ut, men de har alle forskjellige funksjoner. Bildet over viser disse funksjonene i forskjellige farger, som vi vil forklare i de følgende trinnene.

Hver pin er nummerert fra 1 til 40, og starter nederst til venstre. Dette er de fysiske pinnumrene, men det er også nummerering / merkingskonvensjoner som "BCM" som brukes når du skriver kode.

03 av 09

Power & Ground

Fremhevet rødt, er pinnene merket '3' eller '5' for 3.3V eller 5V.

Disse pinnene tillater deg å sende strøm direkte til en enhet uten behov for noen kode. Det er heller ikke mulig å slå disse av.

Det er 2 strømskinner - 3,3 volt og 5 volt. Ifølge denne artikkelen er 3.3V-skinnen begrenset til 50mA nåværende tegning, mens 5V-skinnen kan gi uansett strømkapasitet som er igjen fra strømforsyningen din etter at Pi har tatt det som trengs.

Fremhevet bruner bakken pins (GND). Disse pinnene er akkurat det de sier - bakkenpinner - som er en viktig del av ethvert elektronikkprosjekt.

(5V GPIO-pins er fysiske tall 2 og 4. 3.3V GPIO-pins er fysiske tall 1 og 17. Ground GPIO-pins er fysiske tall 6, 9, 14, 20, 25, 30, 34 og 39)

04 av 09

Input / Output Pins

De grønne pinnene er det jeg kaller "generiske" inngangs- / utgangsspinner. Disse kan enkelt brukes som innganger eller utganger uten bekymringer for sammenstøt med andre funksjoner som I2C, SPI eller UART.

Dette er tappene som kan sende strøm til en LED, summer eller andre komponenter, eller brukes som en inngang for å lese sensorer, brytere eller annen inngangsenhet.

Utgangseffekten til disse pinnene er 3,3 V. Hver pin skal ikke overstige 16mA av strøm, enten synker eller sourcing, og hele settet av GPIO-pinner bør ikke overstige mer enn 50mA til enhver tid. Dette kan være begrensende, så du må kanskje bli kreativ i enkelte prosjekter.

(Generiske GPIO-pinner er fysiske tallene 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 og 40)

05 av 09

I2C Pins

I gul har vi I2C-pinnene. I2C er en kommunikasjonsprotokoll som enkelt betyr at enheter kommuniserer med Raspberry Pi. Disse pinnene kan også brukes som "generiske" GPIO-pinner.

Et godt eksempel på å bruke I2C er den svært populære MCP23017 port expander-brikken, som kan gi deg flere inngangs- / utgangspinner gjennom denne I2C-protokollen.

(I2C GPIO-pinner er fysiske pinnumre 3 og 5)

06 av 09

UART (Serial) Pins

I grå er UART-pinnene. Disse pinnene er en annen kommunikasjonsprotokoll som tilbyr serielle tilkoblinger, og kan også brukes som "generiske" GPIO-innganger / -utganger også.

Min favorittbruk for UART er å aktivere en seriell tilkobling fra min Pi til min bærbare datamaskin via USB. Dette kan oppnås ved hjelp av tilleggsplater eller enkle kabler og fjerner behovet for en skjerm eller internettforbindelse for å få tilgang til Pi.

(UART GPIO pins er fysiske pin nummer 8 og 10)

07 av 09

SPI Pins

I rosa, vi har SPI-pinnene. SPI er en grensesnittbuss som sender data mellom Pi og andre maskinvare / eksterne enheter. Den brukes ofte til kjetting av enheter som en LED-matrise eller skjerm.

Som andre kan disse pinnene også brukes som "generiske" GPIO-innganger / -utganger også.

(SPI GPIO-pinner er fysiske pinnumre 19, 21, 23, 24 og 26)

08 av 09

DNC Pins

Til slutt er to pins i blått som for øyeblikket er merket som DNC som står for "Ikke koble til". Dette kan endres i fremtiden hvis Raspberry Pi Foundation endrer brettene / programvaren.

(DNC GPIO-pins er fysiske pinnumre 27 og 28)

09 av 09

GPIO nummereringskonvensjoner

Når du kodes med GPIO, har du muligheten til å importere GPIO-biblioteket på en av to måter - BCM eller BOARD.

Alternativet jeg foretrekker er GPIO BCM. Dette er Broadcom nummereringskonvensjonen, og jeg finner at den brukes mer generelt på tvers av prosjekter og maskinvare tillegg.

Det andre alternativet er GPIO BOARD. Denne metoden bruker de fysiske pinnumrene i stedet, noe som er nyttig når man teller pins, men du finner det brukt mindre i prosjekteksempler.

GPIO-modusen er angitt når du importerer GPIO-biblioteket:

For å importere som BCM:

importer RPi.GPIO som GPIO GPIO.setmode (GPIO.BCM)

For å importere som BOARD:

importer RPi.GPIO som GPIO GPIO.setmode (GPIO.BOARD)

Begge disse metodene gjør akkurat den samme jobben, det handler bare om nummerering.

Jeg bruker jevnlig bruk av praktiske GPIO etikettbrett som RasPiO Portsplus (bildet) for å sjekke hvilke pinner jeg forbinder ledninger med. Én side viser BCM nummereringskonvensjonen, den andre viser BOARD - så du er dekket for et prosjekt du finner.