Ir para conteúdo
Fórum Script Brasil
  • 0

Teclas, programar pic usando linguagem c


Elécktra

Pergunta

Olá pessoal!

Estou precisando de ajuda para programar teclas de incrementa e decrementa valor, isso pra mim aumentar e diminuir a temperatura

da água através de um peltier. Será que alguém pode me ajudar colocar

essas 2 teclas de + e - que preciso no meu projetinho..está vencendo meu

prazo para entregar meu trabalho e eu nem sei por onde começar a colocar essas teclas no programa...Falou aguardo a ajuda de vocês!

*BEBEDOURO*

Código:

#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 main() {
   
   int16 q;                      //Vaeriável inteira de 16 bits: 0 a 65535
   float p, temp,temp2;                //Variável com vírgula, para poder fazer cálculos.
   

   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. 
     if(temp2>=19)
      output_bit(PIN_B0,1);
      else
      output_bit(PIN_B0,0);
                                   
    
      printf(lcd_putc, "  Bebedouro P&D");
      printf(lcd_putc, " \n TEMP AGUA=%01.1fC ", temp  );//Mostre a temperatura
     

      delay_ms(50);

   }
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...