Você está na página 1de 10

Sistema de controle de temperatura e luminosidade

Nardini Claizoni Queiroz


June 29, 2019

1 Introdução
O projeto visa implementar um sistema de controle de temperatura e luminosidade utilizando
o microcontrolador PIC16F877A . Para isso são utilizados os softwares MPLab e Protheus onde
são desenvolvidos o programa e o circuito protótipo respectivamente.

2 Objetivos
O problema consiste em um sistema de controle de temperatura e luminosidade para a loja
apresentada na figura 1 e deve seguir os seguin requesitos:

• O sistema só deve ser inicializado mediante a partida.


• Ajustar PWM do ventilador para 10 % e desligar Ar-condicionado quando a temperatura for
menor que 20ºC.
• Ajustar PWM do ventilador para 25 % e desligar Ar-condicionado quando a temperatura
estiver entre 20ºC e 25ºC.

• Ajustar PWM do ventilador para 70 % e ligar Ar-condicionado quando a temperatura estiver


entre 25ºC e 30ºC.
• Ajustar PWM do ventilador para 90 % e ligar Ar-condicionado quando a temperatura for
maior que 30ºC.

• Ligar conjunto de luminárias 1 e ligar conjunto de luminárias 2 se estiver escuro.


• Ligar conjunto de luminárias 1 e desligar conjunto de luminárias 2 se estiver sombra.
• Desligar conjunto de luminárias 1 e desligar conjunto de luminárias 2 se estiver claro.

• Entrar em modo de consumo mínimo se não houver pessoas na loja.

1
Figure 1: Representação da loja.

Para conseguir realizar o controle seguindo os objetivos mostrados acima foi utilizado o PIC16F877A
ligado aos elementos mostrados no diagrama de blocos da figura 2, onde à esquerda temos os ele-
mentos de entrada e a direita as saídas.

PIC.png

Figure 2: Diagrama de blocos.

3 O código
Nas sessões a seguir será explicado o funcionamento do código e também será apresentado o
código propriamente dito.

3.1 Fluxograma do código


O código utilizado para controlar o sistema de segurança funciona de acordo com fluxograma
da figura 3. Estão representados:a rotina principal no primeiro fluxo da esquerda e as demais
rotinas e interrupções estão à direita. Após inicializar todos os registros especiais entra na na
rotina principal, nela ele aguarda em modo sleep pela interrupção externa da porta RB0. Quando

2
a porta RB0 é acionada indicando a partida do sistema o PIC entra na rotina de interrupção da
porta RB0 que acende o led de "POWER"(Porta RB1) indicando que o sistema foi inicializado. Em
seguida o sistema segue o fluxo e checa se há pessoas na loja através do sensor de presença(Porta
RB2) , se não houver todas as saídas são desligadas para reduzir o consumo da loja, se houver
pessoas o programa segue e chama em sequência as rotinas de: aquisição de temperatura, controle
de temperatura, aquisição de luminosidade e controle de luminosidade. Por fim o loop é acionado
mandando o programa de volta para o check de pessoas.

Figure 3: Fluxograma do código.

3.2 O código em assembly e registradores especiais


A seguir na figura 4 podemos ver o código em assembly que possui sua execução explicada nos
próprios comentários assim como a configuração de todos os registradores especiais.

3
Figure 4: Código assembly.

Figure 5: Código assembly.

4
Figure 6: Código assembly.

Figure 7: Código assembly.

5
Figure 8: Código assembly.

Figure 9: Código assembly.

6
Figure 10: Código assembly.

Figure 11: Código assembly.

7
Figure 12: Código assembly.

Figure 13: Código assembly.

8
Figure 14: Código assembly.

4 Esquema elétrico e simulação


Utilizando o software protheus implementamos o circuito apresentado na figura e realizamos
sua simulação.Na imagem estão identificados todas as entradas e saídas do sistema como pode ser
visto.

Figure 15: Fluxograma do código.

5 Conclusão
A partir da simulação foi constatado que o sistema operou de acordo com as requisições do
projeto. É possível concluir que a linguagem de programação assembly apesar de promover um
poder maior sobre a implementação do programa, ou seja, é possível descrever exatamente como o
programador quer que o hardware opere ela torna o desenvolvimento lento por o código ser muito
grande diferentemente da linguagem C que utiliza funções predefinidas.Outro ponto a ser salien-
tado diz respeito ao próprio microcontrolador que quando comparado aos ESPs e Arduinos pode

9
ser notado que todas configurações dos registros especiais excetuando-se as portas são realizadas
automaticamente pelo microcontrolador baseando-se no código do programador.

10

Você também pode gostar