Arduino 8: Monitor serial

O monitor serial é uma tela que aparece no computador quando o Arduino está conectado via USB e que permite imprimir texto enviado pelo programa. Ele pode ser usado para depurar programas, ou exibir dados lidos por sensores.

Para usar o monitor serial, é preciso declarar dentro do bloco setup() a taxa de leitura. Para depuração simples use o comando:

Serial.begin(9600);

Dentro de loop(), quando quiser imprimir algo no terminal use Serial.print() (que imprime texto ou valor de uma variável) ou Serial.println() (que imprime uma nova linha no final). Para imprimir texto, ele deve ser informado entre aspas. Por exemplo, considere o trecho abaixo:

void loop() {
    int estado = digitalRead(9);
    Serial.print("Estado do botão: ");
    Serial.println(estado);
}

O monitor serial pode ser aberto através do menu Ferramentas (ou Tools) do IDE Arduino, ou. Rodando o programa acima, ele irá imprimir “Estado do botão: 0” se o botão estiver no estado LOW, ou “Estado do botão: 1” se ele estiver no estado HIGH.

É mais interessante usar o monitor serial para ler dados gerados por dispositivos analógicos. Faremos isto no experimento a seguir.

Experimento 29 – Termômetro

Material necessário:

  • Arduino Nano + cabo USB + computador
  • Circuito termômetro LM35DZ (veja referência no final da apostila)
  • Protoboard, fios e jumpers

Neste experimento conectamos um componente LM35 ao Arduino para obter a temperatura do ambiente e imprimir o seu valor no monitor serial.

O LM35 é um termômetro de precisão. Ele tem a mesma embalagem (TO-92) que um transistor BC549. Uma vez alimentado com uma tensão entre 5 e 15 V nos seus terminais externos, o terminal central apresentará uma tensão relativa ao terminal negativo proporcional à temperatura ambiente. Aos 25 graus Celsius essa tensão medirá 0,25V, e varia 0,01 volts para cada grau acima ou abaixo com margem de erro de 0,5 graus dentro da faixa 2 a 100 graus Celsius.

Veja a pinagem do LM35 na referência ao final da apostila. Ligue o seu pino VCC no pino 5V do Arduino, e o GND do LM35 em qualquer um dos dois GND do Arduino. O pino central OUT fornecerá a medida da tensão e deve ser ligado a qualquer uma das entradas analógicas (A0 a A7) do Arduino.

No programa abaixo ligamos terminal OUT do LM35 na entrada analógica A1.

#define TERMOMETRO A1

void setup() {
    Serial.begin(9600);
}

void loop() {
    int leitura = analogRead(TERMOMETRO);
    float volts = (leitura / 1024.0) * 5.0;
    float celsius = (volts) * 100.0;
    Serial.print("Temperatura: ");
    Serial.println(celsius);
    delay(2000);
}

A leitura analógica do Arduino varia de 0 (0 volts) a 1024 (5 volts). Portanto é preciso dividir por 1024 e multiplicar por 5 para obter o valor real em volts que está no terminal OUT do LM35. A leitura em graus Célsius será este valor multiplicado por 100.

Neste programa a temperatura é impressa a cada 2 segundos no monitor serial. O circuito funciona apenas conectado ao computador. Para tornar o termômetro independente do computador teríamos que elaborar um circuito de saída capaz de indicar a temperatura. Poderia ser um par de displays de 7 segmentos, um display de cristal líquido, uma série de leds, etc.

O próximo experimento combinará o uso de entradas e saídas analógicas para controlar a velocidade de um motor.