Buscar

carro controle bluetooth

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Carro controlado por Bluetooth 
Material Utilizado: 
• Módulo Bluetooth - HC-06 (ou HC-05) 
• Conversor de nível lógico RC 
• Ponte H L298N 
• Motor DC (no meu caso kit acompanha com chassi) 
• Mini Breadboard 
 
1. Conexões 
 
Ou sem conversor: 
 
 
 
 
2. Depois de tudo conectado faça a configuração do Módulo Bluetooth - HC-06 
Agora faça o upload do código abaixo no Arduino: 
 
//Include the SoftwareSerial library 
#include "SoftwareSerial.h" 
 
//Create a new software serial 
SoftwareSerial bluetooth(2, 3); //TX, RX (Bluetooth) 
 
void setup() { 
 //Initialize the hardware serial 
 Serial.begin(9600); 
 Serial.println(F("Type the AT commands:")); 
 
 //Initialize the software serial 
 bluetooth.begin(9600); 
} 
 
void loop() { 
 //Check received a byte from hardware serial 
 if (Serial.available()) { 
 char r = Serial.read(); //Read and save the byte 
 bluetooth.print(r); //Send the byte to bluetooth by software serial 
 Serial.print(r); //Echo 
 } 
 //Check received a byte from bluetooth by software serial 
 if (bluetooth.available()) { 
 char r = bluetooth.read(); //Read and save the byte 
 Serial.print(r); //Print the byte to hardware serial 
 } 
} 
O que esse código faz basicamente é enviar para o Módulo Bluetooth tudo o que é recebido 
pela Serial e enviar para a Serial conectada ao computador tudo que é recebido do Módulo 
Bluetooth. Deste modo, o Arduino atua apenas como uma ponte de comunicação entre o 
Módulo Bluetooth e o computador. 
Após fazer o upload, se tudo estiver correto, você deve observar o led do módulo piscando 
rapidamente. 
Agora abra seu Monitor Serial, selecione "Both NL & CR" e "9600 baud" conforme a imagem 
abaixo: 
 
 
 
Precisamos informar para o módulo que queremos enviar comandos AT, para isso pressione o 
botão no canto inferior direito do módulo (próximo a barra de pinos). Esse botão serve para, 
entre outras coisas, informar ao módulo que queremos entrar no modo de comandos AT. 
 
Pronto: agora já podemos enviar nosso primeiro comando AT! 
 
Digite AT no seu monitor serial e envie o comando. 
O Módulo deve responder com "OK" indicando que ele está recebendo os comandos. 
Digite AT+STATE? e ele deve responder com "+STATE:PAIRABLE" seguido de um "OK" 
conforme a imagem abaixo: 
 
 
Caso o módulo não responda, tente apertar o botão novamente. Se ainda assim não funcionar, 
pode ser que o módulo já tenha sido configurado e que o baud rate não seja mais 9600. 
Se for o caso, tente alterar o baud rate no código na linha "bluetooth.begin(9600);". Tente 
alterar por 38400 que é um valor padrão quando o módulo é resetado para as configurações de 
fábrica. Faça o upload do código e tente novamente. 
 
Agora vamos digitar os seguintes comandos em sequência: 
• AT+NAME=BlackBoard-01 - Altera o nome para do módulo para "BlackBoard-01"; 
• AT+PSWD=321rc - Altera a senha para "321rc" 
• AT+UART=38400,0,0 - Altera o Baud para 38400, 1 stop bit e nenhum bit de paridade. 
• AT+RESET - Reseta o Módulo e aplica as alterações feitas. 
Ao final você deve ver algo parecido com essa imagem: 
 
 
 
Se você tentar enviar um comando para o módulo, perceberá que ele não responderá. Isso se 
deve ao fato de termos alterado o baud rate da comunicação, que antes era 9600 e agora é 
de 38400. 
Para se comunicar com o módulo e fazer mais configurações você deve agora modificar no 
código "bluetooth.begin(9600);" o baud rate com o qual o Arduino se comunica com ele 
de 9600 para 38400. 
 
(retirado de robecore.net) 
 
 
3. Tudo funcionou? Ok! Agora é fazer upload do código abaixo: 
 
//Include the SoftwareSerial library 
#include "SoftwareSerial.h" 
 
//Create a new software serial 
SoftwareSerial bluetooth(2, 3); //TX, RX (Bluetooth) 
 
//Motor Esquerda 
int IN1 = 4; 
int IN2 = 5; 
int ENA = 9; 
int IN3 = 6; 
int IN4 = 7; 
int ENB = 10; 
 
//Velocidade do Motor 
int velocidade = 180; //Este valor pode variar de 0-255, como a fonte de 
alimentação é de 11,2V 
//e a tensão max do motor 7,2V é necessario limitar a saída de tensão! 
float vel = 0; 
float a = vel / 3; 
char letra; //Cria uma variável char para armazenamento dos caraceteres lidos 
 
void setup() { 
 
 pinMode(IN1, OUTPUT); //inicializa os pinos de controle como saída 
 pinMode(IN2, OUTPUT); 
 pinMode(IN3, OUTPUT); 
 pinMode(IN4, OUTPUT); 
 pinMode(ENA, OUTPUT); 
 pinMode(ENB, OUTPUT); 
 analogWrite(ENA, LOW); //desativa os motor, para o carrinho nao sair 
anadando durante inicialização 
 analogWrite(ENB, LOW); 
 
 blueToothSerial.begin(9600); //Inicia a Serial com um Baud Rate de 9600bps 
 
} 
 
