ผมใช้ Nrf24l01 ส่งข้อมูล 20 ค่า แต่ฝ่ายรับรับได้เพียง 8 ค่า ผมควรแก้ CODE ตรงส่วนไหนครับเพื่อให้สามารถรับได้ทั้ง 20 ค่า
ฝ่ายส่ง
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
float Parameter_value[20];
RF24 radio(7, 8); //CEZ,CSN
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void) {
Serial.begin(115200);
radio.begin();
radio.openWritingPipe(pipe);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
}
void loop(void)
{
float numberFloat_1 = 31.69;
float numberFloat_2 = 25.52;
float numberFloat_3 = 21.88;
float numberFloat_4 = 56.29;
float numberFloat_5 = 43.25;
float numberFloat_6 = 52.58;
float numberFloat_7 = 89.22;
float numberFloat_8 = 33.33;
float numberFloat_9 = 44.44;
float numberFloat_10 = 55.55;
float numberFloat_11 = 66.66;
float numberFloat_12 = 77.77;
float numberFloat_13 = 88.88;
float numberFloat_14 = 99.99;
float numberFloat_15 = 23.13;
float numberFloat_16 = 56.46;
float numberFloat_17 = 89.78;
float numberFloat_18 = 63.96;
float numberFloat_19 = 52.85;
float numberFloat_20 = 41.74;
Parameter_value[0] = numberFloat_1;
Parameter_value[1] = numberFloat_2;
Parameter_value[2] = numberFloat_3;
Parameter_value[3] = numberFloat_4;
Parameter_value[4] = numberFloat_5;
Parameter_value[5] = numberFloat_6;
Parameter_value[6] = numberFloat_7;
Parameter_value[7] = numberFloat_8;
Parameter_value[8] = numberFloat_9;
Parameter_value[9] = numberFloat_10;
Parameter_value[10] = numberFloat_11;
Parameter_value[11] = numberFloat_12;
Parameter_value[12] = numberFloat_13;
Parameter_value[13] = numberFloat_14;
Parameter_value[14] = numberFloat_15;
Parameter_value[15] = numberFloat_16;
Parameter_value[16] = numberFloat_17;
Parameter_value[17] = numberFloat_18;
Parameter_value[18] = numberFloat_19;
Parameter_value[19] = numberFloat_20;
radio.write(&Parameter_value, sizeof(Parameter_value));
}
ฝ่ายรับ
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
float Parameter_value[9];
RF24 radio(7, 8);
const uint64_t pipe = 0xE8E8F0F0E1LL;
void setup(void) {
Serial.begin(115200);
radio.begin();
radio.openReadingPipe(0, pipe);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();
}
void loop(void)
{
if ( radio.available() ) {
delay(100);
radio.read(&Parameter_value, sizeof(Parameter_value));
Serial.println(Parameter_value[0]);
Serial.println(Parameter_value[1]);
Serial.println(Parameter_value[2]);
Serial.println(Parameter_value[3]);
Serial.println(Parameter_value[4]);
Serial.println(Parameter_value[5]);
Serial.println(Parameter_value[6]);
Serial.println(Parameter_value[7]);
Serial.println(Parameter_value[8]);
Serial.println(Parameter_value[9]);
Serial.println(Parameter_value[10]);
Serial.println(Parameter_value[11]);
Serial.println(Parameter_value[12]);
Serial.println(Parameter_value[13]);
Serial.println(Parameter_value[14]);
Serial.println(Parameter_value[15]);
Serial.println(Parameter_value[16]);
Serial.println(Parameter_value[17]);
Serial.println(Parameter_value[18]);
Serial.println(Parameter_value[19]);
Serial.println(Parameter_value[20]);
Serial.println();
Serial.println();
}
}
น่าจะเป็นข้อจำกัดขนาด package ในการส่ง
วิธีแก้ ส่งไป 2 ครั้งแล้วนำมาต่อกันครับ