Bonjour,
J'ai acheté 2 modules NRF24L01 pour faire de la transmission radio. Pour le moment, je suis un tuto dont le fonctionnement est pltôt simple:
- Une arduino uno avec un pot et un module radio
- Une arduino sur breadboard, atmega uno, avec un module radio et une led
Le but est d'allumer la led en faisant varier le potentiomètre. Je suis sur l'IDE 1.0.1
Le problème n'est pas côté receveur, mais plutôt au niveau transmetteur. Voci le code utilisé:
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
int rate;
void setup(){
Serial.begin(9600);
Mirf.cePin = 8; //ce
Mirf.csnPin = 7; //csn
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"clie1");
Mirf.payload = sizeof(rate);
Mirf.config();
Serial.println("Ready !");
}
void loop(){
rate = analogRead(A0);
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *) &rate);
Serial.println(rate);
while( Mirf.isSending() );
delay(1000);
}
dès que je mets sous tension l'arduino transmetteur, la led orange L s'allume et reste allumée. Sur la console, une valeur est affichée, et puis plus rien, la boucle plante (A ce niveau, je n'ai que le pot de brancher, le module est débranché).
Après quelques tests, je me rends compte que le problème vient de la ligne "Mirf.send((byte *) &rate);" qui semble tout faire planter car si je la mets en commentaire, le loop fonctionne, mais bon, le module, lui, ne fonctionnera jamais sans cette ligne ...
J'ai pensé à un problème avec mon arduino. J'ai donc entrepris de mettre 2 arduino sur la breadboard et embarquer le code dans l'un des deux. Une fois fais, (toujours que le pot connecté), la led branché sur le 13 s'allume et reste allumée faiblement, signe que le code a encore planté.
Quelqu'un saurait me dire ce qui cloche svp ? J'ai beau retourner les choses dans tous les sens, je ne vois pas ce que j'ai mal fait ?