Arduino Forum

Topics => Robotics => Topic started by: TheDigitalToaster on Jun 17, 2014, 02:47 pm

Title: Aruino Ethernet Shield - failing connection.
Post by: TheDigitalToaster on Jun 17, 2014, 02:47 pm
HI, i have made a wireless "robot". This works with VB.NET and Arduino. There is a router and ethernet shield on the robot for the connection.

My connection keeps failing, so it won't even react or get stuck in a position.
Here is a printscreen of the Serial Monitor (dutch):
http://gyazo.com/c91025a1ab322f3d552b33e19ed01056
Any ideas? Here is the Arduino source code:
Code: [Select]

//*************************************************************************************************************************************
// Declarations
//*************************************************************************************************************************************
#include <SPI.h>
#include <Ethernet.h>

//*************************************************************************************************************************************
// Wired configuration parameters
//*************************************************************************************************************************************
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
unsigned char local_ip[] = {192,168,1,5}; // IP address of WiShield
unsigned char gateway_ip[] = {192,168,1,1}; // router or gateway IP address
unsigned char subnet_mask[] = {255,255,255,0}; // subnet mask for the local network
int E1 = 8; 
int M1 = 9;
int E2 = 6;                     
int M2 = 7; 
const int trigPin = 2;
const int echoPin = 3;

EthernetServer server(80);

String buffer = "";

void setup()
{
  pinMode(M1,OUTPUT);
  pinMode(M2,OUTPUT);
  Ethernet.begin(mac, local_ip);
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
 
}

void loop()
{
  char c;
  long duration,cm;
  Serial.println("Aan het wachten op een verbinding ...");
  EthernetClient client = server.available();
if (client)
  {
    Serial.println("Verbonden met client");
    boolean currentLineIsBlank = true;
    while (client.connected())
    {
        digitalWrite(trigPin, LOW);
        delayMicroseconds(2);
        digitalWrite(trigPin, HIGH);
        delayMicroseconds(10);
        digitalWrite(trigPin, LOW);
        duration = pulseIn(echoPin, HIGH);
        cm = microsecondsToCentimeters(duration);
        Serial.print("gemeten afstand");
        Serial.print(cm);
        Serial.println();
      if (client.available())
      {
        c = client.read();
        Serial.print("Commando:");
        Serial.println(c);
        switch (c) {
          case 'v':
                  if (cm < 10) niet_rijden();
                  else
  { 
  digitalWrite(M1,HIGH); 
  digitalWrite(M2, HIGH);       
  analogWrite(E1, 255);   //PWM Speed Control
  analogWrite(E2, 255);   //PWM Speed Control
                  } 
                  break;   
          case 'a':
                  digitalWrite(M1,LOW); 
                  digitalWrite(M2, LOW);       
                  analogWrite(E1, 255);   //PWM Speed Control
                  analogWrite(E2, 255);   //PWM Speed Control 
                  break;
          case 'r':
                  digitalWrite(M1,LOW); 
                  digitalWrite(M2, HIGH);       
                  analogWrite(E1, 255);   //PWM Speed Control
                  analogWrite(E2, 255);   //PWM Speed Control 
                  break;
          case 'l':
                  digitalWrite(M1,HIGH); 
                  digitalWrite(M2, LOW);       
                  analogWrite(E1, 255);   //PWM Speed Control
                  analogWrite(E2, 255);   //PWM Speed Control   
                  break;
          case 's':
                  analogWrite(E1, 0);   //PWM Speed Control
                  analogWrite(E2, 0);   //PWM Speed Control 
                  break;       
        }
      }
              else
        {
            Serial.println("Niet beschikbaar");
      if( c = 'v' && cm < 10) niet_rijden();

    }
  }
}     


long microsecondsToCentimeters(long microseconds)
{
  // The speed of sound is 340 m/s or 29 microseconds per centimeter.
  // The ping travels out and back, so to find the distance of the
  // object we take half of the distance travelled.
  return (microseconds / 29) / 2;
}

void niet_rijden()
{
       analogWrite(E1, 0);   //PWM Speed Control
       analogWrite(E2, 0);   //PWM Speed Control 
}


Title: Re: Aruino Ethernet Shield - failing connection.
Post by: johnwasser on Jun 18, 2014, 04:17 am
It won't compile for me.  It won't even format: Too many left curly braces.

adding a '}' before
Code: [Select]
long microsecondsToCentimeters(long microseconds){/code] helped

Are you sure you don't mean "c == 'v'" here?
[code]        if( c = 'v' && cm < 10) niet_rijden();


That's two programming errors.  I'd look for more.[/code]