Вы находитесь на странице: 1из 11

2016

Relatrio do trabalho de
Projetos de engenharia

Breno Velasco;Iglan Cardeal;Renan


Bastos;Thiago Castro;Thomaz de Jesus
Universidade Federal do Par
1/1/2016

Sumrio
Introduo ................................................................................................... .......2
Memria de clculo ................................................................... Erro! Indicador no definido.
Esquemtico do Arduino......................................................................................4
Cdigo comentado...............................................................................................5
Fluxograma..........................................................................................................6
Concluso.............................................................................................................7
Anexo...................................................................................................................8

Introduo
Desde seus primrdios, a humanidade busca organizar e classificar os objetos e acontecimentos
ao seu redor, tentando criar ordem em meio ao caos (o que um pouco irnico j que ao lermos
um livro de aproximadamente 200 pag, e lembrar-se de tudo que fora lido, o crebro ter
aumentado sua ordem em cerca de dois milhes de unidades, mas ter convertido energia
ordenada, na forma de alimento, em desordenada, em forma de calor, aumentando a desordem do
universo em vinte milhes de milhes de milhes de milhes de unidades). Ao tornar sedentrio o
homem, buscou melhorar sua maneira de viver utilizando seu intelecto superior aos outros animais
para criar ferramentas que o auxiliassem em sua tarefa, somado com a necessidade de
compreender o universo, a cincia, de maneira bem lenta comeou a nascer.
Na Grcia antiga os filsofos ajudaram a acelerar o crescimento cientifico humano, mas as maiores
mudanas se deram durante o Renascimento, com Galileu, Newton, Descartes, etc.; logo depois a
Revoluo Industrial acelerou o desenvolvimento do maquinrio humano e mais recentemente as
guerras mundiais, em especial a 2, aumentaram o conhecimento cientifico no campo atmico.
Muitos desses avanos esto presentes no nosso dia a dia, alguns de maneira quase
imperceptvel, entre eles pode-se exemplificar os termmetros de rua e postes de luz, o primeiro,
cujo utiliza princpios de leitura de temperatura que foram definidos por cientistas antes mesmo do
Trecento, em que se ler um valor de temperatura e o mostra em um display de LEDs, j o segundo
utiliza um sensor de luminosidade, tecnologia criada mais recente, para que, caso seja lido um
valor x, o pster acende ou apaga.
No Trabalho que se segue, ser relatado como, utilizado um arduino, um sensor de temperatura
NTC (Termistor), um sensor de luminosidade LDR, um display de LCD, entre outros componentes
eletrnicos, foi montado um leitor de luminosidade/temperatura e mostra os dois valores no display
de LCD e utiliza dos LED para acender de acordo com a temperatura lida. Assim, demostrado que
at tecnologias simples podem ter utilidade no nosso dia a dia e que qualquer um com um nvel
bsico de conhecimento de eletrnica pode montar.

Memria de
clculo
Para o calculo da porcentagem de luz foi estipulado como mnimo 0 e mximo 1000, assim quando
o LDR ler 0 ter 0% de luminosidade e quando for 1000 ter 100%
Logo para o arduino calcular a porcentagem:
% =

10

Esquemtico do
arduino

Cdigo
comentado
O cdigo para o sensor de luz/temperatura comea com dois #include que servem para incluir
bibliotecas no arduino, que no caso deste projeto so a do conversor de temperatura do termistor e
a do LCD; logo aps vem as declaraes de variveis int, que sero usadas no decorrer do cdigo.
No void setup() so declarados o modos em que os pinos se encontram quando o arduino
iniciado, sendo OUTPUT sada e INPUT entrada, e lcd.begin(16,2) mostra que tipo de display esta
seno usado.
No void loop() criado o loop do programa, onde int temperature utiliza a biblioteca includa no
inicio do cdigo, logo aps ele verifica se o valor maior ou menor que 30C e 25C e liga os led
de acordo com o resultado e escreve a temperatura no LCD. Ento ele ler o valor de luminosidade
e converte para porcentagem e mostra no LCD abaixo da temperatura. Entao retornao o loop aps
0,5 segundos.
Dentro do loop criada uma condio, que se e enquanto o boto for pressionado, ele ler o ultimo
valor dos sensores e trava o ciclo.

