#include <ESP8266WiFi.h>

const int M1forwardPin = 14;
const int M1backwardPin = 12;
const int M2forwardPin = 5;
const int M2backwardPin = 4;
const int sleepPin = 16;

#define M1SPEED 145
#define M2SPEED 150

#define DELAY 500


void setup() {
  pinMode(M1forwardPin, OUTPUT);
  pinMode(M1backwardPin, OUTPUT);
  pinMode(M2forwardPin, OUTPUT);
  pinMode(M2backwardPin, OUTPUT);
  pinMode(sleepPin, OUTPUT);

  digitalWrite(sleepPin, HIGH);
}

void forward() {
  analogWrite(M1forwardPin, M1SPEED);
  analogWrite(M2forwardPin, M2SPEED);
  analogWrite(M1backwardPin, 0);
  analogWrite(M2backwardPin, 0);
}

void backward() {
  analogWrite(M1backwardPin, M1SPEED);
  analogWrite(M2backwardPin, M2SPEED);
  analogWrite(M1forwardPin, 0);
  analogWrite(M2forwardPin, 0);
}

void turnLeft() {
  analogWrite(M1backwardPin, M1SPEED);
  analogWrite(M2forwardPin, M2SPEED);
  analogWrite(M1forwardPin, 0);
  analogWrite(M2backwardPin, 0);
}

void turnRight() {
  analogWrite(M1forwardPin, M1SPEED);
  analogWrite(M2backwardPin, M2SPEED);
  analogWrite(M1backwardPin, 0);
  analogWrite(M2forwardPin, 0);
}

void stopMotors() {
  digitalWrite(sleepPin, LOW);
  analogWrite(M1forwardPin, 0);
  analogWrite(M2forwardPin, 0);
  analogWrite(M1backwardPin, 0);
  analogWrite(M2backwardPin, 0);
}

void loop() {
  stopMotors();
  delay(1000);
  forward();
  delay(DELAY);
  backward();
  delay(DELAY);
  turnLeft();
  delay(DELAY);
  turnRight();
  delay(DELAY);
}
