Estoy mirando el código de ejemplo que se encuentra aquí . Sé que hay 6 tubos que el módulo nRF24L01 puede usar, pero he estado buscando en Internet las designaciones de dirección y no he podido encontrar nada. Más específicamente en la línea 37, ¿hay alguna referencia de dónde obtiene el autor 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL?
Gracias.
arduino-uno
nrf24l01+
Alex H
fuente
fuente
openReadingPipe()
aquí: maniacbug.github.io/RF24/… menciona que puede usar cualquier valor para el último byte de dirección.0x...
prefijo es solo para decir que el valor está en hexadecimal. Esto se debe a que 99 en decimal es diferente de 99 en hexadecimal, aunque se vean iguales. Entonces, en su lugar, usamos 0x99.Respuestas:
Como la mayoría de la gente ha publicado, los valores para la tubería son arbitrarios, pero deben seguir las reglas según la API:
Antes de responder a su pregunta, creo que se necesita una explicación sobre los valores hexadecimales y decimales.
El hexadecimal de 40 bits es una representación numérica de la base 16. Un decimal es de la base 10. Por lo tanto, puede convertir un valor hexadecimal a decimal. Como esto está fuera del alcance de la pregunta, puede buscar en Google cómo convertir de uno a otro. Hay algunos convertidores en línea:
Conversor de hexadecimal a decimal
Cuando convierta el valor hexadecimal a decimal, verá que es solo una representación numérica. Cuando conviertes, sueltas el
0x
yLL
. Como se indicó,0x
indica que el valor es un valor hexadecimal yLL
significa tipo Long Long .Entonces, para responder a su pregunta, use el convertidor a para encontrar un número hexadecimal como:
Simplemente cambie los últimos 2 dígitos (bit menos significativo):
Agregue el
0x
yLL
Todo debería funcionar.
No soy un experto en hexadecimal, como estoy aprendiendo, así que si soy incorrecto, por favor, alguien me corrija.
Finalmente, la hoja de datos nRF24L01 señala que la elección de la dirección no es completamente arbitraria:
fuente
where the author is getting 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL?
, por ejemplo , no cómo se usan las tuberías.Los valores
0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL
son valores arbitrarios y definen las direcciones de los remitentes y receptores con quienes hablar.Si usas la biblioteca Mirf
también pueden ser cadenas como
serv1
.RF24
usosfuente
Hay algo que todos olvidan decirte:
Las tuberías en el receptor deben acortarse después de la primera.
Las tuberías en el transmisor deben estar
Si desea saber qué mensaje de la tubería ha llegado, use
También la tubería número 6 se usa para recibir mensajes de confirmación .
Además, el código de inicialización debe tener
radio.enableDynamicPayloads();
Este me funciona bien:Buena suerte...
fuente
pipe
Qué se define en tu ejemplo?