Tenez voici un petit code (non testé mais qui devrait être fonctionnel) qui va prendre ce que vous tapez dans la console Série ouverte 115200 bauds et l'envoyer de l'autre côté où ce sera imprimé à l'écran. ==> ça va vous permettre de tester le montage
L'envoi se fait octet par octet, c'est loin d'être le plus efficient bien sûr et il y aura un peu de latence ==> dans le vrai code il vaudra mieux capter un message midi entier et l'envoyer d'un seul coup
il faut installer la dernière version de RF24 et s'assurer que vos modules sont correctement alimentés et connectés
EMETTEUR:
// EMETTEUR
#include <SPI.h>
#include <RF24.h> // voir https://nrf24.github.io/RF24/
const byte CEPin = 8;
const byte CSNPin = 7;
RF24 radio(CEPin, CSNPin);
uint8_t adresse[] = {0xCC, 0xCE, 0xCC, 0xCE, 0xCC};
// on déclare ce qui sera dans le message ici juste un octet au fil de l'eau
// dans le vrai code il faudrait transmettre un message midi
struct __attribute__ ((packed)) t_message {
uint8_t payload;
} message;
void envoyerMessage(t_message &msg)
{
if (!radio.write( &msg, sizeof(t_message) )) Serial.println(F("erreur d'envoi"));
else Serial.print((char) message.payload);
}
void setup() {
Serial.begin(115200);
if (!radio.begin()) {
Serial.println(F("radio absente!!"));
while (true) ; // erreur
}
radio.setPALevel(RF24_PA_LOW);
radio.setPayloadSize(sizeof(t_message));
radio.openWritingPipe(adresse);
radio.stopListening();
Serial.println(F("**** ÉMETTEUR PRET ****"));
}
void loop() {
int recu = Serial.read();
if (recu != -1) {
message.payload = recu;
envoyerMessage(message);
}
}
RECEPTEUR:
// RECEPTEUR
#include <SPI.h>
#include <RF24.h> // voir https://nrf24.github.io/RF24/
const byte CEPin = 8;
const byte CSNPin = 7;
RF24 radio(CEPin, CSNPin);
uint8_t adresse[] = {0xCC, 0xCE, 0xCC, 0xCE, 0xCC};
struct __attribute__ ((packed)) t_message {
uint8_t payload;
} message;
boolean ecouterRadio(t_message & msg)
{
boolean messageRecu = false;
if (radio.available()) {
radio.read( &msg, sizeof(t_message)); // on lit le message
messageRecu = true;
}
return messageRecu;
}
void setup() {
Serial.begin(115200);
if (!radio.begin()) {
Serial.println(F("radio absente!!"));
while (true) ; // erreur
}
radio.setPALevel(RF24_PA_LOW);
radio.setPayloadSize(sizeof(t_message));
radio.openReadingPipe(1, adresse);
radio.startListening();
Serial.println(F("**** RECEPTEUR PRET ****"));
}
void loop() {
if (ecouterRadio(message)) Serial.print((char) message.payload);
}