j'ai 2 nrf24l01 qui font une liaison entre 2 arduino nano.
L'emetteur envoi une valeur A et une valeur B.
Le récepteur reçoit la valeur A, l'affiche et la valeur B et l'affiche.
Tout marche si je n'active pas la réception de la 2eme valeur.
// radio.read(&vitesseventkmh, sizeof(float));
Si j'active la réception de la 2eme valeur, tout le programme plante et il n'y a plus aucune réception.
radio.read(&vitesseventkmh, sizeof(float));
En gros je fais:
radio.read(&valeur_A, sizeof(float));
radio.read(&valeur_B, sizeof(float));
est ce que c'est la bonne méthode? ou faut il définir autre chose?
Merci !!
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); //l adresse 0x27 est a changé en fonction de votre écrantRF24 radio(9, 10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
float temp ;
float vitesseventkmh = 0;
float last_temp = 0;void setup(void)
{
// Serial.begin(115200);lcd.begin();
lcd.backlight();
lcd.clear();timeRef = millis(); // initialisation de la référence du comptage
radio.begin();
radio.setPALevel(RF24_PA_MAX);
radio.openReadingPipe(1, pipe);
radio.startListening();}
void loop(void)
{if (radio.available())
{
timeRef = millis(); //raz de la var quand le prog passe dans le if
last_temp = temp;
radio.read(&temp, sizeof(float));// radio.read(&vitesseventkmh, sizeof(float));
Serial.print("recept Temperature : ");
Serial.println(temp);
Serial.print("recept vitesseventkmh : ");
Serial.println(vitesseventkmh);lcd.setCursor(6, 0);
lcd.print(temp);lcd.setCursor(8,1);
lcd.print(vent);delay(1000);
}}