Vu les symptômes ça sent le câblage foireux et/ou le nRF24L01 cramé (ou pas super en forme).
B@tto:
Ah bin la ça expliquerai pourquoi ça plante sur le while( Mirf.isSending() );, si le module est mort il ne risque pas d’acquiescer l'envoi ... Comme je vois VCC sur les pins je suis méfiant, c'est du 3.3V de base les NRF. Certains sont dotés d'un régulateur, d'ailleurs les miens me donnent le choix : un pin 3.3V et un autre 5V
C'est pour cela que dans mon code du tutoriel je fait un timeout pour gérer ce cas d'erreur
arff oui. j'ai branché en 5v moi !! Bon premier grillage de composant depuis que j'ai commencé arduino. sur le tuto que j'ai suivi, il n'y avais pas marqué s'il fallait des résistances et s'il fallait brancher sur du 3 ou 5. Mais j'aurai du aller voir la doc technique du transceiver !
ou encore, en suivant le tuto de skywood, j'aurai du ajouter des résistances 10k entre l'arduino et le transceiver !
Du coup, pour les prochains modules que je vais recevoir, je ferai deux fois plus attention
zerr0s:
arff oui. j'ai branché en 5v moi !! Bon premier grillage de composant depuis que j'ai commencé arduino. sur le tuto que j'ai suivi, il n'y avais pas marqué s'il fallait des résistances et s'il fallait brancher sur du 3 ou 5. Mais j'aurai du aller voir la doc technique du transceiver !
En regarde l'image on voit que VCC est directement relié au nRF24L01.
Sur les modules un peu plus "pro" il y a un régulateur LDO 3v3, comme ça si on envoi du 5v pas de probléme.
Avec les modules en question: 5v = cramé
Une lecture rapide du datasheet suffit à lever tout les doutes
zerr0s:
ou encore, en suivant le tuto de skywood, j'aurai du ajouter des résistances 10k entre l'arduino et le transceiver !
Les résistances de 10K ne sont pas obligatoire, le nRF24L01 possède des entrées tolérantes au +5V mais c'est toujours bien de les mètres.
je me permets de déterrer ce post car je m'y suis remis après avoir reçu mes nouveaux transceivers NRF24L01+.
Je suis ce tuto car ils utilisent les mêmes modules que j'ai: Playing with Nrf24L01 modules - Bajdi electronics
Les modules sont neufs. Voilà mon câblage. J'ai un module sur une arduino mega 2560 ethernet, un autre sur une arduino uno.
Pour ce câblage j'ai mis:
CE sur 8
CSN sur 7
SCK 13
MISO sur 12
MOSI sur 11
Et cette fois ci j'ai vraiment fais gaffe et j'ai bien alimenté en 3.3V
J'ai refais le montage décrit dans le tuto (pot sur la mega et une led sur la uno). Et impossible de faire fonctionner le tout. Je ne pige pas le problème. J'ai essayé de mettre des valeurs statiques à envoyer pour la valeur du pot, mais rien n'y fait. je ne sais pas si c'est a mega qui n'envoi pas ou si c'est la uno qui ne reçois pas.
J'ai d'abord commencé par mettre des résistances 10K, puis n'arrivant pas à faire fonctionner, je les ai viré. Sur le tuto, ils n'en utilisent pas. Dans le doute d'un module défectueux, j'ai remplacé les modules par 2 autres tout neufs également (j'en avais commandé 4).
y a t il un test tout simple pour voir où se trouve le problème ?
j'ai essayé l'exemple ping sans succès. Malgré le fait qu'un des 2 me renvoi "Ping ..." suivi d'un temps de réponse, le second ne m'affiche jamais le "Pong".
Je ne sais absolument pas ce qui cloche !! A vouloir faire des économies en achetant le moins cher, je me galère à faire fonctionner ces modules .... zutttttttt
bon je reprendrai à 0 demain. Sinon, est-ce que l'ethernet ne peut pas influer sur le module rf ?
C'est une arduino mega 2560 ethernet de freetronics. J'avais lu quelque part que certains modules utilisés conjointement avec de l'ethernet pouvait ne pas fonctionner ...
Avec le bon câblage SPI, ça fonctionne maintenant. Il me reste à trouver comment augmenter la porté car
pour le moment, les modules ne communiquent pas au delà de 4/5m sans obstacle. Je vais essayer avec le Mirf.channel
pour voir ce que ça donne.
Si vous avez des astuces à me filer, je suis preneur.
Tu trouveras vers la fin de la datasheet la liste de tous les registres. La lib est bien faite et contient déjà les mnémoniques, et il te suffit d'utiliser la commande Mirf.configRegister(addresse registre,valeur).
Pour la CRC, soit tu modifies comme je viens de te l'expliquer le registre CONFIG, soit tu vas éditer le mirf.h. En haut il y a un #define avec des "<<", il suffit de modifier 1 ou 0 suivant ce que tu souhaites.
Merci pour l'explication. J'ai téléchargé la datasheet pour voir tous les codes. Mais comment es-tu arriver à la conclusion que le RF_SETUP doit être configuré sur 0b00100110 pour 0dbm / 250kbps ?
Je regarde le tableau de la datasheet à la page 58, et je ne trouve pas d'infos sur ce code ? Je te demande car je voudrai comprendre pour tester les différentes config possible, sans avoir à chercher des heures sur google. Si je comprends le fonctionnement, ça ira tout seul (enfin j'espère)
Bin si tu regardes le registre RF_SETUP tout est décrit. Les n° de bit sont dans cet ordre 76543210 (bit de poids fort à gauche quoi). Chaque bit veut dire quelque chose, il suffit de lire et de le configurer comme tu le souhaites