Professional Documents
Culture Documents
H algum tempo venho pensando em desenvolver um link de comunicao serial entre o PC e o arduino com um
display digital. Algo onde fosse possvel escrever no PC e transmitir para o LCD. Conversando com meu filho sobre
esse assunto tivemos a idia de desenvolver um mdulo transmissor e um receptor sem fio, onde fosse possvel
escrever uma mensagem na tela do PC e esta mesnagem ser transmitida para o LCD remotamente. Pensamos em
algumas possibilidade e aps verificar o que tinhamos disponvel em nossa bancada resolvemos utilizar os Mdulo
RF Transmissor+receptor 433mhz, um LCD de fundo azul e letras brancas, uma placa protoshield, baterias para o
mdulo remoto, fios e conectores.
Comeamos pela montagem da base do LCD que deve ser compacta e por este motivo optamos por montar em uma
ProtoShield que so placas de circuito impresso normalmente projetadas para acoplar em cima do Arduino.e utilizar as
mesmas conexes.
A ligao do LCD ao arduino muito simples, utilizamos os pinos digitais 2, 3, 4, 5, 6, 7 que esto livres e no so
utilizados internamente pela VirtualWire, que falaremos mais adiante.
Na ProtoShield soldamos os pinos refrente as conexes do Arduino para que a placa se encaixe perfeitamente.
Tambm soldamos as barras de conexo que sero usadas para encaixar os pinos de 1 a 16 do LCD e todas as
ligaes referente aos pinos de contraste, backlight e alimentao do mdulo.
No mdulo receptor comum ter mais do que quatro terminais, mas alguns so interligados internamente, voc deve
consultar o Datasheet do fabricante para ter certesa de como fazer as ligaes.
No Arduno que ser usado como transmissor utilizamos o pino digital 12 para a transmisso de dados, que o
default no VirtualWire.h. Os fios positivo e GND foram ligados nos pinos 3V3 e GND.
No mdulo receptor, utilizamos o pino digital 13 para a transmisso de dados, que o default no VirtualWire.h. Os
fios positivo e GND foram ligados nos pinos 5V e GND.
A ps a montagem da ProtoShield, soldagem da barra de terminais no mdulo LCD e os conectores dos mdulos RF,
encaixamos todos os mdulos e conclumos a parte referente ao hardware do nosso projeto.
O VirtualWire uma biblioteca que fornece recursos para enviar mensagens curtas. Pode ser utilizado
com diversos modelos de transmissores e receptores de rdio de baixo custo. Tem tudo o que
necessrio para transmitir e receber dados atravs dos mdulos Arduno. Pode ser baixado de vrios sites
conhecidos que falam sobre Arduino.
O cdigo fonte foi retirado de alguns exemplos e adaptado para exibir mensagens em uma tela de LCD.
//TRANSMISSOR
#include <VirtualWire.h> // you must download and install the VirtualWire.h to your
hardware/libraries folder
char myCmd[16];
int inputSize=0;
void setup()
{
Serial.begin(9600);
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for RF Link module
vw_setup(2000); // Bits per sec
vw_set_tx_pin(12); // Set the digital IO pin to use for transmit data. Defaults to 12.
}
void loop()
{
inputSize=0;
if (Serial.available() > 0) {
delay(300);
inputSize = Serial.available();
Serial.print("inputSize=");
Serial.println(inputSize);
//RECEPTOR LCD
#include <VirtualWire.h>
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int i;
int cont;
int message_ok;
void setup()
{
lcd.clear();
lcd.print("VirtualWire ");
void loop()
{
// set the cursor to column 0, line 1 (note: line 1 is the second row, since
counting begins with 0)
lcd.setCursor(0, 1);
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
//reception to stabilize
message_ok = 0;
cont = 0;
for (cont = 0; cont < 12 ; cont++)
{
delay(50); // wait for reception to stabilize
Serial.print(message_ok);
Serial.print(" ");
lcd.print(buf[i]);
}
Serial.println("");
digitalWrite(13, false);
}else
{ lcd.print("No message.....");}