Saya mencari-cari contoh kode yang ditemukan di sini . Saya tahu ada 6 pipa yang dapat digunakan modul nRF24L01 tapi saya sudah mencari di internet untuk penunjukan alamat dan tidak dapat menemukan apa pun. Lebih khusus pada baris 37, apakah ada referensi untuk tempat penulis mendapatkan 0xF0F0F0F0F0E1LL, 0xF0F0F0F0F0D2LL?
Terima kasih.
arduino-uno
nrf24l01+
Alex H
sumber
sumber
openReadingPipe()
sini: maniacbug.github.io/RF24/… itu menyebutkan Anda dapat menggunakan nilai apa pun untuk byte alamat terakhir.0x...
prefix adalah hanya untuk memberitahu nilai dalam heksadesimal. Ini karena 99 dalam desimal berbeda dari 99 dalam heksadesimal, walaupun mereka terlihat sama. Jadi alih-alih kami menggunakan 0x99.Jawaban:
Karena sebagian besar orang telah memposting, nilai untuk pipa tersebut sewenang-wenang, tetapi harus mengikuti aturan per API:
Sebelum saya menjawab pertanyaan Anda, saya pikir diperlukan penjelasan tentang nilai Hex dan Desimal.
Heksadesimal 40 bit adalah representasi angka dari basis 16. Sebuah desimal adalah dari basis 10. Jadi Anda dapat mengonversi Nilai Hex menjadi Desimal. Karena ini di luar ruang lingkup untuk pertanyaan, Anda dapat google tentang cara mengkonversi dari satu ke yang lain. Ada beberapa konverter online:
Konverter Hex ke Desimal
Anda akan melihat ketika Anda mengonversi nilai Hex menjadi desimal, yang hanya berupa representasi angka. Saat Anda mengonversi, Anda menjatuhkan tanda
0x
danLL
. Seperti yang dinyatakan0x
menunjukkan nilai adalah nilai hex danLL
berarti tipe Long Long .Jadi untuk menjawab pertanyaan Anda, gunakan konverter untuk menemukan nomor hex seperti:
Cukup ganti 2 digit terakhir (paling tidak sedikit):
Tambahkan
0x
danLL
Semua harus bekerja.
Saya bukan ahli hex, seperti yang saya pelajari, jadi jika saya salah, maka tolong seseorang memperbaikinya.
Akhirnya, lembar data nRF24L01 membuat poin berikut bahwa pilihan alamat tidak sepenuhnya arbitrer:
sumber
where the author is getting 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL?
, bukan bagaimana pipa digunakan.Nilai
0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL
- nilai ini adalah nilai yang berubah-ubah dan menentukan alamat pengirim dan penerima untuk diajak bicara.Jika Anda menggunakan perpustakaan Mirf
mereka juga bisa seperti string
serv1
.RF24
menggunakansumber
Ada sesuatu yang semua orang lupa untuk memberi tahu Anda:
Pipa pada penerima harus dipersingkat setelah yang pertama
Pipa pada pemancar seharusnya
Jika Anda ingin tahu pesan pipa mana yang telah datang, gunakan
Juga pipa nomor 6 digunakan untuk menerima pesan yang diakui .
Selain itu, kode inisialisasi harus memiliki Yang
radio.enableDynamicPayloads();
ini berfungsi dengan baik untuk saya:Semoga berhasil...
sumber
pipe
didefinisikan seperti dalam contoh Anda?