Introdução a comunicação Serial

Em telecomunicações e ciência da computação, comunicação série é o processo de enviar dados um bit de cada vez, sequencialmente, num canal de comunicação ou barramento. Para ocorrer uma transmissão é necessário que o receptor e o transmissor estejam sincronizados, ou seja, o emissor deve definir uma taxa de transmissão e acordar essa taxa com o receptor para que os bits transmitidos sejam interpretados corretamente pelo receptor. A figura 1 mostra a transmissão da sequência numérica 00111011 através de uma comunicação serial onde cada bit tem um tempo bem definido.

Figura 1. Representação da transmissão serial do bit 00111011 
Quando usamos o Arduino para uma comunicação serial é necessário configurar essa taxa de Transmissão  conhecida com Baud rate que indica o número de bits transmitidos por Segundo. Por exemplo, 9600 baud equivale a 9600 bits por Segundo.

Para configurar o uso da serial no Arduino e definir o baud rate basta usar o comando Serial.begin na função void setup conforme mostra o trecho do código abaixo.

void setup() 
{
  Serial.begin(9600);  // inicializando comunicação serial com Baud rate de 9600
}

Para realizar os primeiros programas usando a serial, vamos usar os comandos print e read:

Função Serial.print

Função Serial.print é usada para envio de informações do Arduino para o PC e a sintaxe é dada por:

Serial.print(Argumento);




onde argumento pode ser um texto (sempre enviado entre "") ou uma variavel.

Exemplo1: Envia de texto do Arduino via porta serial


void setup() 
{
  Serial.begin(9600);  // inicializando comunicação serial com Baud rate de 9600
}

void loop() 
{
  Serial.print("Ola Funalo! Seja bem-vindo ao maravilhoso mundo do Arduino");
}

O resultado do código acima pode ser vista no serial monitor conforme figura 2.
Figura 2. Tela do Serial monitor - Envio de dados do Arduino para o computador
Exemplo2: Envia uma variável do Arduino via porta serial:
........
void loop() 
{
  int x;
  Serial.print(x);
}

Função Serial.read

Função Serial.readé usada para envio de informações do PC para o Arduino onde a sintaxe é dada por:

Serial.read();

onde o valor enviado pelo PC deve ser armazenado numa variavel.


Exemplo3: Envia uma variável do Arduino via porta serial


void setup() 
{
  Serial.begin(9600);  // inicializando comunicação serial com Baud rate de 9600
}

void loo() 
{
  int x;
  Serial.print(x);
}

Alem dos comando basicos comentados acima, o Arduino possui diversas funções utilizadas em porta serial que podem ser estudadas diretamente na pagina do Arduino clicando aqui

Com base nessa breve introdução faça os exercícios propostos.... 

Exercício 1- Faça um programa faça o LED piscar com uma frequência de 0,5 Hz., cada vez que o LED piscar, uma mensagem deve ser enviada para a serial informando "LED ligado" ou LED desligado". O LED deve ser polarizado como mostrando na postagem anterior. Não lembra? Clique aqui.

Figura 3. Circuito ligando 1 LED atraves da porta serial


Exercício 2- Usando o mesmo circuito da figura 3, faça um programa de acenda um LED via porta serial. Para acender o LED, o usuário deve digitar a letra "A" no monitor serial.

Exercício 3- Usando o mesmo circuito da figura 3, faça um programa de acenda e apague um LED via porta serial. Para acender o LED, o usuário deve digitar a letra "A" e para apagar o LED, o usuário deverá digitar "B" no monitor serial.

Exercício 4- Agora faça um programa que controle 3 Led's via porta serial onde as letras "a","b" e "c" irão ligar os Led's (cada Led será aceso por uma letra) e as letras "z", "x" e "c" irão apagar os Led's.


Desafio: Agora faça um programa que controle 3 Led's via porta serial onde as letras "a","b" e "c" irão ligar os Led's (cada Led será aceso por uma letra) e as letras "x", "y" e "z" irão apagar os Led's.
Cada vez que um led foi ligado ou desligado o programa deve informar via serial

Figura 4. Circuito que deve ser implementado no desafio através da porta serial
Desafio 2: Agora além de avisar qual Led esta sendo ligado ou desligado, o Arduino deve informar quantos Led's estão ligados naquele momento.
Obs.Não considerar que o usuário tentará acender um Led já aceso ou apagar um Led já apagado.

Desafio 3: Agora além de avisar qual Led esta sendo ligado ou desligado, o Arduino deve informar quantos Led's estão ligados naquele momento. O sistema deve ser inteligente o suficiente para não mostrar o numero de Led's ligado errado quando um usuário enviar um comando para apagar um Led que já está apagado.

Ainda ta com duvida, ou que saber a resposta do desafio, curta nossa pagina no facebook no link abaixo e poste sua duvida lá.


Nenhum comentário:

Postar um comentário