Bei jeder neuen Raspbian-Installation bin ich wieder am Überlegen, welche Einstellungen notwendig sind, damit man den I2C-Bus zum Laufen bekommt. Daher nun eine kurze Anleitung.
Disclaimer:
Trotz größter Sorgfalt kann für die 100 % tige Funktionalität der Bauanleitungen, Software und Schaltpläne nicht garantiert werden. Sie sollen nur eine Anregung zum Bau darstellen.Daher gilt:
- Jeder ist für den richtigen Aufbau, Programmierung etc. selbst verantwortlich.
- Ich übernehme keine Haftung für Schäden aller Art.
Installation:
1. Das I2C Modul von der „raspi-blacklist“ entfernen. Hierzu diese Datei im Texteditor öffnen.
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Hier den Eintrag „blacklist i2c-bmc2708“ mittels vorangestelltem # auskommentieren.
Das ganze mit „STRG-O“ speichern und dann den Editor mit „STRG-X“ schließen.
2. Hinzufügen von „i2c-dev“ in die etc/modules-Datei.
sudo nano /etc/modules
Nun im Editor das Modul „i2c-dev“ in einer neuen Zeile hinzufügen (z.B. unter dem Modul „snd-bcm2835“) und das ganze mit „STRG-O“ speichern und den Editor mit „STRG-X“ schließen.
3. Auf neue Updates mittels prüfen.
sudo apt-get update
Wenn man schon dabei ist, kann man diese auch gleich installieren.
sudo apt-get upgrade
4. Diverse Tools und die Python-Library installieren
sudo apt-get install i2c-tools python-smbus
Neustart und Test:
5. Reboot tut gut 🙂
sudo reboot
6. Erster Test mit nachfolgendem Kommando. Wenn man am Bus 1 etwas angeschlossen hat, sieht man es nun.
sudo i2cdetect -y 1
Ausgabe bei einem angeschlossenen MCP23017.
pi@raspberrypi ~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: — — — — — — — — — — — — — 10: — — — — — — — — — — — UU — — — — 20: — — — — — — — 27 — — — — — — — — 30: — — — — — — — — — — — UU — — — — 40: — — — — — — — — — — — — — — — — 50: — — — — — — — — — — — — — — — — 60: — — — — — — — — — — — — — — — — 70: — — — — — — — —
Hinweis:
Für das Programmieren in Python sollte der Benutzer „Pi“ auch auf den Bus zugreifen können. Dies erfolgt mittels der folgenden Kommandos.
sudo adduser $USER i2c sudo reboot
Nun kann man auch ohne „sudo“ auf den I2CBus zugreifen.