Przeglądam przykładowy kod znaleziony tutaj . Wiem, że moduł nRF24L01 może używać 6 potoków, ale szukałem w Internecie oznaczeń adresów i nic nie znalazłem. A dokładniej w wierszu 37, czy istnieje odniesienie do tego, gdzie autor otrzymuje 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL?
Dzięki.
arduino-uno
nrf24l01+
Alex H.
źródło
źródło
openReadingPipe()
tutaj: maniacbug.github.io/RF24/… wspomina, że możesz użyć dowolnych wartości dla ostatniego bajtu adresu.0x...
Prefiks jest po prostu powiedzieć wartość jest w systemie szesnastkowym. Wynika to z faktu, że 99 w systemie dziesiętnym różni się od 99 w systemie szesnastkowym, nawet jeśli wyglądają tak samo. Zamiast tego używamy 0x99.Odpowiedzi:
Jak większość ludzi napisała, wartości potoku są dowolne, ale muszą być zgodne z regułami interfejsu API:
Zanim odpowiem na twoje pytanie, uważam, że potrzebne jest wyjaśnienie wartości szesnastkowej i dziesiętnej.
40-bitowy system szesnastkowy jest reprezentacją liczbową podstawy 16. Dziesiętny jest podstawą 10. Abyś mógł przekonwertować wartość szesnastkową na dziesiętną. Ponieważ jest to poza zakresem pytania, możesz google dowiedzieć się, jak konwertować z jednego na drugi. Istnieje kilka konwerterów online:
Konwerter szesnastkowy na dziesiętny
Zobaczysz, kiedy konwertujesz wartość szesnastkową na dziesiętną, że jest to tylko reprezentacja liczbowa. Podczas konwersji upuszczasz
0x
iLL
. Jak stwierdzono,0x
wskazuje, że wartość jest wartością szesnastkową iLL
oznacza typ Długi Długi .Aby odpowiedzieć na twoje pytanie, użyj konwertera, aby znaleźć liczbę szesnastkową, taką jak:
Wystarczy zmienić ostatnie 2 cyfry (najmniej znaczący bit):
Dodaj
0x
iLL
Wszystko powinno działać.
Nie jestem ekspertem od hexów, ponieważ się uczę, więc jeśli się mylę, proszę, popraw mnie.
Wreszcie arkusz danych nRF24L01 stwierdza, że wybór adresu nie jest całkowicie arbitralny:
źródło
where the author is getting 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL?
Nie w jaki sposób rury są używane.Wartości
0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL
są wartościami arbitralnymi i określają adresy nadawców i odbiorców, z którymi należy rozmawiać.Jeśli korzystasz z biblioteki Mirf
mogą być również ciągami jak
serv1
.RF24
wykorzystujeźródło
Jest coś, o czym wszyscy zapomną powiedzieć:
Rury w odbiorniku należy skrócić po pierwszym
Rury na nadajniku powinny być
Jeśli chcesz wiedzieć, która wiadomość potoku nadeszła, użyj
Również potok numer 6 jest używany do odbierania komunikatów potwierdzających .
Ponadto kod inicjujący musi mieć
radio.enableDynamicPayloads();
Ten działa dla mnie dobrze:Powodzenia...
źródło
pipe
zdefiniowano jak w twoim przykładzie?