Arduino – Comunicação Serial

Chegou o último episódio da série de Arduino! Nessa aula você vai aprender a enviar um valor numérico pela porta serial de forma formata, mostrando os caracteres no formato ASCII. A recepção é feita normalmente num computador e também num maravilhoso osciloscópio Tektronix enviado pela CISTEK.

O que é comunicação serial?

Qualquer comunicação em que a informação é transmitida bit a bit, em série, é denominada serial. Diversos protocolos foram criados ao longo da evolução eletrônica, mas alguns obteram maior sucesso. Para comunicar o Arduino com outros periféricos e até um computador, utilizaremos o protocolo USB, umas das formas mais utilizadas de comunicação.

Conversão UART -> USB

O microcontrolador do Arduino não contém, internamente, um periférico USB. Não obstante, estão presentes periféricos para outros tipos de comunicação serial. Todo hardware serial assíncrono, onde não temos presente uma linha de clock, é denominado UART – Transmissor e Receptor Assíncrono Universal – em inglês.

UART não denomina um protococo de comunicação, mas sim um layer mais baixo aonde camadas de software podem faze-lo inteligível para outros protocolos de comunicação mais abstratos.

No hardware Arduino está presente um conversor UART -> USB, um chip que torna os dados transmitidos serialmente pelo Arduino compatíveis com interfaces USB. No lado do receptor, um computador por exemplo, o conjunto será visto como uma porta padrão RS-232 virtual, onde a comunicação pode ser estabelecida facilmente.

Velocidade (baudrate)

Em protocolos assíncronos é muito importante que ambos os lados (transmissor e receptor) utilizem a mesma velocidade de transmissão. Como o clock não está sobreposto ao sinal e também não está presente uma linha separada de sincronismo de símbolos, a única forma do receptor interpretar corretamente os símbolos enviados pelo transmissor é sabendo, de antemão, a velocidade usada na transmissão. Dessa forma o receptor pode estimar o clock e decodificar corretamente cada símbolo.

A taxa de símbolos é denominada baudrate e, como na transmissão serial binária cada símbolo transporta um bit, o baudrate acaba sendo igual a taxa de bits. Então, um baudrate de 9600 bauds/s, por exemplo, significa uma taxa de 9600 bits/s. A configuração do baudrate é feita na inicialização da porta serial.

Configuração e uso:

O uso de uma porta serial no Arduino segue dois passos básicos, a configuração e envio/recebimento de dados.

Na configuração vamos, basicamente, setar o baudrate. Você provavelmente fara essa parte dentro da função padrão setup(). Outros parâmetros também podem ser configurados, mas não veremos isso nessa aula.

Com a configuração feita, podemos facilmente utilizar a porta serial com os comandos de envio e recebimento de dados. Em projetos avançados costumamos fazer comunicação byte a byte, utilizando um protocolo específico do projeto. Nessa aula, utilizamos um comando que já formata a informação numérica no formado ASCII, para visualização direta num terminal.

Uma explicação completa do código utilizado pode ser vista no final do vídeo, no inicio do post.

Essa aula foi um oferecimento da CISTEK , líder em instrumentos de medição para engenharia e eletrônica.

logo