Hva er BCM, og hvorfor brukes det i en Raspberry Pi

Hva er BCM, og hvorfor brukes det i en Raspberry Pi
Mens du skriver python -skript for Raspberry Pi -prosjekter, blir mange mennesker forvirret over BCM og BORDE PIN -nummerering. Folk har vanligvis en tendens til å forstå brettnummeret, da det er en enkel justering av pinner på et Raspberry Pi -brett, men de fleste forvirrer BCM -antallet Raspberry Pi.

Hvis du er den som står overfor det samme problemet, vil denne artikkelen hjelpe deg med å utvikle en fullstendig forståelse av BCM i Raspberry Pi.

Hva er BCM, og hvorfor brukes det i Raspberry Pi

BCM er en forkortelse for "Broadcom Soc Channel; I Raspberry Pi er det to måter å referere til Raspberry Pi -brettpinnene: en er den BCM Og den andre er BORDE. Pinnene på lavere nivå på brettet som er definert av Broadcom-brikken er BCM-pinnene, og BCM-nummeret er forskjellig fra tavlen/chip-pin-numrene fordi det i de første brettene til Raspberry Pi var et mindre antall pinner. Etter hvert som nye tavler har lansert, blir flere pinner lagt til, og BCM -nummeret forblir det samme som den totale innretting av pinnetall blir forstyrret.

Pins konfigurasjon av Raspberry Pi Board

Bildet nedenfor viser PIN -konfigurasjonen av de nyeste Raspberry Pi -tavlene som har 40 pinner. Pin -navnene som er nevnt i Fargede rektangler er BCM -nummer av pinner og tallene som er nevnt inne i sirkler Representere Styretall av pinner.

For brukervennligheten støtter Raspberry Pi både bruken av BCM og BORDE tall. Brukere må bare henvise til dem i koden før de koder pinnene.

For å referere til tallene som er til stede i sirkler (1,2,3,4, ...) GPIO.BORDE Konfigurasjon vil bli brukt inne i Python -skriptet:

GPIO.BORDE

Mens for å referere til pinnene inni Fargede rektangler (GPIO10, GPIO11, GPIO12, ...) The GPIO.BCM benyttes:

GPIO.BCM

Hvordan bruke BCM i Python -skript i Raspberry Pi?

La oss forstå dette med et eksempel, hvis jeg må bruke tappen 11 i styret (GPIO17, BCM), for å veksle en LED, så vil jeg bruke den i Python -koden som angitt nedenfor:

Importer RPI.GPIO som GPIO
Importer tid
GPIO.SetMode (GPIO.BCM)
GPIO.Oppsett (17, GPIO.UTE)
for jeg i rekkevidde (15):
GPIO.utgang (17, GPIO.HØY)
tid.søvn (2)
GPIO.utgang (17, GPIO.LAV)
tid.søvn (2)

I koden for å angi PIN -modus, har jeg definert BCM PIN -konfigurasjonen i starten, hvoretter jeg har brukt GPIO17 -pin i stedet for 11 (tavlnummer).

Krets for python -kode

Maskinvarekretsen for ovennevnte kode vises i bildet nedenfor, der jeg har fremhevet GPIO 17 PIN (BCM).

LED vil blinke 15 ganger med 2 sekunders forsinkelse mellom hver av og på tilstand.

Konklusjon

BCM er en Broadcom -kanal på Raspberry Pi, som brukes til å konfigurere Raspberry Pi -pinner ved å bruke Broadcom Channel Numbers. De BCM antall pinner er forskjellig fra brettnummeret. Disse tallene brukes mens du programmerer GPIO -pinnene, brukeren må definere GPIO.setMode i begynnelsen. Hvoretter pinnene kan brukes deretter i koden.