Arduino comunicando-se via rádio I
No último Automação no Parque o grande Euclas apareceu com dois radinhos de comunicação para que a gente testasse o seu uso com o Arduino.
O kit é o APC 220, que vem dessa forma aí do lado: duas unidades mais um conversor USB serial que possibilita a conexão direta do radinho no PC.
O datasheet do bichinho vc acha aqui.
A primeira prática que fizemos foi tentar botar o bichinho para funcionar. Apanhamos um pouco, mas no fim funcionou. Não conseguimos usar o sw de configuração depe (vc pode baixá-lo daqui, bem como os drivers do conversor TTL).
Para os testes fiz dois "pograminhas": um que enviava comandos e outro que recebia do outro lado. O receptor fazia i LED do pino 13 piscar, de maneira que, ao ligá-lo numa bateria podia-se identificar se o radinho estava recebendo os comandos, podendo-se assim afastá-lo e medir o alcance.
Abaixo os fontes dos programas:
// Este é o programa que roda no Arduino que fará o
// papel de transmissor
void setup()
{
Serial.begin(9600);
}
void pisca(int c, int v)
{
for(int i=0;i<c;i++)
{
Serial.print('1');
delay(v);
Serial.print('1');
delay(v);
}
}
void loop()
{
// Pisca o LED 3 vezes com intervalo de 200ms, então dá um tempo de 1s.
pisca(3,200);
delay(1000);
}
// Este é o programa que roda no receptor.
char buf;
}
O kit é o APC 220, que vem dessa forma aí do lado: duas unidades mais um conversor USB serial que possibilita a conexão direta do radinho no PC.
O datasheet do bichinho vc acha aqui.
A primeira prática que fizemos foi tentar botar o bichinho para funcionar. Apanhamos um pouco, mas no fim funcionou. Não conseguimos usar o sw de configuração depe (vc pode baixá-lo daqui, bem como os drivers do conversor TTL).
Para os testes fiz dois "pograminhas": um que enviava comandos e outro que recebia do outro lado. O receptor fazia i LED do pino 13 piscar, de maneira que, ao ligá-lo numa bateria podia-se identificar se o radinho estava recebendo os comandos, podendo-se assim afastá-lo e medir o alcance.
Abaixo os fontes dos programas:
// Este é o programa que roda no Arduino que fará o
// papel de transmissor
void setup()
{
Serial.begin(9600);
}
void pisca(int c, int v)
{
for(int i=0;i<c;i++)
{
Serial.print('1');
delay(v);
Serial.print('1');
delay(v);
}
}
void loop()
{
// Pisca o LED 3 vezes com intervalo de 200ms, então dá um tempo de 1s.
pisca(3,200);
delay(1000);
}
// Este é o programa que roda no receptor.
int porta_led = 13;
int estado_led = 0;
void setup()
{
pinMode(porta_led, OUTPUT);
Serial.begin(9600);
Serial.println("Digite : ");
Serial.println("1 - Para ligar/desligar o led do Arduino");
Serial.println();
}
void loop()
{
while(Serial.available() > 0)
{
buf = Serial.read();
if (buf == '1')
{
estado_led = !estado_led;
digitalWrite(porta_led, estado_led);
mensagem_estado_led("led ", estado_led);
}
}
}
void mensagem_estado_led(String led, int estado)
{
Serial.print("Led ");
Serial.print(led);
if (estado == 1)
{
Serial.println(" ligado");
}
else
{
Serial.println(" desligado");
}
Dá prá ver que a comunicação com o radinho é serial. Como eu usei a porta serial de hardware do Arduino (objeto Serial), para que estes programas funcionem é necessário que vc conecte os radios à porta serial dos pinos 0 e 1. Lembre-se que, fazendo isso, vc deve desconectar o pino TX toda vez que for atualizar o programa no Arduino. Se vc usar a biblioteca SoftwareSerial que agora vem com o programa do Arduino vc pode usar outras portas para se comunicar com os rádios, dispensando-se de ficar ligando e desligando o TX.
Abaixo fotos do circuito montado.
Testamos o rádio até uma distância de uns 50 metros, sem visada direta, e o bichinho funcionou normalmente. Vamos testá-lo para o envio de textos, mas isso é assunto para outro post.
Abaixo fotos do circuito montado.
Testamos o rádio até uma distância de uns 50 metros, sem visada direta, e o bichinho funcionou normalmente. Vamos testá-lo para o envio de textos, mas isso é assunto para outro post.
Comentários
Postar um comentário