Postagem em destaque

Controle PID de Potência em Corrente Alternada - Arduino e TRIAC - Parte I

Este post é o primeiro de uma série de seis que escrevi tratando de controle de potência e PID (controle proporcional, integral e derivativo...

domingo, 29 de junho de 2014

Comunicação Arduino via Bluetooth I

Outro dia comprei, aproveitando a vinda de amigos dos EUA, alguns gadgets que aqui em Pindorama são caros. Assim vieram um break bluetooth, um acelerômetro (devia ter comprado direto um IMU, que inclui o giroscópio, mas agora já era), um shield GPS e um sensor de impressões digitais.

O primeiro binquedim que funcionou foi o break bluetooth. Muito, muito mole. Ele é igulalim esse aí:


Os quatro pinos de conexão são Vcc, GND, TX e RX, o que indica uma comunicação serial, ou seja, o Arduino verá o bluetooth como um dispositivo serial.

Esse que eu comprei tem um regulador de tensão para poder ser usado em 5V. Outros só podem ser usados em 3.3V, então vc deve alimentá-lo com a saída 3V3 do Arduino e também deve providenciar um divisor de tensão para adequar a comunicação.

Liguei a alimentação e os TX/RX nos RX/TX do Arduino (pinos 0 e 1). Testei e funcionou de cara. O inconveniente dessa abordagem é que vc tem que desligar os fios da comunicação toda vez que for atualizar o software no Arduino, visto que a comunicação PC/Arduino se dá através das mesmas portas.

Para resolver a questão, a gente pode usar outras portas do Arduino como TX/RX. Para isso, primeiro instale a biblioteca SoftwareSerial no seu micro (aqui mesmo no blog ensina como fazê-lo) e em seguida carregue o seguinte pograminha:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX



void setup()

{

  Serial.begin(9600);

  mySerial.begin(9600);

}



int i=0;

void loop()

{

  mySerial.println(i);

  delay(300);

  i++;

}


Observe que o programa usa as portas 10 e 11 como TX/RX, então o seu break bluetooth deve estar conectado nessas portas, RX com TX e TX com RX, claro.

O programa envia para a serial uma sequencia de números inteiros. Como fazer para testar se está funcionando?

A forma mais fácil é se vc tem um celular bluetooth. Nesse caso, instale o software S2 Terminal ou similar em seu celular. Em seguida:

- Conecte o bluetooth segundo as instruções acima.

- Ligue o bluetooth do seu celular.

- Pareie o celular com o Arduino (o Arduino deve aparecer na lista como HC-06, coisa assim).

- Abra o programa de terminal no celular.

- Conecte o programa com o Arduino (depende do programa, no S2 é clicar no ícone que é um plug e selecionar o HC-06.

- Ao fazer isso vc poderá observar que o LED no break bluetooth parará de piscar e ficará aceso, indicando que a conexão existe.

Em seguida o programa começará a mostrar os números enviados pelo Arduino.

É isso. Moleza, não?

Aqui vídeo da bagaça funcionando.



Abracadabraço!