Projeto Atual:

Programando Aplicativos com Javascript

06/01/2020

Programação e Robótica II - Parte 6

Ajustes nas Funções de Movimento

Antes de passar para tarefas mais complexas, fizemos pequenas mudanças nas funções esquerda() e direita().

Criamos uma variável para controlar o tempo de giro para conseguir um ângulo de giro próximo de  90°. Esse tempo precisa ser ajustado de acordo com a carga das pilhas e potência dos motores utilizados. Também passamos para dentro das funções a instrução de parar após o tempo do giro, deixando o programa principal mais limpo e fácil de entender.



Segue abaixo a listagem do código alterado:

int velocidade;
int tempo_giro;

// Fazer giro para a esquerda.
// Usa variável tempo_giro, para um ângulo próximo a 90 graus.
void esquerda() {
  direcao = 3;
  acionar_motores();
  delay(tempo_giro);
  parar();
}

// Fazer giro para a direita.
void direita() {
  direcao = 2;
  acionar_motores();
  delay(tempo_giro);
  parar();
}

void setup() {
  pinMode(2, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(A5, INPUT);
  pinMode(3, INPUT);

  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);

  velocidade = 150;
  tempo_giro = 270;
  digitalWrite(2, LOW);
}

void loop() {
  if (distancia() < 30) {
    parar();
    buzinar();
    esquerda();
  } else {
    avancar();
  }
  if (tem_luz()) {
    apagar_farol();
  } else {
    acender_farol();
  }
  delay(200);

}


Passar à Parte 7

Nenhum comentário:

Postar um comentário