Projeto: Ligar e desligar uma lâmpada quando anoitecer e amanhecer automaticamente.
Descrição: O projeto liga e desliga uma lâmpada automaticamente através de um sensor de luminosidade (LDR). Quando anoitece o sensor detecta a falta de luz solar e aciona a lâmpada, quando amanhece o sensor detecta a presença de luz solar e desliga a lâmpada.
Vantagem: Economizar energia de ambientes abertos, como garagens postes e até simulação de tráfego de pessoas dentro de uma casa.
Resumo de funcionamento de um comparador analógico.
Quando a tensão na porta não inversora é maior que a tensão na porta inversora a saída do comparador é a tensão +V, quando a tensão na porta inversora é maior que a tensão na porta não inversora a saída do comparador é a tensão -V.
Como a tensão do comparador interno do microcontrolador é a tensão de alimentação, sendo assim a tensão -V é igual a GND e a tensão +V é igual a VCC.
O microcontrolador que utilizaremos é o PIC18F4520, o comparador analógico ou "AMPOP" pode ser utilizado em diversas configurações, a configuração de trabalho neste microcontrolador é a comparador analógico.
Na figura acima podemos identificar dois comparadores, que exitem neste microcontrolador podendo formar diversas configurações de trabalho, a configuração que iremos utilizar é a de dois comparadores independentes.
Note que os pinos RA0,RA3 e RA1,RA2 formam as entradas, analisando o comparador 1 (C1) quando a tensão no pino RA3 for maior que a tensão no pino RA0 a saída será 5V, assim podemos acionar um driver para ligar uma lâmpada.
O circuito abaixo mostra a configuração de hardware para o projeto:
Segue o código.
/*********************************************************************
PROJETO CORUJA ELETRÔNICA Hi-Z Vale
Autor: Rodrigo Mira
e-mail: hizvale@hizvale.com.br
www.hizvale.com.br
Comparador Analógico
**********************************************************************/
#include <P18F4520.h> // biblioteca do PIC
#include <ancomp.h> // biblioteca do comparador analógico
#pragma config OSC = HS
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config PWRT = OFF
#pragma config BORV = 3
#pragma config WDT = OFF
#pragma config WDTPS = 32768
#pragma config MCLRE = ON
#pragma config LPT1OSC = OFF
#pragma config PBADEN = OFF
#pragma config STVREN = ON
#pragma config LVP = OFF
#pragma config XINST = OFF // Extended Instruction Set
#pragma config CP0 = OFF
#pragma config CP1 = OFF
#pragma config CPB = OFF
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRTB = ON // Boot Block Write Protection
#pragma config WRTC = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
void main (void)
{
ADCON1 = 0x0F; // desliga conversosr A/D
TRISD = 0x00; // configura PORTD como saída
TRISA = 0xFF; // configura os PORTA como entrada
/**************************************************************
Configuração do Comparador
A função abaixo configura o comparador analógico
com as saída 1 e 2 invertidas, 2 comparadores independentes
e interrupção desabilitada.
Open_ancomp(COMP_1_2_OP_INV&
COMP_1_2_INDP&
COMP_INT_DIS );
Para maiores informações abra o arquivo PIC18 Peripheral Libraries
no caminho C:/MCC18/doc/periph-lib/ANCOMP.htm
**************************************************************/
Open_ancomp(COMP_OP_INV_NONE&
COMP_1_2_INDP&
COMP_INT_DIS);
for(;;){
if(CMCONbits.C1OUT == 1){ // testa o bit que sinaliza a saida do comparador 1
PORTDbits.RD0 = 1;
}
else PORTDbits.RD0 = 0;
}
}
Utilize o kit Easy 18F da Hi-Z Vale para esta aplicação!
Nenhum comentário:
Postar um comentário