Prática Arduino
Roteiro de Aula Prática
Nome:_______________________________________________________ Matric.:__________________
Sensores de Temperatura, de Distância, de Presença e de Luminosidade
Sensor de Temperatura
Os sensores de temperatura medem a temperatura do ar ao redor do sensor, além da humidade do ar.
Existem vários modelos de sensores de temperatura, cada um com uma margem de erro diferente.
Os mais comuns são o DHT11, que possui margem de erro de 2º C e 5% UR (humidade), e o
DHT22, que possui margem de erro de 0,5º C e 2% UR.
Sensor de distância (ultrassonico)
O Sensor de Distância Ultrasônico mede a distância entre um objeto e o sensor fazendo um cálculo
que se baseia na velocidade da onda propagada e no tempo que demora entre a emissão dela e seu
rretorno.
Página 1 de 4
Sensor de presença
O sensor de presença para o arduino é muito útil para automações residenciais para verificar
presença de animais de maior porte ou pessoas. Para utilizá-lo não é necessário o uso de bibliotecas
adicionais, apenas a função digitalRead().
Sendor de luminosidade (LDR)
O sensor LDR capta a luminosidade do ambiente e retorna ao Arduino um valor analógico. Ele é
muito útil para verificar o estado do dia, em medições em campo (se está de dia, de noite, nublado).
A Prática
Ambos os sensores de temperatura e o de distância necessitam de bibliotecas extras para
funcionares. Elas podem ser baixadas nos links https://github.com/adafruit/DHT-sensor-library
(temperatura) e http://freecode.com/projects/hc-sr04-ultrasonic-arduino-library (distância). O sensor
de presença não necessita de biblioteca, só é necessário coletar o estado dele e verificar se é HIGH
ou LOW. Assim como o de presença, o LDR não necessita de biblioteca. Seu estado é verificado
através do valor analógico retornado por ele.
Ambas as bibliotecas contêm exemplos de uso dos sensores.
Página 2 de 4
Exercícios
Temperatura:
1. Modifique o exemplo de código dado neste roteiro para que, caso a umidade fique acima de
50%, o programa deve imprimir “Humidade acima de 50%”, além do valor da umidade.
Obs.: O valor de humidade lido pelo sensor já é retornado em porcentagem.
2. O programa deve calcular e imprimir a média dos valores da temperatura e da umidade que
foram lidos após cada 2 minutos. Para fazer o teste use segundos.
3. Além da média, o programa deve mostrar a temperatura máxima e mínima.
4. Faça um programa que detecte variações de temperatura em um intervalo de tempo.
OBS.: Abaixo mostramos um exemplo de código que aciona o sensor de temperatura/humidade.
#include "DHT.h"
#define DHTPIN 2
// pino no qual o sensor está ligado
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE); // inicializa o sensor
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity(); //lendo a humidade
float t = dht.readTemperature(); //lendo a temperatura em Celsius
float f = dht.readTemperature(true); //lendo a temperatura em Fahrenheit
// Testa se houve algum erro na medição
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Falha ao usar o sensor DHT11!");
return;
}
}
Presença:
1. Adicione a mensagem “Nenhum movimento detectado” quando o sensor não detectar
movimento.
2. Caso o sensor detecte movimento, faça o LED da placa Arduino acender. Caso nenhum
movimento seja detectado, faça o LED apagar. (Dica: Volte à primeira Aula prática).
3. Modifique o exemplo para contar quantas vezes o sensor foi acionado e qual a média entre
os intervalos de acionamento.
Obs.: O sensor retorna o valor HIGH quando é detectado movimento. Para coletar o valor, use a
função digitalRead(pino);
Página 3 de 4
Distância
1. Execute o exemplo do sensor Ultrasonico.
2. Modifique o exemplo para que quando a distância medida for menor que 10 centímetros,
emita um aviso.
3. Faça com que, quanto menor a distância, menor seja o delay do LED da placa, fazendo com
que ele pisque mais ao aproximar algum objeto do sensor.
4. Emite sons em função da distância ligando um fone de ouvido ou uma alto-falante em outra
saída. Use a função tone() do Arduino.
5. Execute em separado os exemplos digital (toneMelody). Faça um instrumento musical
usando o sensor de distância como entrada para as notas.
#include <Ultrasonic.h> //incluindo a biblioteca do sensor
#define TRIGGER_PIN 12 //definindo as ligações dos pinos do sensor
#define ECHO_PIN 13
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN); //configurando a inicialização do
sensor
void setup()
{
Serial.begin(9600);
}
void loop()
{
float cmMsec, inMsec;
long microsec = ultrasonic.timing(); //realizando a leitura do sensor
//convertendo o valor medido para centímetro
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
//convertendo o valor medido para polegadas
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
Serial.print("MS: ");
Serial.print(microsec);
Serial.print(", CM: ");
Serial.print(cmMsec);
Serial.print(", IN: ");
Serial.println(inMsec);
delay(1000);
}
LDR
1. Faça um programa para medir a luminosidade do ambiente e escreva-a no Serial Monitor
(Dica: use a função map para apresentar um valor mais intelegível no Monitor. Saiba mais
sobre ela nesse link https://www.arduino.cc/en/Reference/Map)
2. Acrescente ao projeto três leds, um verde, um vermelho e um amarelo. Dependendo da
luminosidade do ambiente, faça cada um dos leds acenderem, sendo o verde para muito
luminoso, o amarelo para luminosidade média e o vermelho para baixa luminosidade.
Página 1 de 4
Download

Sensores de Temperatura, de Distância, de Presença e de