Comment parler aux capteurs numériques via l'interface I²C?
Matériel:
quelles broches du GPIO du Raspberry Pi puis-je utiliser?
Logiciel:
Quelles bibliothèques I²C sont disponibles?
Il y a beaucoup d'informations sur le GPIO de RPi ici: http://elinux.org/Rpi_Low-level_peripherals
Selon lui, vous pouvez programmer toutes les broches GPIO pour I²C, mais:
La broche 3 (SDA0) et la broche 5 (SCL0) sont préréglées pour être utilisées comme interface I²C. Il y a donc 1,8 kilohm tire des résistances sur la carte pour ces broches.
Cette page wiki contient également des exemples de code GPIO de bas niveau pour différentes langues qui devraient vous aider à démarrer. Si vous avez besoin d'un rappel sur ce qu'est réellement I²C, en voici un qui prend également en compte le RPi.
Pour un contrôle I²C spécifique, cette bibliothèque python peut être utile, elle est discutée dans cet article de blog , qui comprend un exemple de code.
Beaucoup de discussions en cours à ce sujet. Voici ce que ma lecture et mes plaisanteries me montrent:
la source
/etc/modprobe.d/raspi-blacklist.conf
et commentez l'entrée pouri2c-bcm2708
; puis éditez/etc/modules
et ajoutezi2c-dev
; puis redémarrez. Vous devriez maintenant avoir un/dev/i2c-0
fichier spécial, très facile à utiliser.Voici quelques exemples que j'ai faits
la source
Matériel:
Comme mentionné par Tapio, le matériel est bien documenté sur http://elinux.org/Rpi_Low-level_peripherals
Logiciel:
Il y a un en-tête i2c-dev dans l'espace utilisateur Linux (
#include <linux/i2c-dev.h>
). De plus, vous avez besoin d'un caractère pour lire. Cela peut être fait en chargeant les modules appropriés.i2c_bcm2708
pour le pilote de bas niveau eti2c-dev
pour générer les décives de caractères pour les bus. Appliquer ...pour les charger à la volée. Appliquer ...
et retirer de la liste
i2c_bcm2708
en/etc/modprobe.d/raspi-blacklist.conf
pour faire/dev/i2c-0
et/dev/i2c-1
montrer en permanence.Vous pouvez désormais suivre les conseils d'utilisation de I²C del maestro lui-même.
Je préfère cette méthode aux autres, car elle est plateformeagnostique. Vous pouvez également l'utiliser
linux/i2c-dev.h
avec d'autres appareils, tant qu'il existe un pilote I²C de bas niveau.Cordialement
la source