Fluxograma
FLUXOGRAMA (TEMPERATURA & LUMINOSIDADE)
INCIO

LEITURA DE
TEMPERATURA

LEITURA DE
LUMINOSIDADE

TEMP.
INTERM
EDIRIA
?

LED VERDE: HIGH


LED VERM.: HIGH

TEMP.
ALTA?

LED VERDE: HIGH


LED VERM.: LOW

V
LED VERDE: LOW
LED VERM.: HIGH

EXIBIR LUMINOSIDADE:
%

EXIBIR TEMPERATURA:
%

V
F
BOTO
PRESSI
ONADO
?

BOTO
PRESSI
ONADO
?
F

Concluso
Atravs este projeto podemos fomos capazes de adquirir o conhecimento das vrias possibilidades
que o arduino tem a oferecer, como no caso deste trabalho: sensor de variveis em um ambiente.
Assim como foi possvel adquirir conhecimento de outras bibliotecas para facilitar o uso do
aparelho e assim criar novas possibilidades, novas maneiras de escrever um cdigo. O projeto
tambm serviu para mostrar que diversas ferramentas do dia a dia so possveis de se reproduzir
em escala maior ou menor, por uma pessoa que seja iniciante em engenharia.

Anexo
#include <Thermistor.h> //biblioteca para converao de temperatura
#include <LiquidCrystal.h> // biblioteca do LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // declara os pinos do LCD
int x; //variavel para a leitura de luminosidade
int ledG = 6; // pino do led Verde
int ledR = 7; // pino do led Vermelho
int button = 9; // pino do boto
int EstadoBotao = 0;
Thermistor temp(1); //pino do termistor
const int LDR = 0; //pino do LDR
int ValorLDR = 0; //variavel para leitura de luminosidade
int temperatura;

void setup() {

pinMode(ledG, OUTPUT); //estdado dos leds e do botao


pinMode(ledR, OUTPUT);
pinMode(button, INPUT);
lcd.begin(16, 2); // matris do LCD
}
void loop() {

int temperature = temp.getTemp(); //conversor para temperatura

if (temperature > 30)


{
digitalWrite (ledR, HIGH);
digitalWrite(ledG, LOW);
} else if (temperature < 25)
{ digitalWrite (ledG, HIGH);
digitalWrite(ledR, LOW);
} else if (25 < temperature < 30)
{
digitalWrite (ledG, HIGH);
digitalWrite( ledR, HIGH);
}

lcd.setCursor(0, 0);
lcd.print("Temp: "); // escreve no display a temperatura
lcd.print(temperature);
lcd.println("*C");
delay(500);

//espera 0,5 s

ValorLDR = analogRead(LDR); // ler o luminosidade


x = ValorLDR / 10; // converte para porcentagem
lcd.setCursor(0, 1);
lcd.print("% de Luz = "); // escreve no display a porcentagem
lcd.print(x);
lcd.println("%");
delay(500);

if (EstadoBotao == HIGH)//trava o display do arduino


{ while(EstadoBotao == HIGH)
{
int temperature = temp.getTemp();
lcd.setCursor(0, 0);
lcd.print("Temp: "); // escreve no display a temperatura
9

lcd.print(temperature);
lcd.println("*C");
ValorLDR = analogRead(LDR); // ler o luminosidade
x = ValorLDR / 10; // converte para porcentagem
lcd.setCursor(0, 1);
lcd.print("% de Luz = "); // escreve no display a porcentagem
lcd.print(x);
lcd.println("%");
break;
}
}
}

10

Вам также может понравиться