Wat is BCM en waarom wordt het gebruikt in een Raspberry Pi

Wat Is Bcm En Waarom Wordt Het Gebruikt In Een Raspberry Pi



Tijdens het schrijven van Python-scripts voor Raspberry Pi-projecten raken veel mensen in de war over de BCM En BORD pin nummering. Mensen hebben meestal de neiging om het BOARD-nummer te begrijpen, omdat het een eenvoudige uitlijning van pinnen op een Raspberry Pi-bord is, maar de meeste mensen verwarren het BCM-nummer van Raspberry Pi.

Als jij degene bent die met hetzelfde probleem wordt geconfronteerd, dan zal dit artikel je helpen een volledig begrip van BCM in Raspberry Pi te ontwikkelen.

Wat is BCM en waarom wordt het gebruikt in Raspberry Pi

BCM is een afkorting voor de ' Broadcom SOC-kanaal ; In Raspberry Pi zijn er twee manieren om naar de Raspberry Pi-bordpinnen te verwijzen: de ene is de BCM en de andere is BORD . De pinnen op het lagere niveau op het bord die worden gedefinieerd door de Broadcom-chip zijn de BCM-pinnen, en het BCM-nummer verschilt van de pinnummers van het bord/chip omdat er in de eerste boards van Raspberry Pi een kleiner aantal pinnen was. Naarmate er nieuwe borden zijn gelanceerd, worden er meer pinnen toegevoegd en blijft het BCM-nummer hetzelfde, waardoor de algehele uitlijning van pinnummers wordt verstoord.







Pinnen Configuratie van Raspberry Pi Board

De onderstaande afbeelding toont de pinconfiguratie van de nieuwste Raspberry Pi-borden met 40 pinnen. De pinnamen vermeld in de gekleurde rechthoeken zijn de BCM-nummer van pinnen en de nummers vermeld in de cirkels vertegenwoordigen de BOARD nummer van spelden.





Voor het gemak van gebruikers ondersteunt Raspberry Pi zowel het gebruik van BCM En BORD nummers. Gebruikers hoeven er alleen maar naar te verwijzen in de code voordat ze de pinnen coderen.





Om te verwijzen naar de nummers die aanwezig zijn in de cirkels (1,2,3,4,...) de GPIO.BORD configuratie zal worden gebruikt in het Python-script:

GPIO.BORD

Terwijl, om naar de pinnen binnenin te verwijzen gekleurde rechthoeken (GPIO10, GPIO11, GPIO12,…) de GPIO.BCM is gebruikt:



GPIO.BCM

Hoe BCM te gebruiken in Python-scripts in Raspberry Pi?

Laten we dit met een voorbeeld begrijpen: als ik pin 11 van het bord (GPIO17, BCM) moet gebruiken om een ​​LED te schakelen, dan zal ik deze gebruiken in de Python-code zoals hieronder vermeld:

importeer RPi.GPIO als GPIO
importeren tijd

GPIO.setmode ( GPIO.BCM )

GPIO.setup ( 17 , GPIO.UIT )

voor i in bereik ( vijftien ) :
GPIO.uitgang ( 17 , GPIO.HOOG )
tijd.slaap ( 2 )
GPIO.uitgang ( 17 , GPIO.LOW )
tijd.slaap ( 2 )

In de code om de pinmode in te stellen heb ik aan het begin de BCM pinconfiguratie gedefinieerd, waarna ik GPIO17 pin heb gebruikt in plaats van 11 (BOARD nummer).

Circuit voor Python-code

Het hardwarecircuit voor de bovenstaande code wordt weergegeven in de onderstaande afbeelding, waar ik de GPIO 17-pins (BCM) heb gemarkeerd.

De LED knippert 15 keer met een vertraging van 2 seconden tussen elke aan- en uitstatus.

Conclusie

BCM is een Broadcom-kanaal op Raspberry Pi, dat wordt gebruikt om Raspberry Pi-pinnen te configureren met behulp van de Broadcom-kanaalnummers. De BCM aantal pinnen verschilt van het BOARD-nummer. Deze nummers worden gebruikt tijdens het programmeren van de GPIO-pinnen, de gebruiker moet de GPIO.setmode aan het begin. Waarna de pinnen dienovereenkomstig in de code kunnen worden gebruikt.