29 março 2013

Acionando portas do Arduino usando Android e bluetooth

Hoje vou mostrar um esquema bem simples (pelo menos eu espero que seja) para controlar as portas do Arduino usando bluetooth e o módulo bluetooth JY-MCU HC-06, que exploramos em um artigo anterior.

Arduino Android Bluetooth

Se você perdeu, não deixe de ler o artigo sobre configuração do módulo HC-06, que vai te ensinar como mudar alguns parâmetros desse módulo, inclusive a senha e o nome padrão de fábrica. ;-)

Atualizado em 26.06.2014 : Monitore as portas do seu Arduino via bluetooth no celular. Veja como no artigo Enviando dados do Arduino para o Android usando bluetooth. Sua idéia é controlar um servo motor ? Veja o artigo Controlando um servo motor utilizando Android e Bluetooth. Envie um texto/string para o Arduino via Bluetooth, usando as instruções do artigo Enviando texto do Android para o Arduino usando bluetooth.

Utilizarei o seguinte material :
  • Arduino Uno
  • Modulo bluetooth JY-MCU com nível de sinal de 5 volts. ATENÇÃO AO MÓDULO : Se o seu módulo BT trabalha com nível de tensão de 3.3 no pino de sinal, utilize um divisor de tensão para evitar a queima do módulo, já que o Arduino trabalha com 5v. Exemplo de ligação do módulo de 3.3 v você encontra no artigo  Enviando dados do Arduino para o Android usando bluetooth.
  • 3 leds de cores diferentes
  • 3 resistores de 330 R
  • Celular ou outro dispositivo com Android e conexão bluetooth
Antes de mais nada, carregue o seguinte programa no Arduino. Vou fazer isso antes de montar o circuito, porque a conexão do módulo bluetooth também utiliza comunicação serial, e isso pode interferir na comunicação com o computador :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Programa : Controle de Leds pelo Android utilizando Bluetooth  
// Autor : Arduino e Cia  
//  
// Programa utilizado para controlar as portas do Arduino via celular  
// usando o programa Microcontroller BT (Android)  
// O Arduino deve estar desconectado do computador, já 
// que o módulo Bluetooth também usa a comunicação serial, o que 
// pode gerar conflito de dados.  
    
void setup()  
{  
  Serial.begin(9600);  
  //Abaixo, as portas quer serão ativadas pelo celular, via Bluetooth  
  pinMode(5,OUTPUT);  
  pinMode(6,OUTPUT);  
  pinMode(7,OUTPUT);  
}  
    
void loop()  
{  
  if(Serial.available()>=2)  
  {  
    int key=Serial.read();  
    int val=Serial.read();  
    digitalWrite(key,val);  
  }  
} 

Após carregar o programa, desligue o cabo usb do arduino, e utilize uma fonte externa. Eu utilizei uma fonte de 9v que "roubei" de um roteador.

Monte o circuito abaixo, com atenção à conexão do módulo bluetooth, já que a conexão TX do módulo é ligado ao RX do Arduino (porta digital 0), e o RX do módulo é ligado ao TX do Arduino (porta digital 1) :

acionando arduino android bluetooth
Montado o circuito, Vamos à parte do Android.

Entre no Google Play e procure por um aplicativo chamado MicroController BT. O aplicativo pode ser baixado clicando aqui.

Ao entrar no aplicativo, vc verá uma tela parecida com essa :

Microcontroler BT - Tela Principal

Clique no botão MENU, no seu celular, e na opção "NEW LAYOUT" :

Microcontroler BT - New Layout

Adicione um nome ao seu layout, usarei LED BLUETOOTH :

Microcontroler BT - Nome layout

Após digitar o nome, o programa volta para a tela anterior, com o layout em branco, e o nome do layout escolhido no canto superior esquerdo :

Microcontroler BT - Layout em branco

Clique novamente o botão MENU, e em "EDIT MODE":

Microcontroler BT - Edit mode

Note que a parte superior do layout ficará vermelha, indicando que vc está no modo de edição. Arraste a aba na parte inferior, até que aparecam os botões que podem ser adicionados ao layout :

Microcontroler BT - Modo de edição

Clique no segundo botão, e segure até que o mesmo apareça na tela principal do layout :

Microcontroler BT - botão

Faça este procedimento 3 vezes, vamos criar um botão para cada led. Sua tela ficará assim :

Microcontroler BT - 3 botões

Agora vamos configurar o primeiro botão para acender o led verde, utilizando a porta 5. Clique no primeiro botão, a seguinte tela irá aparecer :

Microcontroler BT - Propriedades botão

Mude o valor de "SET KEY" para "5", e clique em "Done", repita o procedimento para os outros botões, alterando o valor de "set key" para 6, no caso do botão amarelo, e para 7, no caso do botão vermelho. a configuração de cada um ficará assim :

Microcontroler BT - Definindo portas
Configuração Botão Verde

Microcontroler BT - Botao Amarelo
Configuração Botão Amarelo

Microcontroler BT - Botao Vermelho
Configuração Botão Vermelho

Na parte de baixo da tela de configuração, note que vc tem a opção de mudar o texto do botão. No meu caso, mudei para Verde, Amarelo e Vermelho :

Microcontroler BT - Edição terminada

Terminada a parte de configuração, basta apertar a teclar RETORNAR, no seu celular. Note que o layout ficara na cor cinza novamente, indicando que você saiu do modo de edição :

Microcontroler BT - Layout pronto

Clique no botão MENU, depois em "Connnect" :

Microcontroler BT - Conectar

Escolha o dispositivo bluetooth, que deve estar previamente pareado com o seu aparelho, e após alguns segundos o layout do programa ficará verde, indicando que o mesmo está conectado ao módulo :

Microcontroler BT - Conectado

Feito isso, basta clicar no ícone correspondente ao led, que o mesmo acenderá. É uma demonstração simples de acionamento de portas pelo  bluetooth, mas que pode facilmente ser utilizada para acionar motores, reles, e outros dispositivos.

Em breve publicarei um video no youtube com este esquema, que pode ajudar na configuração do Android. Até breve !


