No primeiro post sobre o Android e Arduino (leia aqui), eu mostrei como usar um celular com Android para enviar comandos e controlar as portas do Arduino através do bluetooth.
Hoje vou mostrar o caminho inverso, ou seja, como enviar dados do Arduino Uno R3 para o Android, também usando o programa Microcontroller BT, disponível no Google Play.
Para isso, montei um circuito usando o nosso já conhecido sensor óptico reflexivo TCRT5000 (leia aqui um artigo referente à esse sensor), um módulo bluetooth JY-MCU e um potenciômetro. O Arduino enviará os dados recebidos do sensor (que funcionará como um contador incremental) e também do potenciômetro, gerando no Android uma tela como essa :
Observe na montagem do circuito que eu utilizei 2 resistores no pino RX
do módulo Bluetooth. A função desses resistores é atuar como um divisor
de tensão, já que o módulo BT que estou utilizando trabalha com 3.3 v
no pino de sinal, e se ligarmos diretamente esse pino no Arduino, que
trabalha com 5 volts, corremos o risco de danificar o módulo BT.
Utilizei 2 resistores, um de 220 ohms e um de 330 ohms, que fizeram com
que a tensão do sinal vindo do Arduino caísse para aproximadamente 3
volts.
Você não tem resistores de 220 e 330 ohms ? Não tem problema. Acesse este link, digite 5 para a tensão de entrada, digite os valores dos resistores (R1 e R2) que você possui, e pressione o botão Calcular para verificar no campo tensão de saída o valor correspondente, lembrando que por segurança esta deve ser, no máximo, de 3.3v.
Para o sensor óptico, utilizei um resistor de 10 K para o transistor (parte inferior/preta do sensor), e um resistor de 330 ohms para o led infravermelho (parte superior/azul) :
Antes de partir para a configuração do Android, desconecte o Vcc do
módulo bluetooth e carregue o programa abaixo no Arduino. Por que
desligar o Vcc ? Porque o módulo bluetooth também utiliza a comunicação serial
com o Arduino, e isso pode gerar algum conflito na hora de
transferirmos o programa pelo computador :
módulo bluetooth e carregue o programa abaixo no Arduino. Por que
desligar o Vcc ? Porque o módulo bluetooth também utiliza a comunicação serial
com o Arduino, e isso pode gerar algum conflito na hora de
transferirmos o programa pelo 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
// Programa : Envio de dados Arduino => Android // Autor : Arduino e Cia int contador = 0; int pinosensor = 7; //Ligado ao pino "coletor" do sensor optico int leitura; //Armazena o valor lido pelo sensor int pinpot = A0; //Ligado ao pino central do potenciometro void setup() { pinMode(pinosensor, INPUT); //Define o pino do sensor como entrada pinMode(pinpot, INPUT); //Define o pino do potenciometro como entrada Serial.begin(9600); //Envia o valor inicial zero do contador para o Android Serial.write(201); Serial.write(highByte(contador)); Serial.write(lowByte(contador)); } void loop() { //Le as informacoes do pino do sensor leitura = digitalRead(pinosensor); if (leitura != 1) //Verifica se o objeto foi detectado { contador = contador++; //Incrementa o valor do contador //Loop caso o objeto pare sobre o sensor while(digitalRead(pinosensor) != 1) { Serial.println(contador); //Envia o valor atualizado do contador para o Android Serial.write(201); Serial.write(highByte(contador)); Serial.write(lowByte(contador)); } } //Envia as informacoes do potenciometro para o Android int valor_pot = analogRead(pinpot); Serial.write(202); Serial.write(highByte(valor_pot)); Serial.write(lowByte(valor_pot)); delay(50); } |
Finalizada a transferência do programa para o Arduino, ligue novamente o Vcc do módulo bluetooth e, no Android, execute o aplicativo Microcontroller BT (disponível para download nesse link) :
Aperte a tecla MENU no seu celular e escolha a opção NEW LAYOUT :
Dê um nome ao seu layout. Escolhi “Arduino Monitor” :
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. Aperte novamente a tecla MENU do seu celular e escolha a opção EDIT MODE :
em branco, e o nome do layout escolhido no canto superior esquerdo. Aperte novamente a tecla MENU do seu celular e escolha a opção EDIT MODE :
Repare que o layout ficará na cor vermelha, indicando que você está no modo de edição. Na base da tela, arraste a aba até aparecerem os botões para criarmos o layout :
Clique no botão TextView e segure até que o mesmo seja transferido para a tela principal do layout. Faça isso 4 vezes, criando 4 botões texto. Seu layout inicialmente ficará assim :
Clique no botão TEXTVIEW superior esquerdo, e configure-o com as opções abaixo. Clicando no ícone de edição, conforme destacado, você consegue alterar o texto do botão, que no meu caso eu configurei como “CONTADOR :“. Clique em DONE quando terminar de configurar :
Faça o mesmo com o botão inferior esquerdo. Utilizei o texto “Potenciometro” :
Vamos agora configurar os botões de texto que receberão os dados do Arduino. Clique no botão superior direito, referente ao sensor óptico e configure-o da seguinte maneira :
O botão inferior direito receberá os dados lidos do potenciômetro :
Terminada a configuração do layout, sua tela estará parecida com essa :
Aperte a tecla “retornar”, do seu celular, e o layout voltará a ficar em cinza, indicando que você saiu do modo de edição. Aperte a tecla MENU do seu celular, e escolha a opção Connect. :
Selecione 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 bluetooth no Arduino.
Observe no lado direito, no topo do layout, que o meu celular está
conectado ao dispositivo LINVOR e o programa está recebendo os dados referentes ao sensor óptico e ao potenciômetro :
seu aparelho, e após alguns segundos o layout do programa ficará verde,
indicando que o mesmo está conectado ao módulo bluetooth no Arduino.
Observe no lado direito, no topo do layout, que o meu celular está
conectado ao dispositivo LINVOR e o programa está recebendo os dados referentes ao sensor óptico e ao potenciômetro :
Veja neste link um vídeo demonstrando o circuito apresentado neste artigo.