Arduino – Exibindo e lendo dados da serial

Arduino – Exibindo e lendo dados da serial

Powered by Rock Convert

Nesta prática você vai aprender a utilizar o monitor serial da IDE do Arduino para exibir e ler dados digitados.

Um dos principais recursos do Arduino é a comunicação serial (UART), pois é a partir dela que podemos enviar o código para a placa, requisitar informações de sensores e módulos, e enviar comandos para que o Arduino execute uma ação:

img01_arduino_exibindo_e_lendo_dados_da_serial

A seguir você vai aprender a exibir informações no monitor serial e enviar comandos para o Arduino através da serial.

Se você ainda não instalou a IDE do Arduino, acesse o link abaixo e em seguida retorne para continuar:

Arduino – Instalação e Configuração da IDE no Windows

Exibindo informações no monitor serial:

Para este primeiro procedimento você vai precisar apenas do Arduino com Cabo USB para conectar ao computador. Se ainda não possui o Arduino, você pode adquirir o seu na loja virtual da MasterWalker Shop.

Não será necessário esquema de ligação, pois vamos utilizar o LED conectado ao pino digital 13 do Arduino.

Abaixo está o código que você deve carregar no Arduino. Conecte o Arduino ao computador, abra a IDE, confira a placa e a porta selecionada e carregue o código na placa:

Terminado o carregamento do código abra o monitor serial para ver as informações em tempo real:

img02_arduino_exibindo_e_lendo_dados_da_serial

Veja que no monitor serial está sendo exibido o estado atual do LED. A informação é atualizada no monitor de acordo com o intervalo que foi definido no código, no caso, a cada 3 segundos. O código está todo comentado para que você possa ler e entender o que cada linha faz.

Lendo dados na entrada do monitor serial:

Agora o que vamos fazer é enviar um comando ao Arduino através do monitor serial e em resposta ao comando enviado o LED do pino 13 irá acender ou apagar e a informação será apresentada no monitor.

Novamente não vamos precisar de esquema de ligação.

Carregue o código abaixo na placa:

 

Terminado o carregamento do código abra o monitor serial. No monitor temos o campo para digitar o comando e o botão de ENVIAR está ao lado do campo:

img03_arduino_exibindo_e_lendo_dados_da_serial

Digite a letra ‘b’ (sem aspas), dê enter ou clique no botão ENVIAR e veja que o LED conectado ao pino 13 vai alterar o estado para ligado e no monitor serial será mostrado esta informação. Digite a letra ‘b’ novamente e o LED será desligado e a informação será mostrada no monitor:

img04_arduino_exibindo_e_lendo_dados_da_serial

Note que utilizamos a mesma letra (b) para controlar o LED. Dentro do código há uma variável chamada ‘status’ que faz o controle do estado atual do LED. Leia o código e entenda o que cada linha está fazendo.

Exibir informações no monitor serial e enviar dados ao Arduino através dele é um recurso extremamente útil. Em muitas situações em que é necessário fazer debug de código, o monitor serial será seu grande aliado!

Gostou deste tutorial? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação pela Faculdade Presidente Antônio Carlos, fundador e CEO da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 4 comentários para esta postagem
  1. Matheus às 11:46

    A pergunta que farei pode ser até um bocado óbvia, mas eu tenho pesquisado sobre tem 2 dias inteiros e ainda não achei nada. Estou trabalhando com um sensor de condutividade(mais especificamente o EZO Circuit da Atlas Scientific) e ele funciona através de comandos digitados pelo usuário no monitor serial( por exemplo, eu digito “R, 30” e o sensor lê a condutividade por 30 segundos, ou eu digito “cal, x” e o sensor calibra, coisas assim), porém eu preciso que o sensor tome medidas a cada x tempo sem que eu precise ficar digitando o comando pro monitor serial. Então minha dúvida de hoje é, tem como eu mandar comandos pro Serial, como se eu tivesse digitando-os no monitor serial, totalmente através do código do arduino? Não sei se me fiz claro, tenho a impressão de que é uma dúvida totalmente básica, mas me peguei sem saber isso, agradeço desde já a atenção.

    • Euler Oliveira Autor às 14:14

      Olá Matheus.

      Agradeço pelo comentário!

      É possível sim.

      Pelo pouco que vi na documentação deste sensor e no código, você pode tentar usar o código que estou deixando abaixo. Neste código foram inseridas as seguintes linhas:

      #include

      SimpleTimer timer;

      timer.setInterval(2000L, enviaComando);

      void enviaComando(){

      inputstring = "cal, x";
      input_string_complete = true;
      }

      timer.run();

      E foi comentado o seguinte trecho:

      void serialEvent() {
      inputstring = Serial.readStringUntil(13);
      input_string_complete = true;
      }

      Como não tenho este tipo de sensor, não sei se irá funcionar de primeira. Faça testes e caso queira adicionar novos comandos, basta inseri-los na função envia Comando ou criar novas funções e seus respectivos intervalos de execução. Coloquei 2 segundos de intervalo, mas você pode mudar para um tempo menor ou maior.

      Segue o código (exemplo com Placa Uno R3):

      • Matheus às 09:07

        Muito obrigado, cara! Realmente me ajudou demais. Assim que eu conseguir testar volto aqui pra dar o feedback e considerações! A atenção e velocidade de resposta que você tem para com os comentários desse blog são fenomenais, parabéns pelo ótimo trabalho! Informação de qualidade e muita prestatividade.

Deixe uma resposta

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