Code compiled but still not working [Ethernet and Wifi]

Hi! I’m doing a car with Arduino. The car is connected via Wifi to a Router with a permanent IP by DHCP “192.168.1.101”. There’s also a Joystick in another Arduino connected via Ethernet to the Router with a DHCP Ip: “192.168.1.102”. I was told that communicating by UDP is the best way, because I sense the joystick values and send only a Char, then the car has a Switch case fot that Char and then it moves. The only thing is that i have poor knowledge about Networking. I saw Arduino’s Reference for both libraries and still don’t understand why is this not working. Any help pls?
Ethernet’s device: Ethernet Shield with WiznetW5100
Wifi’s device: Wifi Shield Wizfi210

Ethernet’s Code: (combination between DHCP Address Printer and Udp.write examples)

#include <SPI.h>        
#include <Ethernet.h>
#include <EthernetUdp.h>



byte mac[] = {  
  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
  byte remoteip[]={192, 168, 1, 101};
  const unsigned int remoteport=8888;
  char rxChar;
  int val, val2;
  const int potpin=0;
  const int potpin2=1;


const unsigned int localPort = 8888;      // local port to listen on

EthernetClient client;
EthernetUDP Udp;

void setup() {
    Serial.begin(9600);
    if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    for (;;)
      ;
  }
  
  Serial.print("My IP address: ");
  for (byte thisByte = 0; thisByte < 4; thisByte++) {
    // print the value of each byte of the IP address:
    Serial.print(Ethernet.localIP()[thisByte], DEC);
    Serial.print(".");
    }
    Serial.println();
    Udp.begin(localPort);
}

void loop() {

  val = analogRead(potpin);
  val2= analogRead(potpin2);
  Serial.println("val1=");
  Serial.println(val);
  Serial.println("val2=");
  Serial.println(val2);
  if(val>650)
{ 
    if(val2>650)
    {
      rxChar='I';
      Serial.println('I');
    }
    else if(val2<350)
    {
      rxChar='D';
      Serial.println('D');
    }
    else
    {
      rxChar='F';
      Serial.println('F');
    }
}
  else if (val<350)
{
    if(val2>650)
    {
      rxChar='J';
      Serial.println('J');
    }
    else if(val2<350)
    {
      rxChar='K';
      Serial.println('K');
    }
    else
    {
      rxChar='B';
      Serial.println('B');
    }
}
  else if(val2>650)
{
    if(val>650)
    {
      rxChar='I';
      Serial.println('I');
    }
    else if(val<350)
    {
      rxChar='J';
      Serial.println('J');
    }
    else
    {
      rxChar='L';
      Serial.println('L');
    }
}
  else if (val2<350)
{
    if(val>650)
    {
      rxChar='D';
      Serial.println('D');
    }
    else if(val<350)
    {
      rxChar='K';
      Serial.println('K');
    }
    else
    {
      rxChar='R';
      Serial.println('R');
    }
}
  else
  {
    rxChar='S';
    Serial.println('S');
  }
  
    Udp.beginPacket(remoteip, remoteport);
    Udp.write(rxChar);
    Udp.endPacket();

}

Wifi’s code:
Also, when I connect the Wifi Shield, the Serial stops working… It just supplies energy, so I can’t check what is the Char received and neither see the Wifi Status.
The Udp.read has no parameters because it returns only a Char… Is that okay?

#include <SPI.h>
#include <WiFi.h>
#include <WiFiUdp.h>

int status = WL_IDLE_STATUS;
char ssid[] = "pp123"; //  your network SSID (name)
char pass[] = "asdf1234";    // your network password (use for WPA, or use as key for WEP)
int keyIndex = 0;            // your network key Index number (needed only for WEP)
byte remoteip[]={192, 168, 1, 102};
unsigned int remoteport=8888;
char rxChar;
const int motorPin = 2;
const int motorPin2 = 3;
const int motorPin3 = 4;
const int motorPin4 = 5;
const int ledrojo = 1;
const int ledsadelante= 12;
const int ledsatras= 13;

unsigned int localPort = 8888;      // local port to listen on

char  ReplyBuffer[] = "acknowledged";       // a string to send back

WiFiUDP Udp;

void setup() {
  pinMode(motorPin, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  pinMode(ledrojo, OUTPUT);
  pinMode(ledsadelante, OUTPUT);
  pinMode(ledsatras, OUTPUT);
  
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue:
    while (true);
  }

  String fv = WiFi.firmwareVersion();
  if ( fv != "1.1.0" )
    Serial.println("Please upgrade the firmware");

  // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid);

    // wait 10 seconds for connection:
    delay(10000);
  }
  Serial.println("Connected to wifi");
  printWifiStatus();

  Serial.println("\nStarting connection to server...");
  // if you get a connection, report back via serial:
  Udp.begin(localPort);
}

void loop() {

  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if (packetSize)
  {
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
   
    // read the packet into packetBufffer
    rxChar = Udp.read();
    Serial.println("Contents:");
    Serial.println(rxChar);    
    switch (rxChar)
    {
      case 'F':
      digitalWrite(motorPin,HIGH);
      digitalWrite(ledrojo, LOW);
      digitalWrite(ledsadelante, HIGH);
      digitalWrite(ledsatras, LOW);
      break;
      case 'L':
      digitalWrite(motorPin3,HIGH);
      digitalWrite(ledrojo, LOW);
      digitalWrite(ledsadelante, LOW);
      digitalWrite(ledsatras, LOW);
      break;
      case 'R':
      digitalWrite(motorPin4,HIGH);
      digitalWrite(ledrojo, LOW);
      digitalWrite(ledsadelante, LOW);
      digitalWrite(ledsatras, LOW);
      break;
      case 'B':
      digitalWrite(motorPin2,HIGH);
      digitalWrite(ledrojo, LOW);
      digitalWrite(ledsadelante, LOW);
      digitalWrite(ledsatras, HIGH);
      break;
      case 'I':
      digitalWrite(motorPin,HIGH);
      digitalWrite(motorPin3,HIGH);
      digitalWrite(ledrojo, LOW);
      digitalWrite(ledsadelante, HIGH);
      digitalWrite(ledsatras, LOW);
      break;
      case 'D':
      digitalWrite(motorPin,HIGH);
      digitalWrite(motorPin4,HIGH);
      digitalWrite(ledrojo, LOW);
      digitalWrite(ledsadelante, HIGH);
      digitalWrite(ledsatras, LOW);
      break;
      case 'J':
      digitalWrite(motorPin2,HIGH);
      digitalWrite(motorPin3,HIGH);
      digitalWrite(ledrojo, LOW);
      digitalWrite(ledsadelante, LOW);
      digitalWrite(ledsatras, HIGH);
      break;
      case 'K':
      digitalWrite(motorPin2,HIGH);
      digitalWrite(motorPin4,HIGH);
      digitalWrite(ledrojo, LOW);
      digitalWrite(ledsadelante, LOW);
      digitalWrite(ledsatras, HIGH);
      break;
      default:
      digitalWrite(motorPin,LOW);
      digitalWrite(motorPin2,LOW);
      digitalWrite(motorPin3,LOW);
      digitalWrite(motorPin4,LOW);
      digitalWrite(ledrojo,HIGH);
      digitalWrite(ledsadelante, LOW);
      digitalWrite(ledsatras, LOW);
      break;
    }

    // send a reply, to the IP address and port that sent us the packet we received
    Udp.beginPacket(remoteip, remoteport);
    Udp.write(ReplyBuffer);
    Udp.endPacket();
  }
}


void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

Thanks for your help!