Sparkfun OBDII - Arduino Uno Stuck at 832RPM-13Kmh
after 1 week of try i finally solved it :)
As you guys know UNO has 1 i/o serial port, and Sparkfun's OBDII board doesn't work on same i/o serial port (at least i couldn't be able to), with uno when you send a command through serial to obd board you need to wait minimum 3 seconds to send another command or car's can-bus thinks that you canceled the first command returns STOPPED error, but with MEGA it works perfectly because mega has 3 i/o serial ports. You simply define Serial(TX)-Serial1(RX) and it works perfectly with 75ms delay.
Here is the working code.
//Set up ring buffer
char rxData[20];
char rxIndex = 0;
int rpmstored = 0;

    void setup()
    {
      Serial.begin(9600); // prints to serial monitor
      Serial1.begin(9600); //Hardware serial connection to the obdii uart
      OBD_init(); //initiates obd link
      delay(3000);
    }
   
    void loop()
{   
rpmstored = getRPM();
//int mph = (int)((getSPEED() * 10000L + 5) / 16090); //convert to mph
//  Serial.print (mph);
Serial.print(&quot;S:&quot;);
Serial.print (getSPEED());
Serial.print (&quot;,&quot;);
Serial.print(&quot;R:&quot;);
Serial.println (getRPM());
//Serial.print (&quot;,&quot;);
//Serial.print(&quot;W:&quot;);
//Serial.print (getWATERTEMP());
//Serial.print (&quot;,&quot;);
//Serial.print(&quot;O:&quot;);
//Serial.print (getOILTEMP());
//Serial.print (&quot;,&quot;);
//Serial.print(&quot;F:&quot;);
//Serial.print (getFUEL());
//Serial.print (&quot;,&quot;);
//Serial.print(&quot;V:&quot;);
//Serial.println (getVOLT());
delay(100);
Serial.flush();
    }
   
    void OBD_init(void)
    {
      //Wait for a little while before sending the reset command to the OBD-II-UART
      delay(2000);
      //Reset the OBD-II-UART
      Serial1.print(&quot;ATZ\r&quot;);
      //Wait for a bit before starting to send commands after the reset.
      delay(2);
      OBD_read();
      Serial1.print(&quot;ATE0\r&quot;);
      OBD_read();
      //Serial1.flush();
    }
   
    int getRPM(void)
    {
      //Query the OBD-II-UART for the Vehicle rpm
      Serial1.flush();
      Serial1.print(&quot;010C\r&quot;);
      OBD_read();

      return ((strtol(&amp;rxData[6], 0, 16) * 256) + strtol(&amp;rxData[9], 0, 16)) / 4;
    }

    int getSPEED(void)
    {
      //Query the OBD-II-UART for the vehicle speed
      Serial1.flush();
      Serial1.print(&quot;010D\r&quot;);
      OBD_read();

      return strtol(&amp;rxData[6], 0, 16);
    }

    int getOILTEMP(void)
    {
      //Query the OBD-II-UART for the vehicle speed
      Serial1.flush();
      Serial1.print(&quot;015C\r&quot;);
      OBD_read();

      return strtol(&amp;rxData[6], 0, 16);
    }

    int getFUEL(void)
    {
      //Query the OBD-II-UART for the vehicle speed
      Serial1.flush();
      Serial1.print(&quot;012F\r&quot;);
      OBD_read();

      return strtol(&amp;rxData[6], 0, 16);
    }

    int getVOLT(void)
    {
      //Query the OBD-II-UART for the vehicle speed
      Serial1.flush();
      Serial1.print(&quot;0142\r&quot;);
      OBD_read();

      return strtol(&amp;rxData[6], 0, 16);
    }

    int getWATERTEMP(void)
    {
      //Query the OBD-II-UART for the Engine Coolant Temp
      Serial1.flush();
      Serial1.print(&quot;0105\r&quot;);
      OBD_read();

      return strtol(&amp;rxData[6], 0, 16) - 40;
    }
   
   
    void OBD_read(void)
    {
      char c;
      do {
        if (Serial1.available() &gt; 0)
        {
          c = Serial1.read();
          if ((c != '&gt;') &amp;&amp; (c != '\r') &amp;&amp; (c != '\n')) //Keep these out of our buffer
          {
            rxData[rxIndex++] = c; //Add whatever we receive to the buffer
          }
        }
      } while (c != '&gt;'); //The ELM327 ends its response with this char so when we get it we exit out.
      rxData[rxIndex++] = '\0';//Converts the array into a string
      rxIndex = 0; //Set this to 0 so next time we call the read we get a &quot;clean buffer&quot;
   
    }

I only need RPM &amp; Speed that's why i comnented out other parameters but tested all and works perfectly.