Vending using the DG600F(s) 6 coin acceptor

Along with the other suggestions, I did notice this:

    if (mySerial.available());
    {
      i=mySerial.read();
      //if (i !=255)
      ...

which will always be executed because of the semicolon at the end of the if() statement.

Also, choosing better variable names may help. 'led1' doesn't tell you anything about what it is or what is should be doing. Same for 'mySerial' and 'motor1', 'motor2' etc.

I'd use names like 'ledCredit' (since I think you light it up when there are credits)...

Good luck!