Jak mogę rozmawiać z czujnikami cyfrowymi przez interfejs I²C?
Sprzęt: Z
których pinów GPIO Raspberry Pi mogę korzystać?
Oprogramowanie:
jakie biblioteki I²C są dostępne?
Istnieje wiele informacji o GPIO RPi tutaj: http://elinux.org/Rpi_Low-level_peripherals
Zgodnie z nim możesz zaprogramować dowolne piny GPIO dla I²C, ale:
Styki 3 (SDA0) i styki 5 (SCL0) są wstępnie ustawione do użycia jako interfejs I²C. Tak więc na płytce znajduje się rezystor podciągający 1,8 kilooma.
Ta strona wiki zawiera również przykłady kodów niskiego poziomu GPIO dla różnych języków, które powinny zacząć. Jeśli potrzebujesz odświeżenia tego, czym właściwie jest I²C, oto taki, który bierze również pod uwagę RPi.
W przypadku konkretnego sterowania I²C ta biblioteka python może być pomocna, omówiono ją w tym poście na blogu , który zawiera przykładowy kod.
Wiele dyskusji na ten temat. Oto, co pokazuje moje czytanie i gadanie:
źródło
/etc/modprobe.d/raspi-blacklist.conf
i komentujesz wpis dlai2c-bcm2708
; następnie edytuj/etc/modules
i dołączi2c-dev
; następnie uruchom ponownie. Powinieneś teraz mieć/dev/i2c-0
specjalny plik, który jest bardzo łatwy w użyciu.Oto kilka przykładów, które zrobiłem
źródło
Sprzęt komputerowy:
Jak wspomniano w Tapio, sprzęt jest dobrze udokumentowany na stronie http://elinux.org/Rpi_Low-level_peripherals
Oprogramowanie:
W przestrzeni użytkownika Linuksa (
#include <linux/i2c-dev.h>
) znajduje się nagłówek i2c-dev . Ponadto potrzebujesz postaci decyzyjnej do czytania. Można to zrobić, ładując odpowiednie moduły.i2c_bcm2708
dla niskopoziomowego sterownika ii2c-dev
do generowania znaków dla autobusów. Zastosować ...do ładowania ich w locie. Zastosować ...
i odblokuj
i2c_bcm2708
na,/etc/modprobe.d/raspi-blacklist.conf
aby tworzyć/dev/i2c-0
i/dev/i2c-1
wyświetlać się na stałe.Od teraz możesz podążać za wskazówkami, jak sam korzystać z I²C del maestro.
Wolę tę metodę od innych, ponieważ jest ona platformaagnostyczna. Możesz używać go także
linux/i2c-dev.h
z innymi urządzeniami, o ile istnieje sterownik niskiego poziomu I²C.pozdrowienia
źródło