Eu estou olhando através do código de exemplo encontrado aqui . Eu sei que existem 6 canais que o módulo nRF24L01 pode usar, mas eu tenho pesquisado na Internet as designações de endereço e não consegui encontrar nada. Mais especificamente na linha 37, existe uma referência para onde o autor está recebendo 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL?
Obrigado.
arduino-uno
nrf24l01+
Alex H
fonte
fonte
openReadingPipe()
aqui: maniacbug.github.io/RF24/…. Ele menciona que você pode usar qualquer valor para o último byte do endereço.0x...
prefixo é apenas para dizer que o valor está em hexadecimal. Isso ocorre porque 99 em decimal é diferente de 99 em hexadecimal, mesmo que pareçam iguais. Então, em vez disso, usamos 0x99.Respostas:
Como a maioria das pessoas postou, os valores para o canal são arbitrários, mas devem seguir as regras da API:
Antes de responder sua pergunta, acho que é necessária uma explicação sobre os valores Hex e Decimal.
O hexadecimal de 40 bits é uma representação numérica da base 16. Um decimal é da base 10. Portanto, você pode converter um valor hexadecimal em decimal. Como isso está fora do escopo da pergunta, você pode pesquisar no Google sobre como converter de um para outro. Existem alguns conversores online:
Conversor Hex para Decimal
Você verá quando converter o valor hexadecimal em decimal, que é apenas uma representação numérica. Quando você converte, você solta o
0x
eLL
. Conforme indicado,0x
indica que o valor é um valor hexadecimal eLL
significa o tipo Long Long .Então, para responder sua pergunta, use o conversor a para encontrar um número hexadecimal como:
Basta alterar os dois últimos dígitos (bit menos significativo):
Adicione o
0x
eLL
Tudo deve funcionar.
Não sou especialista em hexadecimal, como estou aprendendo; portanto, se estiver incorreto, alguém me corrija.
Finalmente, a folha de dados nRF24L01 destaca o seguinte ponto em que a escolha do endereço não é completamente arbitrária:
fonte
where the author is getting 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL?
, por exemplo , não como os tubos são usados.Os valores
0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL
são arbitrários e definem os endereços dos remetentes e destinatários com quem conversar.Se você usa a biblioteca Mirf
Eles também podem ser seqüências de caracteres
serv1
.RF24
usafonte
Há algo que todos esquecem de lhe dizer:
Os tubos no receptor devem ser encurtados após o primeiro
Tubos no transmissor devem ser
Se você quiser saber qual mensagem do canal chegou, use
Também o tubo número 6 é usado para receber mensagens de confirmação .
Além disso, o código de inicialização deve ter
radio.enableDynamicPayloads();
Este funciona bem para mim:Boa sorte...
fonte
pipe
definido como no seu exemplo?