Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Grupo 01 - Segue abaixo o código do uso de dois motores e dois sensores ultrassônicos. #3

Open
Anderson-MB opened this issue Oct 18, 2023 · 0 comments

Comments

@Anderson-MB
Copy link
Contributor

Montagem

Montagem_Motores_Sensores

Código

// Código para a utilização de dois sensores ultrassônicos e dois motores:

// Definindo as portas echos e triggers

#define echoPin_frente 5
#define trigPin_frente 4
#define echoPin_costas 6
#define trigPin_costas 7

// Motores

int IN1 = 8;
int IN2 = 9;
int IN3 = 10;
int IN4 = 12;

// Variáveis sem sinal no intervalo de 0 a 255

unsigned int duracao = 0;
unsigned int distancia = 0;

void setup(){
  
  // Informando as entradas e as saídas
  
  // Sensores
  
  pinMode(echoPin_frente, INPUT);
  pinMode(trigPin_frente, OUTPUT);
  pinMode(echoPin_costas, INPUT);
  pinMode(trigPin_costas, OUTPUT);
  
  // Motores
  
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  
  // Criando um monitor serial para informar os resultados
  
  Serial.begin(9600);
  
}

void loop(){
  
  // Funcionamento do sensor dianteiro
  
  digitalWrite(trigPin_frente, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin_frente, LOW);
  
  // Captação do sinal de onda dianteiro
  
  duracao = pulseIn(echoPin_frente, HIGH);
  
  // Velocidade do som se propagando no ar dada por: "[(343,5 * 100)/10e6]/2 = 0,017175"  
  
  distancia = duracao * 0.017175;
  
  // Localiza se inimigo está visível a frente
  
  if(distancia <= 45){
  
  	Serial.print(distancia);
  	Serial.println("cm --- Adversario a frente");
  	delayMicroseconds(10);
    
    // Carro para frente
  
    digitalWrite(IN1, HIGH);
  	digitalWrite(IN2, LOW);
  	digitalWrite(IN3, HIGH);
  	digitalWrite(IN4, LOW);
    
    delayMicroseconds(10);
    
  }
  
  else{
  
  	Serial.print(distancia);
  	Serial.println("cm --- Adversario fora de vista");
  	delayMicroseconds(10);
    
    // Funcionamento do sensor traseiro
    
  	digitalWrite(trigPin_costas, HIGH);
  	delayMicroseconds(10);
  	digitalWrite(trigPin_costas, LOW);
    
    // Captação do sinal de onda traseiro
    
    duracao = pulseIn(echoPin_costas, HIGH);
  
  	distancia = duracao * 0.017175;
    
    // Localiza se inimigo está visível atrás
    
    if(distancia <= 45){
  
      Serial.print(distancia);
      Serial.println("cm --- Adversario na retaguarda");
      delayMicroseconds(10);
      
      //Carro girando no próprio eixo até a direção do adversário
  
      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
      
      delayMicroseconds(10);
    
    }
  
  	else{
  
      Serial.print(distancia);
      Serial.println("cm --- Adversario fora de vista");
      delayMicroseconds(10);
      
      //Carro girando no próprio eixo até encontrar o adversário
  
      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
      
      delayMicroseconds(10);
    
    }
  
  }
  
}
@Anderson-MB Anderson-MB changed the title Segue abaixo o código do uso de dois motores e dois sensores ultrassônicos. Grupo 01 - Segue abaixo o código do uso de dois motores e dois sensores ultrassônicos. Oct 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant