Comunicação serial do Arduino


A comunicação serial permite o Arduino se comunicar com o outros dispositivos, um exemplo é o computador.
No comutador esse comunicação pode ocorrer pela porta USB ou dos pinos digitais 0 e 1 se for o arduino UNO ou Leonardo. O pino 0 é o RX, usado para o recebimento de dados e o pino 1 é o TX usado para o envio. Se você olhar na sua placa do arduino verá que há dois LEDs verdes escrito RX e TX. Perceba que toda vez que envia seu código para o arduino eles piscam, isso se dá pelo fato do código estar sendo enviado para o seu arduino via serial.


A IDE do arduino possui a ferramenta Monitor Serial na qual é possível monitorar a porta serial que o arduino está conectado, bem como fazer o envio de dados para a mesma.
Para exemplificar faremos um projeto que irá receber e enviar dados via serial, onde, ao pressionar um botão irá imprimir uma string na tela e ao enviar caracteres para o Arduino acenderá (quando enviar 1) e apagará um LED. Monte o circuito abaixo e codifique.






01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void setup(){
  pinMode(8, INPUT);//Define o pino 8 como entrada
  pinMode(9, OUTPUT);//Define o pino 9 com saída
  digitalWrite(8, HIGH);//Ativa o resistor de pull-up da porta 8
  //Inicializa a porta serial definindo uma velocidade de comunicação de 9600 bps
  Serial.begin(9600);
}
void loop(){
  int pIn = digitalRead(8);//Lê o pino 8
  if(pIn == LOW){//Caso o botão for pressionado
    Serial.println("Botao Pressionado...");//Escreve a string na serial
  }
  if(Serial.available()){//Verifica se chegou algum byte
    char pRec = Serial.read();//Lê o que foi enviado
  if(pRec == '1'){//Caso for 1 acende o LED
    digitalWrite(9, HIGH);
  }else{//Caso contrário apaga o LED
    digitalWrite(9, LOW);
  }
  Serial.write(pRec);//Imprime o que foi enviado
  }
}


Carreguem o código para o arduino e abram o Serial Monitor.





Percebam que quando o botão é pressionado, é impresso "Botao Pressionado...". Notem também que ao enviar o caractere "1" (sem aspas), o LED é aceso e ao enviar qualquer outra coisa ele se apaga. Acredito que a essa altura vocês já devam ter se dado conta de como a comunicação serial poderá ajudar vocês a depurarem seus projetos futuros.

Comentários

olá amigo
estou tentando montar um projeto em que dois arduinos se comuniquem por meio de rf sendo que quando pressionar um botão o transmissor envie uma frase e o receptor mostre essa frase no lcd sem o uso do serial monitor apenas pressionando botão
Ribeiro disse…
Ok Vamos lá, Acredito que comunicação seja a RF 433mhz, Recomendo o tutorial http://blog.filipeflop.com/wireless/modulo-rf-transmissor-receptor-433mhz-arduino.html. Acho que é o mesmo projeto que tu quer fazer.
O serial Monitor é apenas uma ferramenta pra te ajudar a simular uma comunicação entre dois devices.