void loop() 
{ 
 if (blueToothSerial.available() > 0) //Se algo for recebido na serial faz: 
 { 
 controle_velocidade();//chama função controle Velocidade 
 float a = vel / 3; //variavel que reduz velocidade de um dos motores na curva 
 controle_direcao(); //chama função controle Direção 
 
 delay(250); //Delay de 250 milissegundos 
 letra = 0;//Limpa a variável letra 
 } 
} 
 
 
 
void controle_velocidade(){ 
 letra = blueToothSerial.read(); //Armazena o que foi recebido na variável letra 
 if (letra == '1') { 
 vel = velocidade * 0.10; 
 } 
 else if (letra == '2') { 
 vel = velocidade * 0.20; //cuidar para multiplicação retorne valor inteiro!!! 
 } 
 else if (letra == '3') { 
 vel = velocidade * 0.30; 
 } 
 else if (letra == '4') { 
 vel = velocidade * 0.40; 
 } 
 else if (letra == '5') { 
 vel = velocidade * 0.50; 
 } 
 else if (letra == '6') { 
 vel = velocidade * 0.60; 
 } 
 else if (letra == '7') { 
 vel = velocidade * 0.70; 
 } 
 else if (letra == '8') { 
 vel = velocidade * 0.80; 
 } 
 else if (letra == '9') { 
 vel = velocidade * 0.90; 
 } 
} 
 
 
void controle_direcao() { 
 
 //CONTROLE DE DIREÇÃO 
 switch (letra) //Entra no switch para a comparação do caractere recebido 
 { 
 case 'F'://FRENTE //Caso o caracter for igual a F, vai pra FRENTE 
 analogWrite(ENA, vel); 
 analogWrite(ENB, vel); 
 digitalWrite(IN1, HIGH);//anda para frente 
 digitalWrite(IN2, LOW); 
 digitalWrite(IN3, HIGH); 
 digitalWrite(IN4, LOW); 
 break; //Sai do switch 
 
 case 'G'://Curva Esquerda para frente 
 analogWrite(ENB, a); //metade velocidade motor esquerdo 
 analogWrite(ENA, vel); 
 digitalWrite(IN1, HIGH); 
 digitalWrite(IN2, LOW); 
 digitalWrite(IN3, HIGH); 
 digitalWrite(IN4, LOW); 
 break; //Sai do switch 
 
 case 'I'://Curva Direita para frente 
 analogWrite(ENA, a); //metade velocidade motor direito 
 analogWrite(ENB, vel); 
 digitalWrite(IN1, HIGH); 
 digitalWrite(IN2, LOW); 
 digitalWrite(IN3, HIGH); 
 digitalWrite(IN4, LOW); 
 break; //Sai do switch 
 
 case 'B'://TRÁS //Caso o caracter for igual a B, vai pra TRAS 
 analogWrite(ENA, vel); 
 analogWrite(ENB, vel); 
 digitalWrite(IN1, LOW); //para Tras 
 digitalWrite(IN2, HIGH); 
 digitalWrite(IN3, LOW); 
 digitalWrite(IN4, HIGH); 
 break; //Sai do switch 
 
 case 'H'://Curva Esquerda para traz 
 analogWrite(ENB, a); //metade velocidade motor esquerdo 
 analogWrite(ENA, vel); 
 digitalWrite(IN1, LOW); //para Tras 
 digitalWrite(IN2, HIGH); 
 digitalWrite(IN3, LOW); 
 digitalWrite(IN4, HIGH); 
 break; //Sai do switch 
 
 case 'J'://Curva Direitapara traz 
 analogWrite(ENB, vel); 
 analogWrite(ENA, a);//metade velocidade motor direito 
 digitalWrite(IN1, LOW); //para Tras 
 digitalWrite(IN2, HIGH); 
 digitalWrite(IN3, LOW); 
 digitalWrite(IN4, HIGH); 
 break; //Sai do switch 
 
 case 'L'://Gira Esquerda 
 analogWrite(ENA, vel); 
 analogWrite(ENB, vel); 
 digitalWrite(IN1, LOW);//Gira p/ Esquerda 
 digitalWrite(IN2, HIGH); 
 digitalWrite(IN3, HIGH); 
 digitalWrite(IN4, LOW); 
 break; //Sai do switch 
 
 case 'R'://Gira Direita 
 analogWrite(ENA, vel); 
 analogWrite(ENB, vel); 
 digitalWrite(IN1, HIGH);//Gira p/ Direita 
 digitalWrite(IN2, LOW); 
 digitalWrite(IN3, LOW); 
 digitalWrite(IN4, HIGH); 
 break; //Sai do switch 
 
 case 'S'://Parado 
 digitalWrite(IN1, LOW);//Parado 
 digitalWrite(IN2, LOW); 
 digitalWrite(IN3, LOW); 
 digitalWrite(IN4, LOW); 
 break; //Sai do switch 
 } 
} 
 
 
 
 
 
4. Baixar o aplicativo no celular. Utilizado foi:

Continue navegando