Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
2.6 kB
7
Indexable
Never
#define IN1 4
#define IN2 5
#define IN3 6
#define IN4 7
#define EN_A 10
#define EN_B 9

int velocidade = 150;
int atraso = 10;

void parar(){
  Serial.println("PARAR");
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, HIGH);  
  digitalWrite(IN3, HIGH);  
  digitalWrite(IN4, HIGH);    
}

void frente(){
  parar();
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);  
  digitalWrite(IN3, HIGH);  
  digitalWrite(IN4, LOW); 

  analogWrite(EN_A, velocidade);
  analogWrite(EN_B, velocidade);
}

void atras(){
  parar();
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);  
  digitalWrite(IN3, LOW);  
  digitalWrite(IN4, HIGH); 

  analogWrite(EN_A, velocidade);
  analogWrite(EN_B, velocidade);
}

void direita(){
  parar();
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);

  analogWrite(EN_A, velocidade);
}

void esquerda(){
  parar();
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);

  analogWrite(EN_B, velocidade);
}

void atras_direita(){
  parar();
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);

  analogWrite(EN_A, velocidade);
}

void atras_esquerda(){
  parar();
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);

  analogWrite(EN_B, velocidade);
}

void aumenta_velocidade(){
  velocidade = 250;  
}

void diminui_velocidade(){
  velocidade = 140;  
}

void setup() {
 pinMode(IN1, OUTPUT);
 pinMode(IN2, OUTPUT);
 pinMode(IN3, OUTPUT);
 pinMode(IN4, OUTPUT);
 pinMode(EN_A, OUTPUT);
 pinMode(EN_B, OUTPUT);

 Serial.begin(9600);
}

void loop() {
  if(Serial.available()){

    char x = Serial.read();
    Serial.println(x);

    switch(x){
      case 'F': 
        frente();
        delay(atraso);
      break;
      case 'B': 
        atras();
        delay(atraso);
      break;
      case 'R': 
        direita();
        delay(atraso);
      break;
      case 'L': 
        esquerda();
        delay(atraso);
      break;
      case 'G': 
        esquerda();
        frente();
        delay(atraso);
      break;
      case 'I': 
        direita();
        frente();
        delay(atraso);
      break;
      case 'H': 
        atras_esquerda();
        atras();
        delay(atraso);
      break;
      case 'J': 
        atras_direita();
        atras();
        delay(atraso);
      break;
      case 'X': 
        aumenta_velocidade();
      break;
      case 'x': 
        diminui_velocidade();
      break;
      case 'S': 
        parar();
      break;
      
      default:
        parar();
      break;
    }
  }
}