Megtaláltam a megoldást!
Nézegettem a nagy Arduino fórumon mások kódját, és sok ember tett delay(20)-at a rádióadás után, hogy ne zavarodjon meg a rádiójuk. Ezt beszúrtam mindhárom feltételem rádióadása után, és az lett az eredmény, hogy egy kumma rádióadás nem ment át. Abszolút süket volt a vétel. Ezen berágtam, és delay helyett megtöbbszöröztem a rádióadást így:
void loop()
{
xtengely=(analogRead(xpin));
ytengely=(analogRead(ypin));
ztengely=(analogRead(zpin));
helyzet=(xtengely/3+ytengely/3+ztengely/3);
unsigned long currentMillis = millis();
riaszt=abs(helyzet-x);
if (riaszt > erzekenyseg) // csak mozgás esetén küld rádiójelet
{
joystick[0] = 1;
joystick[1] = riaszt;
joystick[2] = ztengely;
serialprinter (joystick[0],joystick[1],joystick[2]);
radio.write( joystick, sizeof(joystick) );
radio.write( joystick, sizeof(joystick) );
radio.write( joystick, sizeof(joystick) );
}
// 2 másodperces eltolással vizsgálja a helyzetet - lassú mozgásokra
else if(currentMillis - previousMillis > 2000) {
previousMillis = currentMillis;
riaszt=abs(longhelyzet-x);
if (riaszt > erzekenyseg/2)
{
joystick[0] = 2;
joystick[1] = riaszt;
joystick[2] = ztengely;
serialprinter (joystick[0],joystick[1],joystick[2]);
radio.write( joystick, sizeof(joystick) );
radio.write( joystick, sizeof(joystick) );
radio.write( joystick, sizeof(joystick) );
}
longhelyzet=(xtengely/3+ytengely/3+ztengely/3);
}
// Bejelentkezés 5 másodpercenként
else if(currentMillis - previousMillis2 > 5000) {
previousMillis2 = currentMillis;
joystick[0] = 3;
joystick[1] = riaszt;
joystick[2] = ztengely;
serialprinter (joystick[0],joystick[1],joystick[2]);
radio.write( joystick, sizeof(joystick) );
radio.write( joystick, sizeof(joystick) );
radio.write( joystick, sizeof(joystick) );
}
x = helyzet+1;
}//--(end main loop )---
/*-----( Declare User-written Functions )-----*/
void serialprinter(int x, int y, int z) {
Serial.print("Uzenet = ");
Serial.print(x);
Serial.print(" parameter = ");
Serial.print(y);
Serial.print(" # = ");
Serial.println(z);
}
Láss csodát, minden csomagom átmegy hibátlanul!