Ir ao conteúdo
  • Cadastre-se

Acender led com com PIC


Marcãooo

Posts recomendados

olá pessoal é uma pergunta bem mais simples agora!

eu montei meu programinha para ler dois sensores LM35 ,ta funcionando certinho, mais acontesce que eu queria fazer uma coisa, eu quero que quando a temperatura do peltier, no caso temp2, chegasse a ser =<20° ascendesse um led e quando ela fosse menor do que 20° o led apagasse, mais para isto eu acho que presciso habilitar mais um pino do controlador no caso o PIC16F877A,n tenho ctza e nem sei como faço isso entendeu?

quando a temperatura chegar ou passar de 20° um pino x do controlador manda tensão para um led para acende-lo, eu só n sei como escrevo isso no programa ;S

preciso da sua ajuda desde ja eu agradesço!!

olha ai o programa em C como esta

#include <16F877A.h>             //O PIC utilizado, obigatório!
#device adc=10 //Habilitar ADC de 10 bits, obrigatório. Pode
//ser utilizado de 8 bits também.
#FUSES NOWDT //Sem Watch dog, evitando reset
#FUSES XT //Crystal de oscilação igual a 4mhz
#FUSES PUT //Tempo de início do PIC
#FUSES NOPROTECT //Codigo sem proteção de leitura, software livre!
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection

#use delay(clock=4000000) //Meu clock
#include <LCD.C> //Rotina de LCD modo 4 vias. Obrigatório!

void lcd_scroll_right(void)
{
lcd_send_byte(0, 0x1E);
}

void main() {

int16 q,i; //Vaeriável inteira de 16 bits: 0 a 65535
float p, temp,temp2; //Variável com vírgula, para poder fazer cáclulos.


setup_adc_ports(AN0_AN1_VSS_VREF); //Configura canal 0 analógico
setup_adc(ADC_CLOCK_INTERNAL); //De acordo com relógio interno.

lcd_init(); //Inicia LCD, obrigatório!

for (; //Para sempre.
{
/*===========================================================================
A resolução do conversor AD segue a seguinte equação:
1LSB=(Vref-)+{[(Vref+)-(Vref-)]/1024}
E nesse caso (Vref+)=Vdd e (Vref-)=Vss então a resolução é:
1LSB=5/1024=4,8mV
Por exemplo, se a leitura no canal analógico for de 512, a tensão
analógica será:
Vin=512*(5/1024)=512*4,8mV=2,4576V
===========================================================================*/

set_adc_channel(0); //Habilita canal 0
delay_us(20); //Espera um pouco, obrigatório!
q = read_adc(); //Lê canal 0
p = 5.0 * q / 1024.0; //Conversão para tensão.
temp=(p*100)/3.413; //Temperatura convertida de acordo com o
//amplificador utilizado.
set_adc_channel(1);
delay_us(20);
q = read_adc(); //Lê canal 0
p = 5.0 * q / 1024.0; //Conversão para tensão.
temp2=(p*100)/3.413; //Temperatura convertida de acordo com o
//amplificador utilizado.


printf(lcd_putc, " \n TEMP AGUA=%01.1fC peltier=%1.1fC ", temp, temp2 );//Mostre a temperatura

delay_ms(500);

for(i = 0; i < 22 ; i++) //Faz o efeiro de scroll no LCD
{
lcd_scroll_right();
delay_ms(200); // scroll delay
}

delay_ms(500);

}
}

valeu Pessoal me ajudem por favor abrass

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...