Liczba postów: 28
Liczba wątków: 11
Dołączył: Jun 2018
Reputacja:
0
Witam. Buduję samolot sterowany przez moduł NRF24l01 i arduino pro mini. chcę jednocześnie, aby arduino używało czujników ciśnienia BMP280 i położenia MPU6050. Jednak arduino ma tylko po jednej magistrali SPI i I2c, a wifi używa SPI, MPU6050 I2c, a BMP280 SPI lub Ic2. Czy da się w jakoś sposób komunikować jednocześnie ze wszystkimi czujnikami? Można w jakoś sposób używać multipleksera, aby wybierał czujnik z którego mają być odczytane pomiary, lub użyć innych pinów i programowo napisać emulator jednej z magistrali?
Liczba postów: 28
Liczba wątków: 11
Dołączył: Jun 2018
Reputacja:
0
Czyli jeżeli autorzy bibliotek czujników przewidzieli kilka urządzeń jednocześnie, można bez zmian w programie połączyć czujniki razem?
Liczba postów: 356
Liczba wątków: 5
Dołączył: Aug 2019
Reputacja:
28
24-11-2019, 17:17
(Ten post był ostatnio modyfikowany: 24-11-2019, 17:19 przez Agregacik.)
W zasadzie tak, można podłączyć czujniki równolegle. Adresy czujnikom nadają producenci. Niektóre czujniki posiadają możliwość zmiany tego adresu przez zwarcie do masy odpowiednich wyprowadzeń. Biblioteki mają zwykle możliwość zmiany tego adresu, jak producent pozwala na to. Jak nie ma, to trzeba pogrzebać w bibliotece, ale trzeba znać adres urządzenia. Do "wykrywania" adresu I2C służą programiki, skanery I2C.
Liczba postów: 210
Liczba wątków: 2
Dołączył: Sep 2019
Reputacja:
13
Informacja o adresach jest w dokumentacji czujników - dla BMP280 to 0x50, natomiast MPU6050 może mieć adres 0x68 lub 0x69. Nie powinno być więc problemów z komunikacją przy użyciu jednego interfejsu i2c. Oczywiście nie będzie to "jednoczesne" odczytywanie wszystkich wyników, ale spokojnie można je odczytać "jeden-po-drugim".