[Résolu] besoin d'aide avec des transceiver NRF24L01

J'ai refais 50000 fois les branchements. Mais de toute façon, même sans le module de connecté, le code fait planté la board !
Le module que j'ai acheté est plutôt celui ci : http://img3.buyincoins.com/show/nrf24l01-wireless-transceiver-module.jpg

Sinon, j'ai commandé il y a une semaine 4 de ceux là:
http://hackspark.fr/media/catalog/product/r/f/rf24013.jpg

Cette fois-ci ce sera la version nrf24l01+

J'essaierai ce soir avec le unsigned long, mais je pense comme toi, ça n'y changera pas grand chose.
Comment puis-je vérifier si le module n'a pas grillé ?

Alors une info, vendredi dernier, lors de mes premiers tests, j'avais réussi à les faire fonctionner ces petits modules. le potentiomètre arrivait bien à piloter la led sur la seconde arduino. Et j'ai un témoin: ma femme qui est venu voir et tester le potentiomètre !!

Et j'ai tout éteint pour la soirée, je reviens le lendemain, et depuis plus rien ne fonctionne.

J'attends les nrf24l01+ et je teste avec ceux là ...

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

Bonjour,

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 :wink:

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 :astonished:

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 :stuck_out_tongue:

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.

Bonjour,

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 :slight_smile:

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 ?

Essaye l'exemple "ping" de la librairie arduino Mirf :wink:

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

Erreur de branchement quelque part forcement ...

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 ...

Allez à demain.

zerr0s:
bon je reprendrai à 0 demain. Sinon, est-ce que l'ethernet ne peut pas influer sur le module rf ?

L'ethernet est sur la carte qui envoi ping ou pong ?

Le chipset ethernet utilise le port SPI de même que le module nRF.
Il faut que tu mettes la broche CS du chipset ethernet à HIGH pour le désactiver.

bon, alors j'ai refait mes cânles hier, et j'ai testé avec 2 arduino uno et l'exemple ping_server et ping_client. Et ça a l'air de fonctionner.

Pour la carte mega 2560 ethernet (le chip est intégré sur la mega: http://cdn.shopify.com/s/files/1/0045/8932/products/EtherMega-production-sample-2_large.png?321).
Il n' y a pas de jumper hormis celui pour l'alim et le POE.*

Je referai un test ce soir avec la mega pour voir ce que ça donne.

C'est un schéma de la carte qu'il faut si tu veut savoir où est le CS du chipset ethernet, pas une image :wink:

Ok, j'ai trouvé un super tuto sur ce lien: http://dukextrem.blogspot.fr/2012/11/test-emetteur-recepteur-24g-nrf24l01.html

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.

Pour avoir la portée maximale il faut le passer en 250 kbps et 0db d’atténuation.

Après tu peux gérer les retransmissions et la CRC (si tu la vires tu passeras plus de paquets mais leur intégrité est discutable)

euh ... ok. mais comment ça se configure tout ça ? y a t il un utilitaire pour configurer ces options ?

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).

Par exemple :

Mirf.configRegister(RF_SETUP,0b00100110); // 0 dBm + 250 kbps (sur Nrf24l01+)

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.

Hello,

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) :slight_smile:

Tu as bien pris la doc pour NRF24l01+ ? (a supposer que tu aies bien cette version la)

Oui j'ai bien des nrf24l01+ , mais version japonnaise lol

Sinon, il ne m'est plus possible d''accé der au forum depuis mon pc.
J'ai systématiquement un "disallow key characters"

Je suis sur mon mobile . Zaarrbbb