Activeer I2C-bus op de Raspberry Pi

I2C is een bus voor meerdere apparaten die wordt gebruikt om low-speed randapparatuur aan te sluiten op computers en embedded systemen. De Raspberry Pi ondersteunt deze interface op zijn GPIO-header en het is een geweldige manier om sensoren en apparaten aan te sluiten. Eenmaal geconfigureerd, kunt u meer dan één apparaat aansluiten zonder extra pinnen op de header te gebruiken.

Stap 1 – Schakel I2C-interface in

De standaard Raspbian-afbeelding schakelt I2C standaard uit, dus voordat u het kunt gebruiken, moet de interface zijn ingeschakeld. Dit kan op twee manieren worden gedaan. Ik zal alle methoden beschrijven, maar de eerste is waarschijnlijk gemakkelijker en sneller.

Methode 1 – Met behulp van “Raspi-config” op de opdrachtregel

Start vanaf de opdrachtregel of het terminalvenster door de volgende opdracht uit te voeren:

sudo raspi-config

Hiermee wordt het raspi-config-hulpprogramma gestart. Selecteer “Interfacing-opties”:

Markeer de optie “I2C” en activeer “<Select>”.

Selecteer en activeer “<Ja>”:

Markeer en activeer “<Ok>”:

Wanneer gevraagd wordt om opnieuw op te starten, markeer en activeer je “<Ja>”

De Raspberry Pi wordt opnieuw opgestart en de interface wordt ingeschakeld.

Methode 2 – ‘Raspberry Pi-configuratie’ gebruiken

Als je Pi opstart naar het bureaublad, kun je ofwel een Terminal-venster openen en Methode 1 gebruiken of de grafische tool “Raspberry Pi-configuratie” gebruiken. Dit is te vinden onder  Menu> Voorkeuren> Raspberry Pi-configuratie

Raspberry Pi Configuratie starten vanuit menu

Dan hoeft u alleen maar het tabblad “Interfaces” te selecteren en I2C in te stellen op “Ingeschakeld”:

Raspberry Pi-configuratie - tabblad Interfaces - I2C

Klik op de knop “OK”. Selecteer “Ja” als u wordt gevraagd om opnieuw op te starten, zodat de wijzigingen van kracht worden.

Raspberry Pi-configuratie - Herstartprompt

De Raspberry Pi wordt opnieuw opgestart en de I2C-interface wordt ingeschakeld.

Stap 2 – Installeer hulpprogramma’s

Om te helpen bij het debuggen en om de interface te gebruiken binnen Python, kunnen we “python-smbus” en “i2c-tools” installeren:

sudo apt-get update
sudo apt-get install -y python-smbus i2c-tools

Stap 3 – Afsluiten

Schakel uw Pi uit met:

sudo halt

Wacht tien seconden, koppel de stroom naar je Pi los en je bent nu klaar om je I2C-hardware aan te sluiten.

Controleren of I2C is ingeschakeld (optioneel)

Wanneer u uw Pi opstart of opnieuw opstart, kunt u controleren of de i2c-module actief is door de volgende opdracht te gebruiken:

lsmod | grep i2c_

Dat toont alle modules die beginnen met “i2c_”. Als het “i2c_bcm2708” vermeldt, dan werkt de module correct.

Hardware testen (optioneel)

Controleer de bedrading nadat u uw hardware hebt aangesloten. Zorg ervoor dat 3.3V naar de juiste pinnen gaat en dat je geen kortsluiting hebt. Schakel de Pi in en wacht tot deze is opgestart.

Als je een Model A, B Rev 2 of B + Pi hebt, typ dan de volgende opdracht:

i2cdetect -y 1

Als je een originele Model B Rev 1 Pi hebt, typ dan de volgende opdracht:

i2cdetect -y 0

Waarom het verschil? Tussen de Rev 1- en Rev 2-versies van de Pi veranderden ze de signalen die naar Pin 3 en Pin 5 op de GPIO-header gingen. Dit veranderde het apparaatnummer dat moet worden gebruikt met I2C van 0 in 1.

Ik gebruikte een Pi 2 Model B met een aangesloten sensor en mijn output zag er als volgt uit:

pi @ raspberrypi ~ $ i2cdetect -y 1

Dit toont aan dat ik één apparaat heb aangesloten en het (hex) adres is 0x27 (39 in decimaal).