210 comentários:

  1. Parabéns pelo tutorial.

    Antes de ler este tutorial eu configurei o bluetooth de acordo com o tutorial anterior e então tudo funcionou perfeitamente aqui no android!

    ResponderExcluir
    Respostas
    1. Obrigado pela visita e pelos comentários. Abraço !

      Excluir
    2. aff. so vc msm para comentar seu proprio comentario. kakakaka
      legal o tutorial. depois vou fazer.
      abraços

      Excluir
    3. Muito didático e explicativo,. Parabéns =D

      Excluir
  2. Parabens pelo tutorial ,gostaria de ajuda sobre o seguinye ,faço tudo como no tutorial porem após sair do aplicativo e iniciar fica tudo como inicia o programa dai tenho que criar o layout tudo di novo ou seja não esta salvando

    ResponderExcluir
    Respostas
    1. Ola Rodrigo !

      Se não me engano, o microControllerBT aceita salvar o layout apenas na versão paga. Até por isso acabei adquirindo a licença, mas vale cada centavo. ;-)

      Muito obrigado pela visita. Abraço !

      Excluir
    2. como adquirir a licença, e qual o valor?

      Excluir
    3. Boa tarde,

      Isso é direto no Google Play. Eu paguei 5 dólares a licença.

      Abraço.

      Excluir
  3. Muito bom,no meu caso eu tenho que acionar um rele usando o smartphone e o modulo bluetooth,mas esse tutorial deu uma clareada ;)

    ResponderExcluir
    Respostas
    1. Oi Thiago !

      Obrigado pela visita. Estou preparando um post nesse sentido, mostrando como ligar o Arduino à um relé, que por sua vez acende a lâmpada de um cômodo via bluetooth. Grande abraço !

      Excluir
  4. Ótimo tutorial. Por acaso eu consigo usar o microControllerBT para controlar o Arduino por wifi?


    ResponderExcluir
    Respostas
    1. Boa tarde e obrigado. O microControllerBT só funciona via bluetooth mesmo. Mas gostei da sugestão, seria muito bom se ele funcionasse via wifi, acho que vou sugerir isso ao desenvolvedor. Abraço !

      Excluir
  5. Bom dia, eu segue ambos os tutoriais(o de config que funcionou certinho e este) porém ao conectar no bluetooth o arduino trava, como estou sem fonte externa eu alimentei 5v pela porta usb usando uma bateria externa
    essa
    http://www.duracell.com.br/pt-BR/product/carregador-usb-instant.jsp

    a versão da minha placa é 1.05, sou novo com arduino ainda, não sei se pode ser a voltagem(vou testar com multimetro assim que eu conseguir um kk) ou se essa versão da placa que to usando precise de mais alguma coisa no código

    ResponderExcluir
    Respostas
    1. Boa tarde, você pode me falar exatamente o que acontece ? O Arduino trava ou é o módulo bluetooth que não aceita comandos do celular ?

      Excluir
    2. fica como se o modulo não aceitasse o comando, ele conecta, tem alguma forma de eu ver quais os comandos que o modulo recebe?

      Excluir
    3. bom dia, testei novamente o módulo, com fonte externa, ele não trava, conecta tudo certinho PORÉM ele não ta recebendo os comandos, segui o tutorial do led e não funcionou, então modifiquei e usei o led 13 que seria o da placa, e mesmo assim não funcionou, tem alguma ideia do que fazer?

      Excluir
    4. Boa tarde, voce ja tentou parear o módulo novamente com o seu celular ? No meu, aconteceu algo parecido, que ele não aceitava os comandos, e eu tive que apagar o módulo da memória do celular, e parear novamente, aí voltou a funcionar.

      Excluir
    5. testei isso ontem, e mesmo assim não funcionou, vou chegar hoje e tentar alguma outra coisa, se tiver alguma outra ideia é extremamente válida :D

      Excluir
    6. pesquisei em alguns locais sobre isso e achei a seguinte alternativa que ao menos isso funcionou pra mim o pino TXD eu liguei no RX do arduino e o RXD eu liguei no TX feito isso testei novamente, e funcionou os comandos :D

      Excluir
    7. Boa tarde. Ótimo ! era apenas um erro de ligação, então. Essa ligação RX - TX e TX - RX consta no diagrama do artigo. Abraços e obrigado !

      Excluir
  6. Caro amigo, tutorial muito bem elaborado, parabéns. Gostaria de saber se é possível mostrar em um LCD, qual porta está acionada? Ex:
    P10 = ON
    P12 = OFF

    ResponderExcluir
    Respostas
    1. Muito obrigado. Sim, é possível, e vou mostrar isso em um artigo que estou montando sobre um controle de entrada e saída usando led infravermelho. Abraço.

      Excluir
  7. Boa tarde amigo gostei muito do seu tutorial, gostaria de saber se você tem algum tutorial de arduino, e se você da aula, tipo por skype. Preciso de algumas diga e tirar duvidas tem e-mail que posso entrar em contato
    Obrigado

    ResponderExcluir
  8. Olá Cristiano ! Ainda não tenho um tutorial de Arduino, estou pensando em montar um, mas preciso arrumar "tempo" pra isso, rs. Mas é um dos meus projetos. Você pode entrar em contato comigo utilizando o formulário de contato na página do Arduino e Cia. Obrigado !

    ResponderExcluir
  9. Sabe qual o alcance máximo desse modulo de bluetooth.

    Abraço,
    Fernando

    ResponderExcluir
  10. Boas. Não consigo fazer acender os LEDs, consigo ligar o bluetooth do android ao do arduino, mas quando mando ligar os LEDs não faz nada. Pode-me dizer se faz diferença se o Bluetooth do arduino for cliente ou servidor?

    ResponderExcluir
    Respostas
    1. Bom dia Carlos. No aplicativo do Android, a interface só pode ser salva na versão paga do aplicativo. Abraço !

      Excluir
  11. Bom dia ! Tente colocar alguns comandos para enviar o resultado para o serial monitor, e veja se o problema não está na montagem do circuito. Nesse caso, o bluetooth está sendo usado como servidor. Abraço !

    ResponderExcluir
  12. Arduino e Cia, estou com o mesmo problema do rui possuo um arduino nano, que tipo de comandos seriam estes?

    ResponderExcluir
    Respostas
    1. Boa tarde Ramon, os comandos a que eu me refiro são o Serial.begin(9600) e o Serial.print(). Assim você pode acompanhar no Serial Monitor se o Arduino está respondendo aos comandos e se o problema está no circuito. Abraço !

      Excluir
  13. Olá, estou com uma dúvida.
    No meu caso estou utilizando o arduino UNO e a shield de bluetooth, conseguiria fazer esse mesmo tipo de conexão ? entendo que como não estou usando uma protoboard não é possivel ligar os leds para testar e tal...

    ResponderExcluir
    Respostas
    1. Bom dia Allan ! Você pode testar com o led da placa do Arduino (porta 13). No programa, troque essa linha :

      pinMode(5,OUTPUT);

      por essa :

      pinMode(13,OUTPUT);

      E na hora de configurar o botão do led verde no celular, troque o 5 pelo 13, que é a porta que será acionada. Qualquer dúvida, é só perguntar.

      Abraço !

      Excluir
    2. Boa noite, fiz exatamente como disse, como o meu shield é da itead o v2.2 não aparece linvor quando conecta e sim itead.
      Mudei o pino como disse, porém não obtive sucesso...
      Mesmo mudando o pino no compilador e no app do android para o pino 13, ele não da ação nenhuma...

      Excluir
    3. Boa dia Allan. O resto da conexão está normal ? Tipo.. o bluetooth pareia, você consegue ver se a comunicação entre o módulo BT e o Arduino está normal ?

      Excluir
    4. Sim, consigo parear, se pelo aplicativo entrar no modo de comando, eu consigo ver os comandos do Bluetooth passando quando mando um comando AT pra ele, via este modo...
      Obrigado

      Excluir
    5. Oi Allan, eu sei que a porta 13 tem algumas restrições, e não sei se isso está interferindo. Tive uma outra idéia, não muito bonita de se fazer, mas que pelo menos você consegue testar o led em outra porta : Use uma porta digital, por exemplo, a 8, coloque ali um resistor, encoste no led, e a outra ponta voce coloca na porta GND do Arduino (ao lado da porta 13), não esquecendo de ver a polaridade correta. Vamos ver se funciona. Abraço.

      Excluir
    6. Olá, muito obrigado pela ajuda, depois de pensar um pouco mais resolvi fazer o seguinte esquema, mesmo utilizando a shield de bluetooth resolvi fazer a ligação da parte eletrica dela como o esquema que vc passou ai no tutorial, e pra minha felicidade funcionou perfeitamente...
      Porém, fiquei intrigado em pq no esquema de modulo separado funciona e conectado diretamente ao arduino não funciona ?

      Excluir
    7. Bom dia Allan ! Eu também achei muito estranho isso não funcionar. Vou arrumar um módulo para fazer uns testes e ver se consigo descobrir o problema. Muito obrigado pelo retorno. Abraço !

      Excluir
    8. Olá boa noite...
      Estou retornando ao topico por ser muito bom e ainda me restou uma duvida.
      É possivel monitorar a distancia do bluetooth, entre o arduino e o android mesmo que use outro aplicativo ou alguma outra forma de fazer ?

      Excluir
    9. Boa noite Alan... Interessante a sua pergunta. Eu realmente nunca vi nenhum método nesse sentido. Creio que uma localização por algum tipo de gps fosse o ideal.. até porque o Bluetooth tem teoricamente a limitação de distância de conexão de 10 metros. Vou procurar me informar e se você tiver novidades sobre isso, poste aqui pra gente. Abraço e obrigado !

      Excluir
    10. Boa tarde, é eu realmente pesquisei a fundo e não encontrei nada a respeito do bluetooth calcular distancia, no caso somente um sensor especifico para fazer este tipo de calculo, como no caso do sensor ultra-sônico e afins...
      Muito obrigado por tirar minhas duvidas, sei que ja estou sendo chato, mas teria como responder mais uma coisa ?
      Estou tentando adicionar um buzzer a este tutorial, infelizmente não estou obtendo sucesso, poderia me auxiliar nas ligações dele ?
      Obrigado

      Excluir
    11. Bom dia Allan ! Fique a vontade. Estamos aqui para tentar ajudar. :-)

      Que tipo de buzzer vc tem ? um módulo ou apenas o componente ?

      Abraço e obrigado.

      Excluir
  14. Boa Tarde, comprei um Bluetooth Shield Hc-05 Master e Slave e estou com dificuldade, não estou conseguindo que meu dispositivo android reconheça, você poderia me dar uma ajuda quanto a isso? obrigado

    ResponderExcluir
    Respostas
    1. Boa noite Gledson, posso tentar, mas não tenho esse módulo para teste aqui no momento. O que está acontecendo ? Não consegue parear ? Abraço.

      Excluir
  15. Boa tarde ,estou com uma duvida fiz todas configurações direitinho,carreguei o progama no arduino ,conenecto o cel pelo Bluetooth,mas não esta acionando os Leds ,o que devo fazer .
    desde ja agradeço.

    ResponderExcluir
    Respostas
    1. Boa noite JJ, veja se os leds estão na polaridade correta, e também se o TX do módulo está ligado ao RX do Arduino, e se o RX do módulo está ligado ao TX do Arduíno, por favor. Se não funcionar, volte aqui que tentaremos descobrir o que acontece. Abraço !

      Excluir
  16. nÃO CONSIGO CONFIGURAR O MEU MODULO BLUETOOTH. OQ FAÇO?

    ResponderExcluir
    Respostas
    1. Bom dia. Em qual parte do tutorial você está ?

      Excluir
  17. Não consigo configurar meu modulo, sendo que já configurei uma vez só e depois não consegui mais. Me ajude.

    ResponderExcluir
    Respostas
    1. Bom dia. Me diga qual erro está apresentando. Abraço.

      Excluir
  18. Boa tarde, estou trabalhando num projeto para controlar o protótipo Rover 5 utilizando a placa Arduino UNO R3, sendo que ela é controlada via bluetooth, e o módulo que estou utilizando é o
    Bluetooth Mate Silver, é a primeira vez que trabalho nisso,poderia me dar um auxilio na questão da ligação com a placa Arduino e a configuração do módulo bluetooth desde já agradeço.

    ResponderExcluir
    Respostas
    1. Bom dia Alan, não conheço esse módulo específico, mas pelo que andei pesquisando a ligação é muito parecida com a ligação que usei nesse tutorial. Você chegou a iniciar alguma ligação ? Abraço.

      Excluir
  19. PRECISO DE TUTORIAL, em que o meu android receba um som de aviso de um acelerômetro, via esse ou outro modulo Bluetooth.

    Como fazer isso?

    ResponderExcluir
  20. Para fazer o projeto de acender leds eu preciso primeiro configurar o bluetooth como no primeiro tutorial com os comandos AT?

    Pois fiz o projeto de leds me certifiquei que tudo esta correto nos circuitos rx + tx e tx + rx, mas mesmo assim consigo conectar porém nao aceita os comandos de acender e apagar, e testei na serial e qndo envio o comando funciona, ja desconectei a usb emparei os aparelhos mesmo assim nao consigo envir os comandos via bluetooth

    ResponderExcluir
    Respostas
    1. Boa noite. Não necessariamente, aqueles comandos AT são utilizados quando você quer mudar as configurações de fábrica do módulo JY-MCU. Qual módulo você possui ?

      Excluir
  21. Olá! tenho um módulo bluetooth BlueSmirf Silver, conectei ele no arduino, consegui conectar com o celular, porém ele quando envio os comandos, não acontece nada! Alguma ideia do que possa ser?

    ResponderExcluir
    Respostas
    1. Boa tarde Marilia. Ainda não tive oportunidade de mexer com este módulo, especificamente, mas verifique se o TX e o RX da conexão do módulo ao Arduino não estão invertidos.

      Excluir
  22. Tem como fazer leitura de pinos? analógicos ou digital?

    ResponderExcluir
    Respostas
    1. Bom dia. Tem sim. Na próxima quarta, dia 22/01, sai um post falando exatamente sobre isso. Abraço !

      Excluir
  23. Olá! Eu estou com um Arduino Nano 3.0 (Gravitech) e um módulo Bluetooth JY - MCU, ambos comprados no FILIPEFLOP e estou com algumas dúvidas:
    1 - esta é a ligação correta a ser feita, como mostra a seguinte imagem http://www.plastibots.com/wordpress/wp-content/uploads/2013/03/BluetoothHookupWeb.png , do módulo na placa?
    2 - A placa é Nano 3.0 (ATMEGA 328) já com bootloader, contudo não consigo acessá-la no enviroment da Arduino (penso que talvez por ser da Gravitech, mas segundo o próprio site da fabricante, é o mesmo software para desenvolvimento). Não sei se é algum problema com driver (uso windows 8 64 bits), dei uma leve pesquisada no Google, e parece ser este o problema destas placas. Contudo, não consegui de maneira alguma fazer o software reconhecer a placa para que eu possa inserir os códigos, pois o programa não me dá opções de mais serial ports que não seja COM1.

    No mais é isso, agradeço desde já a atenção e o belo tutorial, que vai me ajudar e muito no meu projeto!

    ResponderExcluir
    Respostas
    1. Bom dia Erick e muito obrigado pela visita.

      1 - Sim, esta é a ligação correta
      2 - Eu uso nos meus projetos um computador com Windows 7 64, tive alguns problemas com o Windows 8, especialmente na parte de drivers. Será que você consegue testar essa placa em outro computador, para ver se pelo menos a placa é reconhecida ? Você já verificou no painel de controle (Gerenciador de dispositivos), se a placa está apresentando erro de driver ?

      Abraço !

      Excluir
    2. Olá, volto com muitas dúvidas. Resolvi o problema do driver, a placa foi reconhecida. Contudo tenho dificuldades em configurar o Bluetooth. Tentarei dar uma explanada na situação: Montei o Arduino Nano no Módulo, conforme a imagem que mandei anteriormente (com resistores de 1k e 1k + 1.2k) e o módulo funcionou, bem como foi detectado por meu aparelho e devidamente conectado. Contudo, eu compilei primeiro o código desta página, e não do BT. Depois que vi que os leds não ligaram, voltei e tentei configurar o BT conforme explicado no outro post do site, mas ele não me responde de volta, apesar de acender um led vermelho no módulo.
      Eu quero fazer exatamente a ligação desta página, mas na seguinte configuração: Arduino Nano (atmega 328); Módulo BT JY - MCU; 3 Leds (R,G e B). Para tanto estou usando uma fonte 5v externa (e computador, obviamente, para configurar o arduino); 1 resistor de 1k, um resistor de 1k em série com 1.2k (era pra ser 2.2k, mas meu pai teve infelicidade de comprar errado); 3 Resistores 330R; Uma protoboard 170 furos.

      Eis que retorno em busca de conhecimento. Minhas tentativas de configurar ou programar foram frustradas. Meu módulo não está se comunicando com a placa, e creio ser esse o motivo do não funcionamento dos leds.

      Me pergunto se seria uma boa ideia tirar os resistores de 1k e 2.2k e fazer a ligação direta com a placa.

      Excluir
    3. Bom dia Erick.

      Não ligue diretamente o RX do módulo BT no Arduino, a não ser que o seu módulo tenha nível de sinal em 5 volts. Verifique no verso da placa a voltagem de nível de sinal (não confunda com a tensão de alimentação, que é de 5 volts).

      Quando você fala que o módulo não responde de volta, você está falando do serial monitor ? Você mudou a velocidade para 115.200 ?

      Abraço.

      Excluir
    4. Não liguei direto, mantive os resistores pra regular a tensão.
      Sim modificquei a velocidade pra 115,200 e não há resposta no serial monitor.

      Excluir
    5. Bom dia Erick. No módulo que eu tenho, no verso está escrito : Power:3.6-6v. 3.3v Level. O seu está assim ?

      Excluir
  24. Tem como fazer essa comunicação utilizando um bluetooth RS232 TTL?

    ResponderExcluir
    Respostas
    1. Bom dia, teoricamente dá pra fazer com qualquer tipo de módulo bluetooth. Você tem algum modelo específico ? Abraço !

      Excluir
    2. Boa noite, estou utilizando um arduino uno e esse modulo bluetooth que falei em cima o RS232 TTL. Eu faço tudo conforme você ensinou e quando peço pra acionar, ele nao acende o LED, e eu ja verifiquei e esta chegando tensão nele. Pensei que o LED estivesse queimado ou com a polarização invertida, mas quando desconectei o modulo do arduino e apenas passei o programa para o arduino e coloquei pra rodar, funcionou perfeitamente, o LED acendeu. E é só colocar o modulo que ele não pega, ja tentei fechar a comunicação manualmente, mas não funcionou.

      Excluir
    3. E o modelo que estou utilizando é esse do link, http://www.filipeflop.com/pd-6b87d-modulo-bluetooth-rs232-hc-06.html?ct=&p=1&s=1
      Eu estou começando a mexer, então você vendo as especificações, pode ser que fique mais facil de me entender, por eu não saber explicar bem.

      Excluir
    4. Boa tarde. Esse módulo utiliza 3.3 v nos pinos de sinal. Você colocou algum divisor de tensão nesse pino ?

      Excluir
    5. Não coloquei não, conectei direto no 5v. Será que foi isso então? Eu deveria ter posto um divisor de tensão... Espero nao ter queimado o modulo

      Excluir
    6. Pode ser, espero que não tenha danificado o módulo.

      Neste artigo aqui, eu mostro como usar um módulo de 3.3V e também como montar/calcular o divisor de tensão. Dê uma olhada, por favor :

      http://www.arduinoecia.com.br/2014/01/enviando-dados-do-arduino-para-o.html

      Abraço e, qualquer coisa, volte aqui. Valeu !

      Excluir
    7. Poxa, muito obrigada pela ajuda.
      Vou fazer isso que você disse e vou dar uma olhada no link que, qualquer coisa pode deixar que eu volto sim, com toda certeza.

      Excluir
    8. Eu que agradeço a visita. Abraço e até a próxima !

      Excluir
    9. Me deixe te incomodar mais um pouco. Se eu colocar o modulo no pino do arduino de 3.3v, vai dar no mesmo se eu fizer o divisor de tensão?

      Excluir
    10. Não, porque aí você teria só a tensão de 3.3v, e não o sinal de 3.3v. Uma coisa é a tensão de saída dos pinos de força, outra é a tensão dos pinos de sinal, que no Arduino é de 5v. Espero não ter complicado. rs. Abraço !

      Excluir
    11. Não complicou não, muito pelo contrario, entendi perfeitamente. Espero que até amanha eu consiga tentar fazer com o divisor, ai te falo se deu certo. Obrigada pela ajuda e explicação e rapidez.

      Excluir
    12. Acho que o tx e o rx do meu Arduíno ou o do modulo foram para o espaço mesmo, as luzes do Arduíno do tx e rx que acho deveriam indicar que esta "conectado" só da sinal quando jogo o tx do modulo no pino 10 do Arduíno e jogo o rx do modulo no pino 12 e mesmo assim dependendo da posição do jumper. Como preciso disso pra já, vou tentar fazer sem o Bluetooth e fazer pelo computador mesmo, você tem algum post que fale sobre isso?

      Excluir
    13. Puxa, que pena, mas não desanime. Eu também danifico uns componentes de vez em quando. é normal. rs.

      Me conte o que você precisa. Um circuito com 3 leds também ? Vai utilizar algum tipo de botão para acionamento ?

      Excluir
    14. Na verdade, vou usar um circuito com uma bomba, uma lampada e um culler. E eu não queria algo fisico para acionar, será que não tem um programa para pc que com o arduino conectado a ele via USB, eu não conseguiria pedir para acionar? Criar botões na tela do computador, mais ou menos isso.

      Excluir
    15. Entendi. Aí não seria muito a minha área. Eu já fiz alguns programas pra acionar as portas do Arduino pelo PC, mas já faz algum tempo, preciso retomar esse assunto. Talvez seja uma boa idéia eu criar algum programa pra isso e disponibilizar pros leitores do blog. Vou estudar isso.

      Excluir
  25. Olá,
    Eu estou começando a brincar com o Arduino, me desculpe até se minha dúvida for idiota..rs
    No caso eu entendi que o App Android repassa um único caractere int, com o conteúdo idêntico a porta que ele o led está conectado.

    Mas se por exemplo, eu quiser passar não um int, mas uma string do tipo #ON6# para ligar o led conectado a porta 6. Como que poderia codificar o loop{}

    ResponderExcluir
    Respostas
    1. Bom dia e obrigado pela mensagem.

      Olha, eu tive a mesma duvida quando estava escrevendo o ultimo artigo sobre bluetooth (Enviando dados do Arduino para o Android usando bluetooth), pois eu queria repassar uma string do Arduino para o celular e não consegui, e me parece que o programa Microcontroller BT não faz isso, até mandei um email para o desenvolvedor e estou aguardando resposta.

      Uma outra alternativa é usar um software chamado Bluetooth SPP, que não tem uma interface tão atraente como o microcontroller BT, mas funciona com string, int, long e qualquer outro tipo de informação. É como se fosse um serial monitor no seu celular.

      Nesse artigo do blog FILIPEFLOP eu mostro como utilizar esse programa :

      http://filipeflop.wordpress.com/2013/12/09/utilizando-modulo-bluetooth-hc-06-em-modo-slave-escravo/

      Espero que ajude. Grande abraço !

      Excluir
    2. Olá,

      Eu que agradeço por responder minha dúvida tão rápido.

      Ajudou bastante sim, gostei tanto do exemplo que até comprei um sensor DHT pra brincar.

      Eu cheguei a achar um app semelhante ao deste exemplo, mas ainda não testei: Universal Bluetooth SPP Remote. E eu acho que ele envia o texto que for associado ao botão, independente do tipo e do tamanho.

      Abraços

      Excluir
    3. Muito bacana, também vou dar uma olhada neste App.

      Ah, amanhã sai um post falando sobre como controlar um servo motor utilizando bluetooth e Android. Se puder, dê uma olhadinha também.

      Abraços e obrigado !

      Excluir
  26. Ola,
    Gostei muito do se tutorial e estou enteresado em montar, mas nao estou achando o modulo bluetooth para arduino, sera que vc poderia me indicar algum site onde poderia encontrar, para comprar ?

    ResponderExcluir
    Respostas
    1. Boa tarde Matheus, e obrigado pela visita.

      A FILIPEFLOP comercializa esse módulo e deve receber mais em breve, por favor acesse esse link e deixe o seu email para ser avisado quando o módulo estiver disponível :

      http://www.filipeflop.com/pd-6b87d-modulo-bluetooth-rs232-hc-06.html?ct=&p=1&s=1

      Abraço !

      Excluir
  27. oi estou fazendo um carrinho com um l293d para dois motores e o módulo bluetooth, eu consigo mover os motores tranquilamente porém quero mandar sinais analógicos para o pino 6 a fim de controlar a velocidade dos motores, e queria faze-lo tudo no mesmo código, poderia me ajudar?

    ResponderExcluir
    Respostas
    1. Bom dia ! Vamos lá. O que você já tem pronto desse projeto ?

      Abraço.

      Excluir
    2. bom dia eu eu estou usando um l293d controlado pelo arduino para controlar a velocidade e direção dos dois motores de 6v, e estou usando um módulo bluetooth jy-mcu hc-06 para acionar o arduino que acionara o l293d.

      Problema: o módulo funciona e o l293d também, porém ao usar o módulo para acionar o l293d o l293d não responde aos comandos.

      Excluir
    3. Bom dia. Você está enviando os comandos pelo Android ? O problema não está na configuração dos botões do microcontrollerBT ? Talvez tenha que configurar um botão deslizante, ou coisa parecida.

      Se preferir, me envie uma mensagem utilizando o formulário de contato à direita do site. Gostaria de dar uma olhada no código, se possível.

      Abraço !

      Excluir
    4. se pssivel me passe seu skype para um melhor contato dai eu posso explicar mais detalhadamente via chamada de voz.

      Excluir
    5. Bom dia. Por favor, entre em contato utilizando o formulário de contato no lado direito do site. Abraço.

      Excluir
  28. Olá, tentei com o código acima e não funcionou, fiz um teste pela serial e também não eu certo. até que encontrei o código abaixo e na serial funcionou muito bem, porém no BlueTooth nada ainda....rs


    char c;

    void setup() {
    Serial.begin(9600);

    pinMode(5,OUTPUT);
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);
    }

    void loop() {
    if(Serial.available()>0){
    c = Serial.read() - '0';
    Serial.flush();
    digitalWrite(c,!digitalRead(c));
    }
    }

    ResponderExcluir
  29. Este comentário foi removido pelo autor.

    ResponderExcluir
    Respostas
    1. Oi Rodney !

      No tutorial eu falo pra usar o segundo botão do layout, o botão "liga/desl". Pro seu caso, basta você usar o primeiro botão da parte de cima do layout, chamado "button", que funciona como se fosse um push-button : ao apertar, ele aciona a saída e acende o led, e ao tirar a mão da tela, ele apaga.

      Abraço !

      Excluir
  30. Arduino e CIA

    Gostaria de saber como incluir no código fonte a seguir um botão na porta 13 (push-button), que só fique aceso o led enquanto eu estiver calcando o botão na tela do celular, mas quando eu tirar o dedo da tela ele apague, pois só trocando o botão de ON-OFF pelo Push-Button, não deu certo. No mais está tudo funcionando corretamente.
    =================================================
    //Programa : Controle de Leds pelo Android utilizando Bluetooth
    //Autor : Arduino & Cia
    //
    // Programa utilizado para controlar as portas do Arduino via celular
    // usando o programa Microcontroller BT (Android)
    // O Arduino deve estar desconectado do computador, já que o módulo Bluetooth também usa
    // a comunicação serial, o que pode gerar conflito de dados.

    void setup()
    {
    Serial.begin(9600);
    //Abaixo, as portas quer serão ativadas pelo celular, via Bluetooth
    pinMode(5,OUTPUT);
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);
    }

    void loop()
    {
    if(Serial.available()>=2)
    {
    int key=Serial.read();
    int val=Serial.read();
    digitalWrite(key,val);
    }
    }



    ResponderExcluir
    Respostas
    1. Boa tarde Rodney,

      No código, você só precisa incluir a informação sobre a porta 13 :

      pinMode(13,OUTPUT);

      E configurar o botão no celular. O que acontece quando você utiliza o push-button ?

      Abraço.

      Excluir
  31. Olá amigos, Gostaria de incluir nesse projeto um botão push-button, que funcione da seguinte forma, quando eu calcar na ela do celular ele acenderia o led, mas quando eu tirar o dedo da tela ele apaga. No mesmo projeto acima. O projeto ficaria com 4 botões, sendo 3 ON-OFF e 1 Push-Button.

    Obrigado!

    ResponderExcluir
    Respostas
    1. Boa tarde Rodney,

      Pegando o seu exemplo, vamos supor que os 3 botões ON-OFF sejam as portas 5,6 e 7, e o Push-button seja na porta 10. Seu código ficaria assim :

      =================================================
      //Programa : Controle de Leds pelo Android utilizando Bluetooth
      //Autor : Arduino & Cia
      //
      // Programa utilizado para controlar as portas do Arduino via celular
      // usando o programa Microcontroller BT (Android)
      // O Arduino deve estar desconectado do computador, já que o módulo Bluetooth também usa
      // a comunicação serial, o que pode gerar conflito de dados.

      void setup()
      {
      Serial.begin(9600);
      //Abaixo, as portas quer serão ativadas pelo celular, via Bluetooth
      pinMode(5,OUTPUT); //Botao On Off
      pinMode(6,OUTPUT); //Botao On Off
      pinMode(7,OUTPUT); //Botao On Off
      pinMode(10,OUTPUT); //Push button
      }

      void loop()
      {
      if(Serial.available()>=2)
      {
      int key=Serial.read();
      int val=Serial.read();
      digitalWrite(key,val);
      }
      }

      Na verdade a alteração maior é na programação do aplicativo no celular. O código se limita a definir as portas e acender os leds.

      Se não conseguir, volte aqui que ajudamos no que for possível.

      Abraço !

      Excluir
  32. Boa Noite, gostaria de saber se pode me ajudar, preciso configurar o bluetooth, para que quando ele perder o sinal ( quando eu me afastar a mais de um metro, do bluetooth / arduino ele acende um Led. ou teria como ao me afastar, perceber a queda de sinal em valores, e regular isso, como por exemplo, apos eu verificar que um determinado sinal, a um metro, fica com um valor, eu colocava no programa e quando atingisse esse valor, o led acenderia, ou apagaria.

    ResponderExcluir
    Respostas
    1. Boa noite Eduardo,

      O que você precisa é de algo que fique constantemente "conversando" com o celular via Bluetooth e, quando o sinal fosse perdido/alterado, o Arduino executaria algum comando, certo ?

      Olha, eu creio que isso seja possível apenas via programação (no celular/tablet/etc), pois o mesmo precisaria enviar sinais, ou responder sinais, constantemente ao módulo bluetooth do Arduino.

      Acho que os amigos aqui do blog podem te ajudar melhor, mas a princípio, eu vejo como "ideal", montar um programa específico para isso no Android.

      Mesmo assim, se souber de algo ou precisar de ajuda com isso, entre em contato.

      Abraços !

      Excluir
    2. Obrigado, olha fiz a mesma pergunta lá num tutorial do .instructables, e veja a resposta dele.

      Você pode verificar o status da conexão em intervalos regulares (digamos, a cada segundo) usando o comando "GK". 1 = ligado, 0 = não conectado.

      O QUE ACHA?

      Excluir
    3. Oi Eduardo,

      Não conheço esse comando, mas vamos pesquisar. Será que eles não estão falando de algum outro módulo ? Existem vários módulos BT no mercado. Se puder, me passe o endereço do fórum para que eu veja a resposta deles.

      Abraço !

      Excluir
  33. Olá boa tarde! primeiramente parabéns pelo tutorial! mas estou com problemas, a algumas semanas comprei um modulo bluetooth e tentei fazer um outro exemplo que encontrei na internet, fiz a programação certinho, pelo serial monitor funcionou perfeitamente mas com o modulo não funciona de jeito nenhum. pensei que fosse o modulo comprei outro e então achei este exemplo, ficou d mesma forma ele conecta certinho com o celular mas não responde aos comandos. sera que é eu que to fazendo algo errado? estive olhando nos comentários e vi bastante gente com o mesmo problema porem nenhuma das soluções adotadas serviu para o meu caso. fico no aguardo obrigado!

    ResponderExcluir
    Respostas
    1. Boa noite Adriano, blz ?

      O módulo que você comprou é o mesmo que está no post ? Um detalhe importante é você desconectar o Arduino do computador, pra "liberar" a serial para o módulo Bluetooth. Desta forma, usa-se o Arduino ligado à uma fonte ou bateria.

      Se não resolver, volte aqui que tentamos te ajudar.

      Abraço e obrigado !

      Excluir
    2. É ESSE AQUI

      Bluetooth com auto-detectar e conectar
      http://www.instructables.com/id/BlueTooth-Link-with-auto-detect-connect/?ALLSTEPS

      Excluir
    3. No artigo ele fala sobre o módulo BlueSmirf. Não sei se esse módulo que estou usando, o HC-SR05 tem todos os recursos do BlueSmirf.

      Achei um outro artigo falando sobre isso, mas ele fala que o comando GK é usado para testar o estado dos pinos ligados ao Bluetooth, no caso um módulo modelo RN-42 :

      http://www.open-electronics.org/bluetooth-shield-for-arduino/

      Excluir
    4. Muito obrigado pela sua boa vontade, vou continuar a sua pesquisa e ver se dá para continuar. Mas isso quer dizer que cada modulo tem uma configuração diferente? Ou seja, comandos diferentes?

      Excluir
    5. Oi Eduardo,

      Eu ainda não tive oportunidade de testar um módulo diferente, mas pelo que andei lendo, alguns tem funcionalidades diferentes. E talvez até algum tenha exatamente a função que você precisa.

      Mas eu ainda acho que a melhor solução seria um programa para o celular, que enviasse ou recebesse comandos do Arduino de tempos em tempos.

      Agradeço se puder compartilhar aqui o que descobrir.

      Abraços, valeu !

      Excluir
    6. OK, acho que á duas soluções, a sua ideia e a do modulo, mas como tenho pouco conhecimento, precisarei achar algo meio pronto, um tutorial, ou programa com a função lá descrita. abraço

      Excluir
    7. TALVES, essa seja uma solução, em que eu possa fazer o programa, mas como ? ai só estudando mesmo.

      veja: o google fez um aplicativo que você não precisa ter conhecimentos em Java para programar,
      App Inventor - App Android - Arduino + App Inventor + Bluetooth (PARTE 1) http://arduinolivre.wordpress.com/2013/07/17/arduino-app-inventor-bluetooth-parte-1/

      Excluir
  34. Olá bom dia! ok realmente o módulo não é o mesmo do post, os dois que estou usando são idênticos a este:
    http://produto.mercadolivre.com.br/MLB-547161945-modulo-bluetooth-hc-05-master-e-slave-_JM
    mas pelo que eu percebi a única coisa que muda do meu para o modelo usado no tutorial é a plaquinha onde fica alojado o módulo em si...
    sim, sempre uso fonte externa para fazer os testes...
    Obrigado e até mais!

    ResponderExcluir
    Respostas
    1. Bom dia Adriano.

      Entendi. Pode ter algumas diferenças em relação ao firmware, mas deveria funcionar. Em qual ponto exatamente não funciona ? Você consegue montar o programa, o circuito funciona, você consegue parear mas quando envia os comandos não funciona, é isso ?

      Excluir
  35. isso mesmo, monto o programa, ele conecta certinho mas não recebe os comandos. tentei também com outra programação que achei na internet e o desenvolvedor estava usando o mesmo modulo e mesmo assim não funcionou.
    liguei um led em serie na porta tx do modulo pra ver se dava algum sinal, e, cada vez que eu mando um comando o led pisca, da um pequeno pulso, será que esse pulso é a informação que o arduino deveria processar? já fiz o teste até com outros celulares e nada....
    Obrigado e desculpa o incômodo!

    ResponderExcluir
    Respostas
    1. Oi Adriano,

      Não é incômodo nenhum, tenho curiosidade em saber porque não funciona. Até refiz o circuito aqui e funcionou de primeira.

      Me fala uma coisa... o seu módulo é trabalha com 3.3 volts no pino de sinal... você está usando algum divisor de tensão ? Pq se não usar, pode até queimar o módulo.

      Excluir
  36. Pois é... na verdade eu não sei te dizer isso... mas nos tutoriais que vi que usam este mesmo modulo a ligação tx-rx é rx-tx e feita de forma direta. mas eu desconfio que esse pode ser o problema, vou comprar os resistores e fazer o teste. mas eu acho que devo comprar outro modulo, certo? ou será que estes ainda funcionam porque ele liga e ainda se conecta perfeitamente. o que você acha?

    ResponderExcluir
    Respostas
    1. Oi Adriano,

      Pelo que eu tenho conversado com o pessoal, é assim mesmo, ele até conecta com o celular, mas depois não comunica com o Arduino. Não sei como funciona isso internamente, talvez queime só a parte de comunicação serial.

      Mesmo assim, eu faria um teste com os resistores. No artigo tem uma calculadora para montar o divisor de tensão, então você pode digitar os valores dos resistores que você tem aí e ver qual a saída. Pelos meus testes aqui, se você conseguir reduzir pra uns 3 volts já tá de bom tamanho.

      Me avise depois se deu certo e se o problema era mesmo no módulo, por favor. Por via das dúvidas, já coloquei um aviso nos posts sobre o módulo BT, advertindo sobre esse problema dos 3.3v, e para o pessoal ficar atento ao modelo do módulo.

      Abraços e obrigado !

      Excluir
    2. Só mais uma coisinha. É que você me passou o link do módulo no Mercado Livre, e lá o vendedor fala que o nível é de 3.3v, mas ele não deixa claro se é o nível de sinal ou a alimentação do módulo.

      Excluir
  37. Ok! desculpa a demora pra responder tive uns probleminhas... ok vou fazer o teste com o divisor de tensão e se não der certo vou comprar outro modulo e fazer novamente da maneira certa... mas fica tranquilo assim que eu fizer os testes vou te informar os resultados... quanto as informações do anuncio também achei meio confuso.
    Muito obrigado pela atenção e até mais!!!

    ResponderExcluir
  38. Ok! vou fazer os testes depois coloco aki os resultados ok?
    Muito obrigado pela atenção!!!

    ResponderExcluir
  39. Bom dia! fiz o teste com o divisor de tensão, coloquei um resistor de 1k e um de 1k5 o que me deu um valor de 3V, conferido com o multímetro. pois bem, no programa utilizado aki no tutorial não funcionou. fiz uma outra programação na qual eu utilizo caracteres para acender e apagar os leds, e, usando o mesmo aplicativo do android porém na interface de enviar caracteres e ainda não deu em nada... então incrementei no programa o comando "Serial.println" pra ver o que acontecia, antes de liga o modulo BT testei o programa no serial monitor e funcionou perfeitamente. então, alimentei o arduino com uma bateria e conectei o modulo mas não obtive sucesso. conectei o arduino novamente ao computador e abri o serial monitor com o modulo BT devidamente conectado e aconteceu algo interessante: quando eu mando o caractere para o arduino através do serial monitor ele acende o respectivo led e imprime a informação no serial monitor MAS TAMBÉM NA TELA DO CELULAR. o que me confundiu agora foi: o divisor de tensão esta no pino rx porem ele recebe todas as informações corretamente. o pino tx é ligado direto. teria como a parte de recebimento de dados (quando eu liguei o rx aos 5V) danificar a parte de transferência de dados? porque com isso acho que podemos afirmar que o modulo está recebendo dados mas não enviando... sei que o comentário esta meio confuso mas é mais ou menos isso.
    Muito obrigado e até mais!!!

    ResponderExcluir
    Respostas
    1. Oi Adriano,

      Teoricamente é o contrário. Deveria ter danificado a parte de recepção do módulo BT (o pino RX), já que o TX só envia os dados para o Arduino, e se ele enviar 3.3volts o Arduino reconhece sem grandes problemas.

      Fiquei curioso com essa parte que você falou sobre aparecer a informação na tela do celular. Pode me explicar melhor como isso aconteceu ? Eu não consegui reproduzir aqui.

      Abraço !

      Excluir
  40. pois é achei muito estranho tbem! fiz uma programação bem simples na qual envio caracteres para controlar os leds, mas peço desculpas pelo comentário de antes, la eu disse que usei o mesmo aplicativo do celular mais eu usei outro que é o S2 Bluetooth, é um aplicativo bem simples, quando eu mando o comando por ele nada acontece mas quando mando o comando pelo serial monitor o arduino imprime a mensagem tanto na tela do computador como na tela do celular. o programa é esse:

    void setup()
    {
    pinMode (13,OUTPUT);
    pinMode (12,OUTPUT);
    pinMode (11,OUTPUT);
    Serial.begin(9600);
    }

    void loop()
    {
    char c = Serial.read();
    if (c == '1') {
    digitalWrite(13,HIGH);
    Serial.println("led pino 13 aceso");
    }

    if (c == '2'){
    digitalWrite(12,HIGH);
    Serial.println("led pino 12 aceso");
    }
    if (c == '3') {
    digitalWrite(11,HIGH);
    Serial.println("led pino 11 aceso");
    }
    if (c == 'A') {
    digitalWrite(13,LOW);
    Serial.println("led pino 13 apagado");
    }
    if (c == 'B') {
    digitalWrite(12,LOW);
    Serial.println("led pino 12 apagado");
    }
    if (c == 'C') {
    digitalWrite(11,LOW);
    Serial.println("led pino 11 apagado");
    }
    delay(1000);
    }

    Comprei outro modulo para fazer o teste ele deve chegar amanha aí vamos tirar a duvida se o modulo foi ou não danificado, ok?
    Valeu Abraço!

    ResponderExcluir
    Respostas
    1. Blz Adriano ! Acho que com um novo módulo vamos tirar essas dúvidas. Me avise quando puder testar, por favor.

      Abraço ! Valeu...

      Excluir
  41. Problema resolvido! realmente, fiz a ligação correta com o modulo novo e funcionou perfeitamente... deve ter sido os 5 volts mesmo. se bem que este modulo novo é o HC-06 e os anteriores era o HC-05 mas eu acho que isso não explica, eu creio que os outros foram mesmo danificados... bom é isso aí na próxima agente já sabe
    Valeu muito obrigado pela atenção vou vasculhar por aki agora pra acha outro projeto pra faze valeu obrigado!!!

    ResponderExcluir
    Respostas
    1. Bom dia Adriano,

      Obrigado pelo retorno. Vai ajudar muito o pessoal do blog em futuros projetos.

      Abraço !

      Excluir
  42. Olá de novo! gostaria de saber se além do aplicativo microcontroler você trabalha com algum outro, por exemplo o app inventor no qual vc faz a interface que quiser. vc já trabalhou ou trabalha com o appinventor?
    Obrigado!

    ResponderExcluir
    Respostas
    1. Oi Adriano,

      Eu não trabalhei com o appinventor mas pelo que eu já conversei com os colegas, ele tem recursos limitados. Recomendaram a utilização do Java.

      Abraço !

      Excluir
  43. Ok, muito obrigado pela dica
    Até mais!!

    ResponderExcluir
  44. olá meu nome é jonas , queria ajuda em um projeto, fiz um carrinho robo 4x4, ele não bate em obstaculos pois tem um sensor ultrassonico , configurado para não aprximar menos que 15 cm e tbm pode seguir linha pois tem dois módulo sensor infravermelho, bom mas meu problema é agora que estou tentando controlalo por bluetoth, tenho o adaptador no not funciona perfeito, coloquei um hc-06 no arduino ai ele aparece no not ,eu emparelho ai aparece pra digitar a senha e a barra carrega certinho do emparelhamento, mas ai clico em cima do icone hc 06 e aparece desconectado, ele até cria as portas com do bluetoth mas na ide se eu uso ela quando envio algo a ide trava , alguem pode me ajudar , favor enorme ai... o código que uso mas acho que esse problema não tem haver com o código
    #include
    #define trigPin 12
    #define echoPin 13
    Ultrasonic ultrasonic(12,13);
    int pinENA = 30;
    int pinENB = 28;
    int pin1 = 8;
    int pin2 = 9;
    int pin3 = 10;
    int pin4 = 11;



    void setup()
    {
    Serial.begin(9600); //inicia a porta serial
    pinMode(echoPin, INPUT); // define o pino 13 como entrada (recebe)
    pinMode(trigPin, OUTPUT); // define o pino 12 como saida (envia)
    digitalWrite(pinENA, HIGH);
    digitalWrite(pinENB, HIGH);
    }

    void loop()
    {

    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    int distancia = (ultrasonic.Ranging(CM));
    analogWrite(pin1,200);
    analogWrite(pin3,200);
    analogWrite(pin2,0);
    analogWrite(pin4,0);


    Serial.print("Distancia em CM: ");
    Serial.println(distancia);
    if ( distancia < 15 ){
    analogWrite(pin1,200);
    analogWrite(pin3,200);
    analogWrite(pin2,0);
    analogWrite(pin4,0);
    delay(1000);
    analogWrite(pin2,0);
    analogWrite(pin3,0);
    analogWrite(pin1,200);
    analogWrite(pin4,200);
    delay(700);
    }
    if (Serial.available())
    {
    int comando=Serial.read();
    if (comando=='s');
    {
    analogWrite(pin2,0);
    analogWrite(pin4,0);
    analogWrite(pin1,200);
    analogWrite(pin3,200);
    Serial.println("função frente");

    }
    if(comando=='w')
    {
    analogWrite(pin2,200);
    analogWrite(pin4,200);
    analogWrite(pin1,0);
    analogWrite(pin3,0);
    Serial.println("função ré");

    }
    if(comando=='d')
    {
    analogWrite(pin1,0);
    analogWrite(pin4,0);
    analogWrite(pin2,200);
    analogWrite(pin3,200);
    Serial.println("função direita");
    }

    if(comando=='a')
    {
    analogWrite(pin2,0);
    analogWrite(pin3,0);
    analogWrite(pin1,200);
    analogWrite(pin4,200);
    Serial.println("função esquerda");
    }
    }
    }

    ResponderExcluir
    Respostas
    1. Oi Diulus,

      Pelo que você está comentando, o problema parece ser conflito de IDE, já que você está usando o Arduino conectado ao computador e o Bluetooth ao mesmo tempo e os 2 usam a mesma porta serial. Já experimentou desconectar a IDe e carregar o Arduino por uma fonte externa pra ver como o robô se comporta ?

      Abraço.

      Excluir
  45. Eu aqui, amadorzão achando que Uno e Leonardo era igual.... conectava tudo certo e nada, revia tudo e nada, dei reset pelo pino 11 e nada... tava quase botando fogo em tudo aqui (mentira) e descobri que a diferença era no código que eu deveria usar: "Serial1.begin(9600);" Aí foi só alegria! Obrigado pelo post, muito bom!!

    ResponderExcluir
    Respostas
    1. Bom dia Leandro,

      Muito obrigado pela dica. Confesso que eu também não sabia disso. rs.

      Abraço !

      Excluir
  46. Boa noite Arduino e Cia,

    Não estou encontrando o aplicativo MicroController BT, tem algum similar que você recomenda?

    Obrigado e parabéns pelo blog!

    ResponderExcluir
    Respostas
    1. Bom dia Jean,

      Realmente estou tendo problemas com esse aplicativo, porque às vezes a página sai do ar no Google Play, e também não estou conseguindo falar com o desenvolvedor. Estou tentando arrumar um outro aplicativo e refazer o post.

      O que eu posso recomendar de momento é o Bluetooth SPP, que apesar de não ter uma boa interface, permite testes com o bluetooth, com o envio e recebimento de dados pela saída serial. O link é esse :

      https://play.google.com/store/apps/details?id=mobi.dzs.android.BluetoothSPP&hl=pt_BR

      Abraço e obrigado !

      Excluir
  47. Amigo gostaria de saber se esse APP mudou de nome pois não acho ele na googleplay

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Infelizmente o desenvolvedor está tendo algum problema com este app, pois o mesmo às vezes não está disponível no Google Play.

      Devido à isso, estou vendo outras alternativas para reescrever o post.

      Abraço e obrigado !

      Excluir
  48. é possível usar o MicroController BT para usar o infravermelho do celular ao invés do BT ?

    ResponderExcluir
    Respostas
    1. Oi Thiago,

      Não, o microcontroller BT é exclusivo para Bluetooth. Para uso com infravermelho, a aplicação teria que ser reescrita.

      Abraço !

      Excluir
  49. boa tarde
    gostei do seu tutorial,mas nao estou conseguindo baixar esse app para o android e o link nao está mais ativo....... e no meu arduino nao veio com o programa para descarregar qual programa eu uso nele ???

    ResponderExcluir
    Respostas
    1. Bom dia,

      Realmente esse aplicativo está com alguns problemas no Google Play. Não sei se o desenvolvedor o retirou do ar.

      Uma alternativa é baixar o Bluetooth SPP, também disponível no Google Play. Ele não tem a mesma interface, mas você consegue enviar e receber comando do Arduino utilizando a interface serial.

      Abraço !

      Excluir
    2. EU ENCONTREI O APK NO SITE

      http://android.exjar.com/filer_638164-microController%20BT.apk-Samsung%20Galaxy%20Grand.html

      MONTEI O LAYOUT E TD.

      SÓ NÃO CONSIGO ME COMUNICAR COM O MÓDULO BLUETOOTH, JYMCY HC-06, JÁ FIZ DE TD, DESDE AS 8 DA MANHÃ, MAS ND !

      Excluir
    3. Boa tarde,

      O seu módulo tem nível de sinal de 3.3 v ?

      Excluir
  50. Amigo, estou tendo problemas para encontrar o dispositivo Bluetooth no celular. De maneira alguma encontri o dispositivo em meu aparelho. Meu modulo é esse aqui : http://www.techmount.com.br/comunicacao/bluetooth/bluetooth-ttl-rs232-serial-master-slave
    Bluetooth Ttl Rs232 Serial Master / Slave
    Se conseguir me ajudar eu lhe agradeço.

    ResponderExcluir
    Respostas
    1. Boa noite Leonardo,

      Tente ligar apenas o GND e o Vcc e ver se o dispositivo é reconhecido. Não é necessária nenhuma configuração para que ele funcione, a princípio. Tente com outro celular ou outro módulo, se possível, assim fica mais fácil de detectar se o problema é o módulo ou o bluetooth do celular.

      Abraço !

      Excluir
  51. ola copie o codigo cole no ardunio os ledes não acesede a comunicação com o BLUETOOTH fucionou que pode ter acontecido?

    ResponderExcluir
    Respostas
    1. Boa noite Alexandre,

      Qual módulo você está usando ?

      Excluir
    2. ola amigo fucionou deu certinho . sera que tem como colocar uma senha no proguama no celular tipo agente conectar no MicroController BT e ele pedi a senha para ficar mais seguro?

      Excluir
    3. Boa tarde Alexandre,

      A idéia é ótima, mas no caso dependeria de alguma mudança no aplicativo do Android.

      Abraços.

      Excluir
  52. É possível, por exemplo, controlar o brilho do led amigo?

    ResponderExcluir
    Respostas
    1. Boa noite Rafael,

      É possível sim. No software, você tem a opção de criar um botão deslizante, e enviar esse valor variável para o Arduino.

      Na parte do circuito do Arduino, o que você precisaria é de um circuito parecido com o desse artigo :

      http://www.arduinoecia.com.br/2013/07/dimmer-usando-portas-analogicas-para.html

      Abraço !

      Excluir
  53. Boa noite, tem como utilizar o modulo bluetooth sem a placa do arduino? tentei fazer a ligação dos pinos RX e TX do modulo ao TX e RX do ATMEGA328 mas não consigo controlar o led. Quando uso o mesmo código na placa do arduino uno funciona normalmente. Existe algum circuito adicional que tenha que ser usado para usar o modulo bluetooth com o standalone?

    ResponderExcluir
    Respostas
    1. Boa tarde,

      Não fiz esse teste ainda, mas pelo que eu pesquisei, você vai precisar de um CI auxiliar, como o MAX232 (http://pt.wikipedia.org/wiki/MAX232).

      Encontrei no fórum do Arduino uma pessoa com o mesmo problema que você, talvez tenha alguma informação que ajude : http://forum.arduino.cc/index.php?topic=28165.0;wap2
      Abraço !

      Excluir
  54. O meu módulo bluetooth jy-mcu não responde aos comando AT, o que poderia ser??

    ResponderExcluir
    Respostas
    1. Bom dia,

      Veja se os pinos RX e TX não estão invertidos, e se você configurou corretamente a velocidade de comunicação para 115200.

      Abraço.

      Excluir
  55. Ja tentei de tudo .... o led do módulo que deveria ficar piscando fica continuo. Nao entendo o porque ... será que naoé isso o problema??

    ResponderExcluir
    Respostas
    1. Boa tarde. O módulo pisca quando está aguardando conexão, e fica contínuo quando está conectado ao celular.

      Não esqueça de verificar se o nível de sinal do seu módulo é de 3.3v antes de ligá-lo ao Arduino.

      Abraço.

      Excluir
    2. Esse é o problema desda primeira vez que o conectei na placa arduino ele fica continuo e quando vou procurar o dinal meu celular. Nao aparece nada ... Não há como da um reset ou coisa do tipo?

      Excluir
    3. Boa tarde,

      Já ouvi falar desse reset sim, mas não precisei (ainda), por isso não testei. Segue o link :

      http://www.instructables.com/id/Success-Using-the-JY-MCU-linvor-Bluetooth-Module/?lang=pt

      Espero que ajude. Abraço !

      Excluir
  56. ola pessoal por falta deste detalhe o meu modulo ja era quando comprei para fazer um projerto fui logo ligando a ligacao dele era rx do modulo no tx do arduino funcionou por pouco tempo tentei configurar o baud no comando at ele nao responte so assim eu aprendir qual adiferença de power e level no modulo jy mcu ;;;;;;;;;;;

    ResponderExcluir
  57. Olá, tambem tive o mesmo problema relatado bem acima com relacao que apos criar um layout e fecha-lo tenho novamente que fazer um novo, ou seja nao salva o projeto, e você mencionou que comprou a versao completa, porem nao estou achando mais o apk no Google Play, porem ja tenho a versão gratuita, gostaria de saber se você poderia me vender a versão completa e qual o valor, desde ja agradeço.....

    ResponderExcluir
    Respostas
    1. Oi Alexandre,

      Infelizmente eu não tenho, mas deixe o seu email no formulário de contato no canto direito da página, se eu souber de algo te aviso.

      Abraço !

      Excluir
  58. Boa noite, estou começando a mexer com arduino e gostaria de saber como esse módulo de bluetooth trablaha. Digo, quando coloco no código Serial.available()>=2, seriam 2 bytes para ler?
    o que ele envia ao arduino ??

    estou tentando fazer um código que ao clicar no botão, ele use o Serial.read() para ler se a porta digital está HIGH ou LOW... e inverter o estado, porém, quando eu clico no botão ele executa duas vezes, acendendo e apagando a lâmpada. Gostaria de conseguir resolver isso pois estou fazendo esses "testes" na minha casa.
    Não sei se deu pra entender a minha dúvida.
    Obrigado pela atenção
    Att,

    André

    ResponderExcluir
    Respostas
    1. Boa noite,

      O aplicativo envia ao Arduino 2 valores : key e val. O key determina a porta e o val determina se o valor será 0 ou 1.

      Talvez o seu problema esteja no tratamento desse valor. Você está usando o microcontroller BT para enviar os comandos ?

      Abraço.

      Excluir
  59. por favor n tem mais o microcontroller bt me mande ele em apk por favor

    ResponderExcluir
    Respostas
    1. Boa noite Rafael,

      Acho que o desenvolvedor está com algum problema. Não tenho o apk nesse momento, mas deixe uma mensagem utilizando o formulário de contato no lado direito da página, e eu aviso você assim que souber de algo.

      Abraço !

      Excluir
    2. mas vc arduino e Cia nao sabe de alguem q tenha esse apk a possa enviar pois como muitos estou precisando.

      Excluir
    3. Boa noite,

      Realmente não sei, também estou procurando uma alternativa ao Microcontroller BT.

      Abraço !

      Excluir
  60. Alguem tem esse apk e poderia estar me enviando, pois nao consigo encontrar pra baixar..

    Obrigado

    ResponderExcluir
  61. pq vc nao fez um divisor de tensão para ligar o bluetooth?

    ResponderExcluir
    Respostas
    1. Boa noite,

      Na época que eu fiz esse post, o meu módulo BT tinha nível de sinal de 5v, e não precisava do divisor de tensão.

      Abraço !

      Excluir
    2. eu tenho um modulo Módulo Bluetooth RS232 HC-05 posso utilizar a saída de 3.3v do arduino ao invés de utilizar o divisor de tensão

      Excluir
    3. Boa tarde,

      Infelizmente não. Tensão de alimentação é diferente de tensão de nível de sinal. Muita gente confunde isso e acaba danificando o módulo.

      Tente montar um divisor de tensão simples com os resistores que você tem aí, utilizando o esquema que eu mostro nesse post :

      http://www.arduinoecia.com.br/2014/01/enviando-dados-do-arduino-para-o.html

      Não precisa ser um valor exato. Algo em torno de 2.7 à 3 volts já serve para você fazer os testes.

      Abraço !

      Excluir
    4. Infelizmente não. Tensão de alimentação é diferente de tensão de nível de sinal. Muita gente confunde isso e acaba danificando o módulo.

      você quis dizer tensão de alimentação ( 3.3 ) e deferente de corrente (40mA) de tensão correto!?

      Excluir
    5. Bom dia,

      Não. No módulo Bluetooth, especificamente, a alimentação (pino VCC), pode ser feita com o 3.3V ou 5V do Arduino.

      Já os pinos de sinal (RX e TX), trabalham com nível de sinal de 3.3V, ou seja, a tensão de sinal que eles podem aguentar é no máximo de 3.3V.

      Recomendo a leitura deste artigo, que explica bem essa questão do nível de sinal:https://learn.sparkfun.com/tutorials/logic-levels

      Abraço!

      Excluir
  62. Olá, muito obrigado para seus projetos, tenho trabalhado "LCD 16x2 - Scroll em apenas uma das linhas ", "Medidor de distância com o sensor ultrasonico HC-SR04", "sensor de temperatura e umidade DHT11" e "Acionando portas do Arduino usando Android e bluetooth ", tem sido muito instrutivo para mi e prática Arduino antes de fazer o meu projeto, que é a construção de um focalizador para telescópio. (Nandofocus, V8)

    mais uma vez, muito obrigado.

    Bernard

    ResponderExcluir
    Respostas
    1. Boa noite Bernard,

      Fico realmente feliz que o site esteja sendo útil.

      Gostaria de dar uma olhada no seu projeto quando estiver pronto.

      Abraço !

      Excluir
  63. Amigo, teria como disponibilizar o programa apk para download?
    Estou tentando baixar o mesmo e pelo que vejo agora o link vai para uma mobile market.

    Teria como upar o apk em algum server como 4shared?
    Agradeceria MUITO, preciso muito deste apk para meu projeto de graduação.

    Abraço

    ResponderExcluir
    Respostas
    1. Boa noite,

      Vou tentar fazer isso, assim que achar o apk, pois também estou precisando para fazer alguns testes.

      Se conseguir, coloco uma observação aqui no post.

      Abraço !

      Excluir
  64. Amigo parabéns pelo tutorial, porém utilizo um módulo BlueSmirf, consigo conectar o módulo ao Smartphone, pois o mesmo tem um led verde indicando quando está pareado, porém ao mandar as informações pelo MicroController BT, nada acontece, eu consigo pelo serial monitor, más não pelo Smartphone, eu já testei o módulo com o tutorial de fábrica, mudei o nome do módulo e peguei informações do mesmo, ou seja ele se comunica, porém no tutorial de fábrica, o código usa as portas 5 e 6 como rx e tx, e não a própria do arduino, será que esse é o problema ?
    Amigo se tivesse como vc me mandar um código correspondente ao seu só que usando outros pinos como rx e tx para o meu email eu ficaria grato, pois comecei agora com arduino, ainda estou aprendendo a programar!

    PS:Minha placa é um UNO R3, Utilizo uma fonte chaveada de 9 v como alimentação externa, e meu email é fillype.fafica@gmail.com

    Obrigado!

    ResponderExcluir
    Respostas
    1. Boa tarde Filype,

      Eu precisaria ter um módulo desses para testar, mas me diga uma coisa. Por acaso nesse tutorial de fábrica que você tem ele usa a biblioteca SoftwareSerial ?

      Abraço !

      Excluir
  65. Olá amigo, boa tarde. Estou com uma dúvida, este módulo bluetooth JY-MCU é parecido com o Módulo Bluetooth HC-06 ? É mesma coisa ou são diferentes? Eu posso usar esse Módulo Bluetooth HC-06 neste projeto que você explicou também? Obrigado e parabéns !

    ResponderExcluir
    Respostas
    1. Boa tarde Lucas,

      O esquema de funcionamento é o mesmo, mas provavelmente o seu módulo trabalha com nível de sinal de 3.3V, então recomendo que você siga as instruções desse post para montar um divisor de tensão :

      http://www.arduinoecia.com.br/2014/01/enviando-dados-do-arduino-para-o.html

      Feito o divisor, você pode usar o módulo com qualquer um dos projetos do blog, ok ? :-)

      Abraço e obrigado !

      Excluir
  66. Ola, estava tentando seguir o tutorial mas quando tento verificar o sketch aparece o seguinte erro:
    e:/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o:(.init9+0x0): undefined reference to `main'
    C:\Users\william\AppData\Local\Temp\build8943135067205280168.tmp/core.a(HardwareSerial.cpp.o):(.rodata._ZTV14HardwareSerial[vtable for HardwareSerial]+0x6): undefined reference to `Print::write(unsigned char const*, unsigned int)'
    collect2.exe: error: ld returned 1 exit status
    Erro compilando.


    C:\Users\william\AppData\Local\Temp\build8943135067205280168.tmp/core.a(HardwareSerial.cpp.o):(.rodata._ZTV14HardwareSerial[vtable for HardwareSerial]+0x6): undefined reference to `Print::write(unsigned char const*, unsigned int)'

    collect2.exe: error: ld returned 1 exit status

    Erro compilando.


    Teria alguma ideia do que devo fazer pra corrigi-lo?

    ResponderExcluir
    Respostas
    1. Boa noite,

      Dificil dizer, muito erro para uma compilação só. rs. Tente fazer uma nova instalação da IDE, removendo as bibliotecas que você não vai utilizar no programa.

      Abraço !

      Excluir
  67. Olá fiz um app android no app invertor mas na programação de envio utilizo um só botão com faço no arduino.

    ResponderExcluir
  68. Olá, por acaso você encontrou algum aplicativo como alternativa ao MicroController BT? Pois o mesmo não está mais disponível para download. Obrigado!

    ResponderExcluir
  69. Teria como fazer nesse mesmo esquema, ao invés de ativar leds, ativar um transmissor IR para diferentes dispositivos (lâmpada, ventilador, ar condicionado)?

    ResponderExcluir
    Respostas
    1. Boa noite,

      É possível sim, você só tem que mexer na programação para utilizar o transmissor IR.

      Abraço!

      Excluir
  70. Boa tarde, alguém poderia me enviar um ide para mudar as configurações do modulo Bluetooth HC-05.
    obs.: tenho o Arduino Mega.

    ResponderExcluir
    Respostas
    1. Bom dia,

      Utilize as instruções deste post: http://www.arduinoecia.com.br/2015/01/diferenca-bluetooth-hc-05-hc-06.html

      Abraço!

      Excluir
    2. ...Vlw! obrigado!
      Pode me responder algo, o meu modulo Bluetooth não veio com o pino KEY, nesse pino esta o EN, e o mesmo pino correto?!!?

      Excluir
    3. Bom dia,

      Sim, é o mesmo pino, mas ao invés do Key, tem o pino EN (Enable).

      Abraço!

      Excluir