non riesco a trasmettere oltre 16 valori

Salve a tutti, è la prima volta che chiedo aiuto alla comunity, ho 40 anni di esperienza nella progettazione elettronica, ma solo da un paio di anni ho iniziato ad utilizzare arduino, linguaggio di programmazione ne conosco il minimo per addentrarmi. Ho realizzato una regia video per 6 videocamere, sulla regia ho messo un arduino mega 2560 e su ogni camera un arduino uno r3, per ogni camera ho un joystick quindi due potenziometri, inoltre un deviatore per lo zoom e un interruttore per la luce di rec, per cui devo trasmettere 30 valori, ma quando metto un numero superiore a 16 nelle variabili non funziona più la trasmissione-ricezione

questo è il codice di una cam (client)

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
#include <Servo.h>
int pots[15];

int led5 = 2;


Servo servox;
Servo servoy;

void setup(){

 Serial.begin(9600);
servox.attach(3);
servoy.attach(4);
 Mirf.cePin = 7;
 Mirf.csnPin = 8; 
 Mirf.spi = &MirfHardwareSpi;
 Mirf.init();
 Mirf.channel = 1;
 Mirf.setRADDR((byte *)"serv1");
 Mirf.payload =sizeof(pots);
 
 Mirf.config();
}

void loop(){

 while(!Mirf.dataReady()){
 }
 Mirf.getData((byte *) &pots);
// delay(10);
 //Mirf.getData((byte *) &butstate);
// digitalWrite(led,butstate);

 //Serial.println(rate);
 //Serial.println (siz);
     Serial.println(pots[0]);
  Serial.println(pots[1]);
    servox.write(pots[0]);
 servoy.write(pots[1]);

Serial.println(pots[2]);
if (pots[2] == 1){digitalWrite(led5,LOW);}
     else{digitalWrite(led5, HIGH);}

 delay(10);
}

e questo la regia (server)

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
int timer = 100;           // The higher the number, the slower the timing.


int pots[20];

int potsx1;
int potsy1;
int Zt1;
int Zw1;
int led1;

int potsx2;
int potsy2;
int Zt2;
int Zw2;
int led2;

int potsx3;
int potsy3;
int Zt3;
int Zw3;
int led3;

void setup(){

 Serial.begin(9600);
 int thisPin;
 
 Mirf.cePin = 7; 
 Mirf.csnPin = 8; 
 Mirf.spi = &MirfHardwareSpi;
 Mirf.init();
 Mirf.channel = 1; 
 Mirf.setRADDR((byte *)"clie1");
#define MIRF_PAYLOAD 64;
 Mirf.config();

}

void loop(){ // loop from the lowest pin to the highest:

   potsx1 = analogRead(A10);
   potsx1 = map(potsx1, 0, 1023, 0, 180);
   potsy1 = analogRead(A11);         
   potsy1 = map(potsy1, 0, 1023, 0, 180);
   pots[0]=potsx1;
   pots[1]=potsy1;
   Zt1 = digitalRead(22);
   pots[2]=Zt1;
   Zw1 = digitalRead(24);
   pots[3]=Zw1;
   led1 = digitalRead(21);
   pots[4]=led1;
   
   potsx2 = analogRead(A8);
   potsx2 = map(potsx2, 0, 1023, 0, 180);
   potsy2 = analogRead(A9);         
   potsy2 = map(potsy2, 0, 1023, 0, 180);
   pots[5]=potsx2;
   pots[6]=potsy2;
   Zt2 = digitalRead(26);
   pots[7]=Zt2;
   Zw2 = digitalRead(28);
   pots[8]=Zw2;
   led2 = digitalRead(23);
   pots[9]=led2;

   potsx3 = analogRead(A6);
   potsx3 = map(potsx3, 0, 1023, 0, 180);
   potsy3 = analogRead(A7);         
   potsy3 = map(potsy3, 0, 1023, 0, 180);
   pots[10]=potsx3;
   pots[11]=potsy3;
   Zt3 = digitalRead(30);
   pots[12]=Zt3;
   Zw3 = digitalRead(32);
   pots[13]=Zw3;
   led3 = digitalRead(27);
   pots[14]=led3;

 
   delay(timer);                  
   // turn the pin off:
   //digitalWrite(ledPins[thisPin], LOW);    


 Mirf.setTADDR((byte *)"serv1");

 Mirf.send((byte *) &pots);
 
// Mirf.send((byte *) &butstate);

 while(Mirf.isSending()){
 }
}

ho dimezzato il numero di cam per abbreviare i listati nel presente forum

ho cercato tra i tanti post, ma non riesco a risolvere, qualcuno può darmi una mano?
grazie

Buongiorno,
essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ...

... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread e sistemato il codice come da regolamento, nessuno ti potrà rispondere, quindi ti consiglio di fare il tutto al più presto. :wink:

Inoltre, è impossibile aiutarti senza vedere anche il loop()...