PLACA McLAB 2 Disciplina: Instrumentação eletrônica Professor: Luciano Cavalcanti Aluno: Sócrates Frederick PLACA McLab 2 PIC-16F877 Hardware Pronto(Enfoque Didático): LCD Alfanumérico Display de 7 segmentos Buzzer Memória Serial EEPROM(Protocolo I2C) Comunicação Serial Conversão A/D Sensor de Temperatura Aquecedor Ventilador Tacômetro Implementando um Sistema de Medição de Temperatura Sensor de Temperatura: Diodo de Sinal 1N4148 – bastante comum no mercado (acessível) e de baixo custo; Relação Tensão X Temperatura; Circuito Amplificador; Conversão A/D; Tabela de conversão - LCD; Datasheet – 1N4148 Sobe Temp = Cai Tensão – Polariza-se o Diodo para uma das curvas de Corrente Direta (IF) Conversão A/D – Tabela de Conversão/Linearização 256 Valores Digitais Correspondendo a 112 Valores Diferentes de Temperatura, correspondendo a 256 valores diferentes de tensão no diodo. – Linearização baseada em valores empíricos a partir de um termômetro padrão. P1 = Potenciômetro de Ajuste de Offset da curva, ajustando a temperatura com uma referência externa.(Calibração) •O Usuário poderá aumentar a temperatura sobre o diodo por meio do controle manual da resistência existente na placa. Isso é feito por intermédio de um dos PWMs (CCP1) do PIC, que se encontra ligado ao resistor. •Por intermédio dos botões S1 e S2 aumenta-se o DUTY CYCLE do PWM, variando de 0 a 100%. Mantendo-se os botões pressionados o incremento/decremento será automático, o valor atual para o aquecimento será mostrado no LCD RESFRIAMENTO Controle: Duty Cycle(0 a 100%) do PWM (CCP2); S3: Aumenta o Duty cycle; S4: Diminui; Cada vez que uma das pás do ventilador passa em frente ao sensor óptico, um pulso é transmitido ao PIC. Como esse sinal está ligado ao pino RC1, utilizamos o TMR1 com incremento externo para contabilizar a quantidade de pulsos gerados. A cada segundo (base de tempo gerada pela interrupção de TMR2), o total de pulsos é transferido para a variável CONT_VENT. Antes de ser mostrado o valor correto no LCD, dividimos o total de pulsos durante um segundo (CONT_VENT) pelo número de pás (pulsos por volta). No caso CONT_VENT será dividido por sete. DESCRIÇÃO GERAL DO ALGORÍTIMO ESTE EXEMPLO FOI ELABORADO PARA EXPLICAR O FUNCIONAMENTO DO TMR1 COMO CONTADOR, UTILIZADO NA PLACA MCLAB2 PARA CONTAR AS ROTAÇÕES DO VENTILADOR. O SOFTWARE CONVERTE O CANAL 0 DO CONVERSOR A/D (SENSOR DE TEMPERATURA). DOIS PWMs FORAM UTILIZADOS, UM PARA MODULAR A RESISTÊNCIA DE AQUECIMENTO E OUTRO PARA A VELOCIDADE DO VENTILADOR. COM AS TECLAS S1 E S2 PODE-SE VARIAR O PWM DO AQUECEDOR E COM AS TECLAS S3 E S4 O PWM DO VENTILADOR. NO LCD SÃO MOSTRADOS OS VALORES DO PWM DO AQUECEDOR, O NÚMERO DE ROTAÇÕES POR SEGUNDO DO VENTILADOR E A TEMPERATURA DO DIODO JÁ CONVERTIDA EM GRAUS CELSIUS. ALÉM DISSO, O VALOR ATUAL DA TEMPERATURA DO DIODO É TRANSMITIDO PERIODICAMENTE ATRAVÉS DA USART(JÁ EM GRAUS CELSIUS). FLUXOGRAMA INICIO Vetor de Reset Pula para inicio do programa Configurações Iniciais: Portas, timers, Interrupções, option Configura Registradores ADCON0 e ADCON1 para Converter o canal 0 do Conversor A/D Sensor de Temperatura Configura registradores CCP1 e CCP2(Tpwm=1ms) PWMs do Vent e Aquec Trava programa e Aguarda estouro do WDT Não Limpa a RAM através De endereço indireto Reset WDT Configura TMR1 como Contador Externo Inicializa Display e Prepara tela principal “Aquec. RPS TEMP.” “000% 000 000ºC” Configura USART para 9600 bps 1 Configura interrupções de TMR2 a cada 10ms Utilizando a base de tempo Dos PWMs 1 Inicia uma conversão AD ADCON0, GO=1 Habilita Flag global Interrupções (GIE = 1) Limpa WDT NÃO Atualizar RPS? SIM Mostra_RPS_LCD NÃO Atualizar Temp? NÃO Trata botao 3 - Resfriamento SIM Botao 3 Pres.? NÃO Trata botao 2 + Resfriamento SIM Botao 2 Pres.? SIM Mostra_TEMP_LCD NÃO Botao 0 Pres.? SIM Trata botao 0 + Aquecimento SIM Trata botao 1 - Aquecimento NÃO Botao 1 Pres.? Referências www.mosaico-eng.ind.br (Fabricante da Placa McLAB 2) Livro: Conectando o PIC – Recursos Avançados 2ª Edição – Autores: David José de Souza e Nicolás Cesar Lavínia – Ed Érica Obrigado e Boas Férias!!!!!