PROJETO ROBÓTICA IFNMG - codigo comentado carRobo cmd2bne6
#include <SoftwareSerial.h> // Inclui a biblioteca para utilizar comunicação serial
#define motorA1 8 // Define o pino do motor A1
#define motorA2 9 // Define o pino do motor A2
#define motorB1 3 // Define o pino do motor B1
#define motorB2 4 // Define o pino do motor B2
SoftwareSerial bt(10, 11); //RX, TX - Cria uma porta serial virtual com os pinos 10 e 11
void setup(){
pinMode(motorA1, OUTPUT); // Define o pino do motor A1 como saída
pinMode(motorA2, OUTPUT); // Define o pino do motor A2 como saída
pinMode(motorB1, OUTPUT); // Define o pino do motor B1 como saída
pinMode(motorB2, OUTPUT); // Define o pino do motor B2 como saída
bt.begin(9600); // Inicia a comunicação serial com a taxa de transmissão de 9600 bauds
}
void paraMotor(){ // Função para parar o robô
digitalWrite(motorA1, LOW);
digitalWrite(motorA2, LOW);
digitalWrite(motorB1, LOW);
digitalWrite(motorB2, LOW);
}
void moveFrente(){ // Função para movimentar o robô para frente
// Configura os pinos dos motores A e B para moverem o robô para frente:
digitalWrite(motorA1, HIGH);
digitalWrite(motorA2, LOW);
digitalWrite(motorB1, HIGH);
digitalWrite(motorB2, LOW);
}
void moveTras(){ // Função para movimentar o robô para trás
// Configura os pinos dos motores A e B para moverem o robô para trás:
digitalWrite(motorA1, LOW);
digitalWrite(motorA2, HIGH);
digitalWrite(motorB1, LOW);
digitalWrite(motorB2, HIGH);
}
void moveFrenteDireita(){ // Função para movimentar o robô para frente em direção à direita
// Configura os pinos dos motores A e B para moverem o robô para frente e para a direita:
digitalWrite(motorA1, HIGH);
digitalWrite(motorA2, LOW);
digitalWrite(motorB1, LOW);
digitalWrite(motorB2, LOW);
}
void moveTrasDireita(){ // Função para movimentar o robô para trás em direção à direita
// Configura os pinos dos motores A e B para moverem o robô para trás e para a direita:
digitalWrite(motorA1, LOW);
digitalWrite(motorA2, HIGH);
digitalWrite(motorB1, LOW);
digitalWrite(motorB2, LOW);
}
void moveFrenteEsquerda(){ // Função para movimentar o robô para frente em direção à esquerda
// Configura os pinos dos motores A e B para moverem o robô para frente e para a esquerda:
digitalWrite(motorA1, LOW);
digitalWrite(motorA2, LOW);
digitalWrite(motorB1, HIGH);
digitalWrite(motorB2, LOW);
}
void moveTrasEsquerda(){ // Função para movimentar o robô para trás em direção à esquerda
// Configura os pinos dos motores A e B para moverem o robô para trás e para a esquerda:
digitalWrite(motorA1, LOW);
digitalWrite(motorA2, LOW);
digitalWrite(motorB1, LOW);
digitalWrite(motorB2, HIGH);
}
void loop(){
char valor_bt = bt.read(); // Lê o valor recebido pela porta serial virtual
//Verifica qual valor foi lido e chama a função correspondente para mover o robô na direção desejada:
if(valor_bt=='f'){
moveFrente();
}
else if(valor_bt=='t'){
moveTras();
}
else if(valor_bt=='d'){
moveFrenteDireita();
}
else if(valor_bt=='y'){
moveTrasDireita();
}
else if(valor_bt=='e') {
moveFrenteEsquerda();
}
else if(valor_bt=='x'){
moveTrasEsquerda();
}
else if(valor_bt=='p'){
paraMotor();
}
}