Escolar Documentos
Profissional Documentos
Cultura Documentos
Grupo:
RECIFE,
27 DE JUNHO DE 2010
SUMÁRIO
1 INTRODUÇÃO ....................................................................................................................... 3
2 OBJETIVO .............................................................................................................................. 4
3 DESENVOLVIMENTO.......................................................................................................... 5
3.1 Visão Geral do Projeto ...................................................................................................... 5
3.2 Controlador ....................................................................................................................... 6
3.3 Sensor de Luminosidade ................................................................................................... 8
3.4 Sensor de Temperatura ................................................................................................... 10
3.5 Motor DC ........................................................................................................................ 12
3.6 Ponte-H ........................................................................................................................... 13
3.7 PWM ............................................................................................................................... 15
3.8 Capture ............................................................................................................................ 16
3.9 Comunicação Serial ........................................................................................................ 17
3.10 Programa ....................................................................................................................... 18
4 CONCLUSÃO ....................................................................................................................... 20
5 REFERÊNCIAS .................................................................................................................... 21
APÊNDICE A – ESQUEMA COMPLETO DO CIRCUITO .................................................. 22
APÊNDICE B – CÓDIGO DO PROGRAMA ......................................................................... 23
APÊNDICE C – LISTA DE COMPONENTES E CUSTOS ................................................... 32
3
1 INTRODUÇÃO
Após uma fase inicial de estudos optou-se por utilizar a linguagem C, pois a mesma
possibilita um maior nível em comparação com o Assembly RISC do PIC, facilitando o de-
senvolvimento do programa com várias funções prontas.
Como o projeto propunha apenas os requisitos mínimos a serem utilizados, foi criada a
ideia de um sistema de controle em um hall de um hotel, pois seria necessário utilizar sensores
de luminosidade, temperatura, de presença, motor DC, assim como as funções de PWM e
Capture do PIC.
Este relatório está dividido em cinco partes. A Introdução mostra uma visão simplifi-
cada do projeto e o que ele representa a esta disciplina, no item Objetivo é mostrada a finali-
dade do relatório, na seção de Desenvolvimento apontamos passo-a-passo as etapas de reali-
zação do projeto, na Conclusão são apresentados os conhecimentos adquiridos e por fim as
referências.
4
2 OBJETIVO
Este projeto tem como objetivo o desenvolvimento de um sistema que controle o hall
de um hotel, com a função de garantir um maior conforto para os hóspedes e um melhor aten-
dimento por parte dos funcionários do estabelecimento em questão.
3 DESENVOLVIMENTO
3.2 Controlador
PINO 1: Suporta 3 níveis de tensão. Quando este pino estiver recebendo 5V, o micro-
controlador estará em condições de executar o programa. Quando este pino receber 0V
(GND), o PIC será “resetado”. Quando este pino receber tensão de 13,4V, o PIC irá
entrar em modo gravação.
PINOS 11 e 32: Alimentação (máximo 5V)
PINOS 12 e 31: Referência (GND)
PINOS 13 e 14 : Onde estará ligado o resonador externo (cristal de clock).
7
Os demais pinos são conhecidos por I/Os (Inputs/Outputs). Estas I/Os são agrupadas
em PORTs (portas), de no máximo 8 pinos cada (limitação pois o componente possui um nú-
cleo de 8 bits).
Quando um pino é configurado como ENTRADA, ele pode ser conectado a algum
sensor para detectar sinais digitais através de variação da tensão de 0 e 5V. Quando um pino é
configurado como saída, o programa poderá acioná-lo, e com isso gerar uma corrente baixa
(max. 20 mA) com os níveis de tensão de 0V ou 5V.
Alguns pinos, porém, possuem outras funções além de serem entradas ou saídas digi-
tais. Por exemplo, pode-se observar que os pinos 2 a 10 (exceto o pino 6) são entradas analó-
gicas, e podem ser usados para detectar uma variação de tensão entre 0V e 5V, transformando
esta variação em uma informação binária de 10 bits. Os pinos 39 e 40 também são pinos usa-
dos na gravação do microcontrolador, e os pinos 25 e 26 são usados para comunicação SERI-
AL padrão RS232. Os pinos 16 e 17 são pinos geradores de pulso (PWM), que é similar a
uma saída analógica. Muito útil para controle de velocidade de motores, por exemplo. O pino
6 é um pino usado para contagem rápida.
8
Com o LDR pode-se fazer o controle automático de porta, alarme contra ladrão, con-
trole de iluminação em um recinto, contagem industrial, todos estes fotocontrolados para a
operação de um relé, por exemplo.
Como foi dito anteriormente o LDR tem sua resistência diminuída ao ser iluminado. A
energia luminosa desloca elétrons da camada de valência para a de condução (mais longe do
núcleo), aumentando o número destes, diminuindo a resistência.
9
Foram feitas medidas da resistência do LDR variando a intensidade de luz. Como não
se dispunha de equipamentos sofisticados para medição de intensidade luminosa, foram utili-
zados quatro níveis de luminosidade: totalmente coberto, parcialmente coberto, fracamente
iluminado e diretamente iluminado. Foram medidas as resistências para cada caso.
Após isso montou-se um divisor de tensão com um resistor de 47kΩ. A partir disso
foram encontrados os níveis de tensão para cada caso. Sabe-se que para a conversão analógica
digital do PIC com 8 bits, de 0 a 5V corresponde a 0 a 255 em binário. Neste caso foram en-
contrados valores e determinados os níveis de luminosidade correspondentes a serem usados
no programa.
No caso da sua colocação no hall do hotel teria que se ter cuidado de que ele ficasse
em uma posição que recebesse a luz natural, mas que não fosse iluminado pelas luminárias, já
que neste caso estaria ocorrendo uma realimentação indesejada e o sistema poderia ficar a-
cendendo e apagando lâmpadas seguidamente.
10
Termistores são resistores sensíveis a temperatura cuja função principal é exibir uma
mudança grande, previsível e precisa em resistência elétrica quando um equipamento ou pro-
duto sofrer uma mudança na temperatura de corpo.
O termistor utilizado foi o 103 AT-5-TP, que tem 10kΩ a 25ºC com uma faixa de ope-
ração de -50ºC a 110ºC.
3.5 Motor DC
Um dos itens sugeridos para o projeto foi um motor DC, que é uma máquina elétrica
capaz de converter elétrica em energia mecânica.
Foi decidido pelo grupo que o mesmo seria utilizado para a abertura e fechamento da
porta do hotel. O motor utilizado foi o de 9V MMI-659RK (Singapore).
Foram feitas medidas com o motor e observou-se que ele não é simétrico em relação a
velocidade, tensão e corrente. Os valores obtidos estão em tabelas a seguir.
3.6 Ponte-H
Apesar de não ser tão conhecida, um dos circuitos mais importantes na elaboração de
sistemas automatizados é a ponte H. Trata-se de um circuito utilizado para controlar um motor
DC a partir de sinais gerados por um microcontrolador.
Também é importante para a utilização com circuitos digitais, pois como os sinais de
saída dos microcontroladores não suportam a corrente necessária e nem possuem a tensão
adequada para acionar um motor, é necessária uma unidade de potência que possa alimentá-lo
convenientemente.
Quando ligamos um motor DC com uma bateria, observamos que ele gira numa velo-
cidade constante e numa única direção. Para alterarmos o sentido da rotação do motor, basta
apenas ligar os terminais do motor de forma invertida.
Para que não seja necessário fazer essa operação manualmente, podemos utilizar uma
ponte H. Pode-se criá-la facilmente com a finalidade de controlar o sentido da rotação de um
motor utilizando chaves simples, relés ou transistores, bastando apenas entender o seu funcio-
namento.
Dependendo de como essas chaves são abertas a corrente irá fluir em um sentido ou
outro. No caso são utilizados transistores bipolares de junção dos tipos NPN e PNP como
chaves. Assim garante-se que a corrente flui no sentido desejado.
3.7 PWM
3.8 Capture
Este módulo tem como objetivo a contagem de tempo entre dois eventos ocorridos em
um dos pinos CCP. Para isso será utilizado como base de tempo o Timer 1 e no momento do
evento seu valor será capturado, daí o nome capture. Como o Timer 1 é de 16 bits, a captura
será feita em dois registradores: CCPRxH e CCPRxL.
Com esse recurso é possível criar um medidor de período, contando o tempo gasto, por
exemplo, entre duas bordas de subida da onda ligada ao pino CCP. É importante observar que
a captura de valor de Timer 1 não reseta o mesmo, e por isso, para definir-se o tempo real
entre duas leituras será necessário uma conta de subtração entra a última leitura e a anterior.
Esta conta deverá ser implementada pelo programa.
No programa a idéia inicial seria utilizar o captura para medir o tempo que demora até
um cliente ser atendimento no balcão da recepção do hotel, porém não foi possível implemen-
tar essa função no programa.
17
Para controlar essa comunicação foi utilizado o programa RogerCom, que pode ser
encontrado na pagina HTTP://www.rogercom.com.
3.10 Programa
Quando o sensor de presença é ativado, ativa o maotor DC, abre a porta, verifica se o
sensor ainda está ativado, para a prevenção de acidentes e depois fecha a porta. Através do
computador, devidamente conectado ao sistema através da porta serial, padrão RS-232, o usu-
ário poderá obter o valor da temperatura, o número de luminárias acesas, o estado da porta e o
número de ar-condicionados ligados.
4 CONCLUSÃO
Este trabalho foi muito importante, graças a ele, podemos obter um maior conheci-
mento sobre o funcionamento de microcontroladores na prática e como eles podem ser aplica-
dos no cotidiano de um hotel. Também foi importante lidar com o enorme desafio de fazer um
projeto que atendesse as especificações necessárias e ao mesmo tempo resolver, de maneira
criativa, os problemas que foram surgindo durante a realização do trabalho.
5 REFERÊNCIAS
/*
Universidade Federal de Pernambuco
Centro de Tecnologia e Geociências
Curso de Engenharia Eletrônica
Projeto Final de Microcomputadores
Professor: Mauro
Grupo:
Dennis Victor Soares Lima
Mozart Castro Melo
Pedro Lyra Pereira Cabral
Ulisses Santiago Rodrigues Batista
--------------------------------------------------
Projeto proposto:
Aplicação em Hotelaria:
1- Pelo menos duas variáveis analógicas (Temperatura e Luminosidade);
2- Função do PIC – PWM e Capture;
3- Sensor de Presença (Digital);
4- Motor DC;
--------------------------------------------------
Lê o valor da luminosidade através da conversão analógica/digital;
Quando o sensor de presença é ativado, ativa o motor o DC, abre a porta, verifica o sensor e depois fecha a porta;
O sistema deve ter uma interface com o computador através da porta serial, padrão RS-232;
O usuário pode observar valor de temperatura, número de luminárias acesas, número de ar-condicionados acesos,
estado da porta;
Deve ter um sistema que captura o estado do tempo para ver o tempo que demora ao cliente ser atendido;
---------------------------------------------------------------------
*/
#include <16F877A.h>
#device adc=8
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
//#FUSES WRT_50% //Lower half of Program Memory is Write Protected
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#include <stdio.h>
//Prototipos de rotinas
void detecta_presenca(void);
void abre_porta(void);
void espera_porta(void);
void fecha_porta(void);
void verifica_luminosidade(void);
void compara_luminosidade (void);
void verifica_temperatura (void);
void compara_temperatura (void);
void controle_luminosidade (void);
void controle_ar (void);
void controle_porta (void);
void controle_pwm (void);
//Definicao de variaveis
unsigned int temperatura;
unsigned int luminosidade;
unsigned int N_lampada=0,N_ar=0;
int modo_operacao;
int porta_fechada=0;
do
{
abre_porta(); //chama a funcao abre porta
porta_aberta=input_state(fimdecurso_abre); //pega o valor do fim de curso
}while(porta_aberta==0); //continua abrindo ate atingir o fim de curso
do
{
espera_porta(); //apos abrir aguarda
sensor=input_state(presenca); //espera que o sensor de presenca fique baixo
}while(sensor==1);
do
{
fecha_porta(); //fecha porta
porta_fechada=input_state(fimdecurso_fecha); //pega o valor do fim de curso
}while(porta_fechada==0); //continua fechando ate atingir o fim de curso
espera_porta();
}
//interrupcao serial
#INT_RDA
void recebe_serial()
{
modo_operacao=getc();
printf("\r\nInterrupcao serial\r\n");
}
{
if (temperatura>nivel_temperatura) //se a temperatura for maior que certo nivel
{
OUTPUT_high(ar1); //liga o ar1 e ar2
OUTPUT_high(ar2);
N_ar=2;
}
else
{
OUTPUT_high(ar1); //caso contrario, liga ar1 e desliga ar2
OUTPUT_low(ar2);
N_ar=1;
}
}
{
output_low(lamp1); //apaga todas as lampadas
output_low(lamp2);
output_low(lamp3);
output_low(lamp4);
N_lampada=0;
break;
}
}
}
//controle do PWM
void controle_pwm()
{
long int ciclo=0; //cria a variavel long int ciclo
long int porcentagem=0; // variavel porcentagem
}
set_pwm1_duty(ciclo); //seta o duty do pwm como valor do ciclo
setup_timer_2(T2_DIV_BY_4, 250, 1); //Deve ajustar o timer 2 apos isso
porcentagem=ciclo/10.24; //Da o valor do duty em percentual do tempo
printf("\r\nO Duty Cicle esta em %Lu %c\r\n",porcentagem,'%');
}
printf("\r\nSistema inicializado.\r\n");
modo_operacao='m';
while(modo_operacao=='m')
{
disable_interrupts(int_ext);
disable_interrupts(int_rda);
break;
}
}
while((modo_operacao=='a')||(modo_operacao!='m'))
{
setup_ccp1(CCP_OFF);
output_high(pin_c2);
verifica_luminosidade();
compara_luminosidade();
verifica_temperatura();
compara_temperatura();
printf("\r\nTemperatura atual:%u \r\n",temperatura);
printf("\r\nLuminosidade atual:%u \r\n",luminosidade);
printf("\r\nNumero de lampadas:%u \r\n",N_lampada);
printf("\r\nNumero de ar-condicionados ligados: %u\r\n",N_ar);
printf("\r\nPressione 'm' para ativar o modo manual.\r\n");
}
32
Capacitores
Eletrolítico 1uF 4 0,60 2,4
Transistores
BC547 - NPN 4 0,21 0,84
TIP31 - NPN 2 1,57 3,14
TIP32 - PNP 2 1,82 3,64
TIP132 - Darlington - NPN 1 2,81 2,81
TOTAL 70,07