help in skipping part of code after interval


hey guys, project involves ultrasonic sensor , gps module...
the ultrasonic sensor measures distance in mm... first reading taken threshold... distance violates threshold plus or minus 5mm gps should calculate location...

the problem facing gps takes long or never locks location... can suggest someway gps part stop , continue main code after 50 seconds...

i beginner in arduino coding...

code: [select]

#include <softwareserial.h>
#include <tinygps.h>
#define trigpin 13
#define echopin 12
int duration, distance, threshold;
long lat,lon;
tinygps gps;
softwareserial gpsserial(2, 3);

void setup()
{
      serial.begin (9600);
      pinmode(trigpin, output);
      pinmode(echopin, input);
      gpsserial.begin(4800);
      calc();
}

void loop()
{
  digitalwrite(trigpin, high);
  digitalwrite(trigpin, low);
  duration = pulsein(echopin, high);
  distance = (duration/2) / 2.91;
  serial.print(distance);
  serial.println(" mm");
  delay(500);
  if (distance <= (threshold+5) && distance >= (threshold-5))   
  {
        serial.println("proper");
  }
  else
  { 
        serial.println("error");
        loc();
        delay(5000);
  }
}

void calc()
{
  digitalwrite(trigpin, high);
  digitalwrite(trigpin, low);
  duration = pulsein(echopin, high);
  threshold = (duration/2) / 2.91;
  serial.print(threshold);
  serial.println(" mm");
  delay(500);
}

void loc()
{
  while(gpsserial.available())
  {
   if(gps.encode(gpsserial.read()))
   {
    gps.get_position(&lat,&lon);
    serial.print("position: ");
    serial.print("lat: ");
    serial.print(lat);
    serial.print(" ");
    serial.print("lon: ");
    serial.println(lon);
    }
  }
}

you like
code: [select]
while(millis() - startmillis < timeout) {
   if (gpsserial.available())  // rather while




assuming have understood problem correctly.

...r


Arduino Forum > Using Arduino > Project Guidance > help in skipping part of code after interval


arduino

Comments