Periféricos do Arduino: A Porta de Comunicação Serial

Este artigo mostra a utilização de um periférico muito útil: A porta de comunicação serial do Arduino, que utiliza o protocolo RS-232.

A porta serial do Arduino é um periférico que pode ser utilizado para a transmissão e recepção de dados. Tanto com um computador como com outras placas microprocessadas, desde que o outro objeto possua porta de comunicação serial.

Apesar de sua grande simplicidade, a versatilidade e a baixa demanda de processamento, aliada a facilidade de uso, garantiram vida longa a este periférico.

Surpreendentemente você pode verificar que a porta serial esteve presente em computadores pessoais (desktop) por décadas, desde o seu surgimento.

E ainda hoje, algumas marcas disponibilizam a porta de comunicação serial como um acessório opcional.

Mesmo que não exista o hardware da porta serial em seu dispositivo, você pode utilizar um conversor USB-serial e ter este periférico no seu computador ou notebook.

 

A Porta de Comunicação Serial do Arduino

Devido a popularização de alguns periféricos, como é o caso da porta de comunicação serial, há necessidade de que a sua implementação (hardware) siga um determinado padrão.

O RS-232 (também conhecido por EIA RS-232C ou V.24) é um padrão de protocolo para troca serial de dados. Ele foi definido em 1969 pela Eletronics Industries Association (EIA).

Tal definição abrange as características elétricas e o hardware utilizado para a comunicação (conectores). A formatação dos dados não é definida no padrão.

Os conectores padronizados para a utilização em portas de comunicação serial do tipo RS-232 são mostrados na Figura 1.

 

Figura 1: Conectores padronizados para a utilização em porta serial padrão RS-232.

 

O conector mais comumente utilizado é o DB-9, enquanto o modelo DB-25 é muito pouco visto em uso atualmente.

 

O protocolo de comunicação serial RS-232

O protocolo de comunicação serial RS-232 utiliza o método de transmissão de dados em série. Isto é, são transmitidos 1 bit por vez, em sequência.

Devido a esta característica, é necessário apenas um fio para a comunicação de dados (desconsiderando o comum e alimentação). Para uma comunicação bidirecional são necessários dois caminhos, um para o envio e outro para a recepção.

O padrão RS-232 especifica os conectores e a sua pinagem, os níveis de tensão nas linhas de comunicação, funcionalidades e os procedimentos de comunicação.

Neste artigo, vamos considerar o conector padrão do tipo DB-9, que é utilizado pela porta de comunicação serial do Arduino.

Níveis de tensão e conexões de hardware

Quanto aos níveis de tensão, são estabelecidos os seguintes valores, para as linhas de dados:

  • Entre -15 e -3 V, nível lógico 1
  • Entre 3 e 15 V, nível lógico 0
  • Valor de tensão entre -3 e 3 V é um nível lógico indefinido.

Todos estes níveis de tensão são relativos ao GND (negativo da fonte de alimentação). A ligação básica da comunicação serial Arduino – Computador é mostrada na Figura 1.

 

Figura 1: Comunicação Serial Arduino – PC.

 

Como os dados são transmitidos e recebidos na comunicação serial

O protocolo RS-232 é definido como assíncrono, já que não possui linha de clock para o sincronismo dos sinais. De fato, o sincronismo é conseguido através da configuração da velocidade de comunicação, ou Baud Rate.

Portanto, os dois dispositivos envolvidos na comunicação devem ser configurados para a mesma velocidade.

O pulso de start (início da transmissão) é utilizado como meio de sincronização entre o transmissor e o receptor. Assim, cada bit transmitido e recebido corresponde ao nível lógico dentro de um espaço de tempo. Com o intuito de facilitar a compreensão, veja a Figura 2.

 

Figura 2: Sinais e tempos de bit (Tb) da comunicação serial RS-232.

 

Nesta Figura, Tb é o tempo de cada bit, que é ajustado através da escolha do Baud Rate. De acordo com esta Figura, é fácil de perceber o estado inicial, de condição inativa, seguido do bit de start (nível lógico 0), depois 8 bits de dados que correspondem ao byte transmitido; Por fim, temos o stop bit (nível lógico 1).

Além deste quadro de bits, é opcional a possibilidade de utilizar um bit de paridade e até dois bits de stop. Todavia, o mais comum é não utilizar o bit de paridade e apenas um bit de stop, como mostrado no exemplo da Figura 2.

O protocolo define ainda outros sinais auxiliares, que podem ser utilizados, de forma opcional. Em virtude desse artigo ser orientado a utilização com o Arduino, que segue o padrão geral mais comumente utilizado, estes sinais não serão abordados.

 

Utilizando a porta serial do Arduino

Agora que já temos a base teórica, vamos à prática! Com a finalidade de simplificar as coisas, eu elaborei uma sequência de passos para a utilização da porta de comunicação serial do Arduino.

A fim de realizar um experimento, vamos simplesmente construir passo a passo a configuração da porta de comunicação serial do Arduino para o envio de dados ao pc.

No exemplo, vamos ler a tensão através do conversor AD do Arduino e transmitir o valor através da porta serial.

Figura 3: Fluxograma de utilização da comunicação serial do Arduino.

 

 

 

 

2 thoughts on “Periféricos do Arduino: A Porta de Comunicação Serial”

    1. Olá Evandro.

      Para a rede RS485, muda apenas a interface/rede. Deve ser adicionado um drive 485 a serial do Arduino. São usados 3 pinos: Tx, Rx e Enable (habilita transmissão ou recepção).
      Logo vamos escrever um artigo falando sobre esse tema.

E aí, gostou? Opine. Assim poderemos melhorar.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *