02-12-2021, 19:55
witam Was wszystkich serdecznie ! proszę o pomoc i z góry dziękuję. pytanie brzmi - dlaczego w tablicy zmiennych wykonuje sie tylko pierwsze 16 poleceń? płytki mega,nrf24l01. link do filmu podglądowego: https://youtu.be/xw4sdLZUjUA p.s. jestem początkujący w pisaniu kodów,nie cały rok
a oto kod:
TX
RX

a oto kod:
TX
Kod:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define joy1x A0
#define joy1y A1
#define joy2x A2
#define joy2y A3
#define joy3x A4
#define joy3y A5
#define joy4x A6
#define joy4y A7
#define pot1 A8
#define pot2 A9
#define pot3 A10
#define pot4 A11
#define pot5 A12
#define bt1 13
#define bt2 12
#define bt3 42
#define bt4 43
#define sw1 22
#define sw2 23
#define sw3 24
#define sw4 25
#define sw5 26
#define sw6 27
#define sw7 28
#define sw8 29
RF24 radio(49, 53);
const byte address[6] = "00001";
void setup()
{
Serial.begin(19200);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
pinMode(joy1x, INPUT);
pinMode(joy1y, INPUT);
pinMode(joy2x, INPUT);
pinMode(joy2y, INPUT);
pinMode(joy3x, INPUT);
pinMode(joy3y, INPUT);
pinMode(joy4x, INPUT);
pinMode(joy4y, INPUT);
pinMode(pot1, INPUT);
pinMode(pot2, INPUT);
pinMode(pot3, INPUT);
pinMode(pot4, INPUT);
pinMode(pot5, INPUT);
pinMode(bt1, INPUT_PULLUP);
pinMode(bt2, INPUT_PULLUP);
pinMode(bt3, INPUT_PULLUP);
pinMode(bt4, INPUT_PULLUP);
pinMode(sw1, INPUT_PULLUP);
pinMode(sw2, INPUT_PULLUP);
pinMode(sw3, INPUT_PULLUP);
pinMode(sw4, INPUT_PULLUP);
pinMode(sw5, INPUT_PULLUP);
pinMode(sw6, INPUT_PULLUP);
pinMode(sw7, INPUT_PULLUP);
pinMode(sw8, INPUT_PULLUP);
}
void loop()
{
int tab[25];
tab[0] = analogRead(joy1x);
tab[1] = analogRead(joy1y);
tab[2] = analogRead(joy2x);
tab[3] = analogRead(joy2y);
tab[4] = analogRead(joy3x);
tab[5] = analogRead(joy3y);
tab[6] = analogRead(joy4x);
tab[7] = analogRead(joy4y);
tab[8] = analogRead(pot1);
tab[9] = analogRead(pot2);
tab[10] = analogRead(pot3);
tab[11] = analogRead(pot4);
tab[12] = analogRead(pot5);
tab[13] = digitalRead(bt1);
tab[14] = digitalRead(bt2);
tab[15] = digitalRead(bt3);
tab[16] = digitalRead(bt4);
tab[17] = digitalRead(sw1);
tab[18] = digitalRead(sw2);
tab[19] = digitalRead(sw3);
tab[20] = digitalRead(sw4);
tab[21] = digitalRead(sw5);
tab[22] = digitalRead(sw6);
tab[23] = digitalRead(sw7);
tab[24] = digitalRead(sw8);
//Serial.println(tab[0]);
//Serial.println(tab[1]);
//Serial.println(tab[2]);
//Serial.println(tab[3]);
//Serial.println(tab[4]);
//Serial.println(tab[5]);
//Serial.println(tab[6]);
//Serial.println(tab[7]);
//Serial.println(tab[8]);
//Serial.println(tab[9]);
//Serial.println(tab[10]);
//Serial.println(tab[11]);
//Serial.println(tab[12]);
//Serial.println(tab[13]);
//Serial.println(tab[14]);
//Serial.println(tab[15]);
//Serial.println(tab[16]);
//Serial.println(tab[17]);
//Serial.println(tab[18]);
//Serial.println(tab[19]);
//Serial.println(tab[20]);
//Serial.println(tab[21]);
//Serial.println(tab[22]);
//Serial.println(tab[23]);
//Serial.println(tab[24]);
radio.write(&tab, sizeof(tab));
delay(15);
}
RX
Kod:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
RF24 radio(49, 53);
const byte address[6] = "00001";
int joy1_lp = 8; //joystick1
int joy1_lt = 9;
int joy1_pp = 10;
int joy1_pt = 11;
int joy2xH = 22; //joystick2
int joy2xL = 23;
int joy2yH = 24;
int joy2yL = 25;
int joy3xH = 26; //joystick3
int joy3xL = 27;
int joy3yH = 28;
int joy3yL = 29;
int joy4xH = 30; //joystick4
int joy4xL = 31;
int joy4yH = 32;
int joy4yL = 33;
int bt1 = 13; //button x4
int bt2 = 12;
int bt3 = 34;
int bt4 = 35;
int sw1 = 36; //switch x8
int sw2 = 37;
int sw3 = 38;
int sw4 = 39;
int sw5 = 40;
int sw6 = 41;
int sw7 = 42;
int sw8 = 43;
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
void setup()
{
Serial.begin(19200);
pinMode(joy1_lp, OUTPUT);
pinMode(joy1_lt, OUTPUT);
pinMode(joy1_pp, OUTPUT);
pinMode(joy1_pt, OUTPUT);
pinMode(joy2xH, OUTPUT);
pinMode(joy2xL, OUTPUT);
pinMode(joy2yH, OUTPUT);
pinMode(joy2yL, OUTPUT);
pinMode(joy3xH, OUTPUT);
pinMode(joy3xL, OUTPUT);
pinMode(joy3yH, OUTPUT);
pinMode(joy3yL, OUTPUT);
pinMode(joy4xH, OUTPUT);
pinMode(joy4xL, OUTPUT);
pinMode(joy4yH, OUTPUT);
pinMode(joy4yL, OUTPUT);
pinMode(bt1, OUTPUT);
pinMode(bt2, OUTPUT);
pinMode(bt3, OUTPUT);
pinMode(bt4, OUTPUT);
pinMode(sw1, OUTPUT);
pinMode(sw2, OUTPUT);
pinMode(sw3, OUTPUT);
pinMode(sw4, OUTPUT);
pinMode(sw5, OUTPUT);
pinMode(sw6, OUTPUT);
pinMode(sw7, OUTPUT);
pinMode(sw8, OUTPUT);
servo1.attach(2);
servo2.attach(3);
servo3.attach(4);
servo4.attach(5);
servo5.attach(6);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();
digitalWrite(joy1_lp, LOW);
digitalWrite(joy1_lt, LOW);
digitalWrite(joy1_pp, LOW);
digitalWrite(joy1_pt, LOW);
servo1.write(90);
servo2.write(90);
servo3.write(90);
servo4.write(90);
servo5.write(90);
}
void loop()
{
delay(15);
if ( radio.available()) {tab();}
}
void tab()
{
STOPP(); while (radio.available())
{
int tab[25];
radio.read(&tab, sizeof(tab));
if(tab[0] > 900){wprzod();}
if(tab[0] < 100){wtyl();}
if(tab[1] > 900){wlewo();}
if(tab[1] < 100){wprawo();}
if(tab[2] > 900){joy_2_xH();}
if(tab[2] < 100){joy_2_xL();}
if(tab[3] > 900){joy_2_yH();}
if(tab[3] < 100){joy_2_yL();}
if(tab[4] > 900){joy_3_xH();}
if(tab[4] < 100){joy_3_xL();}
if(tab[5] > 900){joy_3_yH();}
if(tab[5] < 100){joy_3_yL();}
if(tab[6] > 900){joy_4_xH();}
if(tab[6] < 100){joy_4_xL();}
if(tab[7] > 900){joy_4_yH();}
if(tab[7] < 100){joy_4_yL();}
int pot1 = map(tab[8], 0, 1023, 0, 180);
int pot2 = map(tab[9], 0, 1023, 0, 180);
int pot3 = map(tab[10], 0, 1023, 0, 180);
int pot4 = map(tab[11], 0, 1023, 0, 180);
int pot5 = map(tab[12], 0, 1023, 0, 180);
servo1.write(pot1);
servo2.write(pot2);
servo3.write(pot3);
servo4.write(pot4);
servo5.write(pot5);
if(tab[13] == 0){digitalWrite(bt1, HIGH);}
if(tab[13] == 1){digitalWrite(bt1, LOW);}
if(tab[14] == 0){digitalWrite(bt2, HIGH);}
if(tab[14] == 1){digitalWrite(bt2, LOW);}
if(tab[15] == 0){digitalWrite(bt3, HIGH);}
if(tab[15] == 1){digitalWrite(bt3, LOW);}
if(tab[16] == 0){digitalWrite(bt4, HIGH);}
if(tab[16] == 1){digitalWrite(bt4, LOW);}
if(tab[17] == 0){digitalWrite(sw1, LOW);}
if(tab[17] == 1){digitalWrite(sw1, HIGH);}
if(tab[18] == 0){digitalWrite(sw2, LOW);}
if(tab[18] == 1){digitalWrite(sw2, HIGH);}
if(tab[19] == 0){digitalWrite(sw3, LOW);}
if(tab[19] == 1){digitalWrite(sw3, HIGH);}
if(tab[20] == 0){digitalWrite(sw4, LOW);}
if(tab[20] == 1){digitalWrite(sw4, HIGH);}
if(tab[21] == 0){digitalWrite(sw5, LOW);}
if(tab[21] == 1){digitalWrite(sw5, HIGH);}
if(tab[22] == 0){digitalWrite(sw6, LOW);}
if(tab[22] == 1){digitalWrite(sw6, HIGH);}
if(tab[23] == 0){digitalWrite(sw7, LOW);}
if(tab[23] == 1){digitalWrite(sw7, HIGH);}
if(tab[24] == 0){digitalWrite(sw8, LOW);}
if(tab[24] == 1){digitalWrite(sw8, HIGH);}
}
}
void wprzod()
{ digitalWrite(joy1_lp, HIGH);
digitalWrite(joy1_lt, LOW);
digitalWrite(joy1_pp, HIGH);
digitalWrite(joy1_pt, LOW);}
void wtyl()
{ digitalWrite(joy1_lp, LOW);
digitalWrite(joy1_lt, HIGH);
digitalWrite(joy1_pp, LOW);
digitalWrite(joy1_pt, HIGH);}
void wlewo()
{ digitalWrite(joy1_lp, LOW);
digitalWrite(joy1_lt, HIGH);
digitalWrite(joy1_pp, HIGH);
digitalWrite(joy1_pt, LOW);}
void wprawo()
{ digitalWrite(joy1_lp, HIGH);
digitalWrite(joy1_lt, LOW);
digitalWrite(joy1_pp, LOW);
digitalWrite(joy1_pt, HIGH);}
void joy_2_xH()
{ digitalWrite(joy2xH, HIGH);}
void joy_2_xL()
{ digitalWrite(joy2xL, HIGH);}
void joy_2_yH()
{ digitalWrite(joy2yH, HIGH);}
void joy_2_yL()
{ digitalWrite(joy2yL, HIGH);}
void joy_3_xH()
{ digitalWrite(joy3xH, HIGH);}
void joy_3_xL()
{ digitalWrite(joy3xL, HIGH);}
void joy_3_yH()
{ digitalWrite(joy3yH, HIGH);}
void joy_3_yL()
{ digitalWrite(joy3yL, HIGH);}
void joy_4_xH()
{ digitalWrite(joy4xH, HIGH);}
void joy_4_xL()
{ digitalWrite(joy4xL, HIGH);}
void joy_4_yH()
{ digitalWrite(joy4yH, HIGH);}
void joy_4_yL()
{ digitalWrite(joy4yL, HIGH);}
void STOPP()
{ digitalWrite(joy1_lp, LOW);
digitalWrite(joy1_lt, LOW);
digitalWrite(joy1_pp, LOW);
digitalWrite(joy1_pt, LOW);
digitalWrite(joy2xH, LOW);
digitalWrite(joy2xL, LOW);
digitalWrite(joy2yH, LOW);
digitalWrite(joy2yL, LOW);
digitalWrite(joy3xH, LOW);
digitalWrite(joy3xL, LOW);
digitalWrite(joy3yH, LOW);
digitalWrite(joy3yL, LOW);
digitalWrite(joy4xH, LOW);
digitalWrite(joy4xL, LOW);
digitalWrite(joy4yH, LOW);
digitalWrite(joy4yL, LOW);
}