Ir ao conteúdo
  • Cadastre-se

CIS

Membro Pleno
  • Posts

    290
  • Cadastrado em

  • Última visita

posts postados por CIS

  1. 3 horas atrás, Isadora Ferraz disse:

    já tentou

    #include "c:\seu diretório de includes" pra deixa explícito pro compilador onde ele está ou

    #include <seu diretório de includes> pra implícito

    ?

    Os 2 shifts dão certo. Ache um código que faça isso direto no port de um mc que fica fácil portar pros shifts. Basta só uma rotinazinha de shift

    Quero salvar uma biblioteca na raiz do compilador, pra que ela fique disponível igual as bibliotecas de LCD, adc, etc... Uso o mikroC pro versão 6.0.

    adicionado 3 minutos depois

    @Michel Almeida estou usando o mikroC pro versão 6.0. O que pretendo e incluir uma biblioteca pra que ela fique disponível igual as existentes no compilador (tipo LCD,ADC,etc).  Sobre a leitura do lm35, e ficar lendo e atualizando. Pode ser a cada 2 segundo por exemplo.

  2. Ola pessoal!  Estou procurando uma forma de incluir uma biblioteca na raiz do MikroC, pra usa-la usando a diretiva #include<>.  Alguem sabe o passo a passo de como fazer isso??

    E outra duvida, é :  ler um LM35 com um PIC12F675 e apresentar o valor da temperatura num display LCD 2x16  usando para isso um shifter register74HC595  ou talvez 74HC164 (o que for melhor de manipular). Ainda nao tenho codigo nenhum. Quem puder ajudar, OBRIGADO.

     

    Abraço a todos!!  

  3. Pessoal,  montei um circuito do Medidor de ESR usando o CI 74HC14N, porém nâo estou conseguindo calibrar o mesmo. Adaptei para uso com fonte 12V, regulando a tensão na placa para 5 V com um 7805.

    O que esta acontecendo e que com o passar de alguns minutos, só por estar ligado ele já perde a calibração inicial. Usei resistores de 5% tolerância, será que isso tem a ver ??

    O esquema da montagem que fiz esta ai em pdf.

    Gostaria da ajuda de vocês para resolver isso...

    Desde já obrigado.

    esr_in_circuit_schematic.pdf

  4. 2 horas atrás, JonnyBoyG5 disse:

    Eai galera, estou com m problema em relação ao timer 1, eu habilitei o modo de 16 bits dele, que a resolução é de 65mil, porém quando a contagem do timer 1 chega nos 32 mil ele passa a ser -32 mil, como faço para reverter este problema?

    Qual compilador ?? No mikroC, declare a variavel de contagem como "unsigned"

  5. Na verdade seria um rele temporizado com tempo ajustavel, só que triplo, coisa bem simples.

    Agradeço a atenção , mais ja consegui fazer e ja esta rodando.

    Abrçs

     Conseguiu usando o PIC16F628A ? Estou em um problema parecido. Preciso de um timer com dois ajustes, um ajuste define o intervalo desligado entre 0 e 24 horas, e o outro ajuste define o tempo ligado entre 1 e 10 minutos. Se importa em compartilhar o seu projeto para tentar me ajudar um pouco ?

  6. Contando que alguém esteja seguindo este tópico, com o comparador do PIC12F675 eu resolvi o problema, que o registrador ANSEL, o qual define quais serão entradas analógicas e quais serão digitais. Agora vou partir para o uso do conversor AD.

     

    Por hora, o código do comparador ficou assim :

     

    void main() { 
     
        CMCON = 0b00000001;   // Habilita comparador para modo isolado com saida em GP2
        ANSEL = 0b00000011;   // Define AN0 e AN1 como entradas analogicas
        TRISIO = 0b00000011;  // Define gp0 e gp1 como entrada
        GPIO = 0b00000000;    // Inicia todos os pinos desligados
        
     while(1) {
     
          /*                                     // Bloco IF opcional caso a saida do comparador nao
          if(CMCON.COUT == 1)   // nao esteja ligado direto ao GP2.
              GPIO.F2 = 1;
           else
              GPIO.F2 = 0;
          */
     
       }
    }
  7. Tentativas com o comparador, mas agora me veio uma duvida: Esse comparador so funciona com interrupção?

    vejam o meu codigo que nao esta funcionando. Espero por alguma ajuda.

     

    void main() {
     
       TRISIO.F0 = 1;    // Entrada nao inversora COMP
       TRISIO.F1 = 1;    // Entrada inversora COMP
     
       TRISIO.F2 = 0;    // Saida do comparador
       GPIO.F2 = 0;
     
     
       CMCON.CINV = 0;   // Bit que inverte ou nao a saida  //Se Vin > Vref => S = 0
       
      
       CMCON.CM2 = 0;     //
       CMCON.CM1 = 1;     // Configuração do comparador
       CMCON.CM0 = 0;     //
     
       //VRCON = 0xFC; //tensão interna de referencia 2,5V
     
     
     while(1){
     
           if(CMCON.COUT == 1)
              GPIO.F2 = 1;
           else
              GPIO.F2 = 0;
     
     
       }
    }
  8. Bom, praticamente desconsiderando o desenho citado acima, estou tentando começar pelo firmware  e despois montar e testar no proteus.

    A primeira vista o código esta assim :

     

    /*********************************************************************************

    unsigned float sensor = 0;
    unsigned float ref = 0;
     
    void main()
    {
       CMCON  = 7 ;            // desliga os comparadores
       ANSEL = 0 ;             // Configura entrada analogica AN0
       ADCON0 = 1 ;            // Vdd as Vref
       TRISIO  = 1 ;           // configura a porta gp0 como entrada
       GPIO = 0 ;             // Passa o estado logico 0 para a porta
     
       while(1)
       {
           ref = ADC_Read(0);
           delay_ms(10);
           sensor = ADC_Read(1); // leitura da porta AN1
           delay_ms(10);
     
           if(sensor > ref)
           GPIO.F5 = 0;
           else
           GPIO.F5 = 1;
           delay_ms(10);
           
       }
    }
    ************************************************************************************/
     
    O problema e que o MikroC esta dando um erro na linha de desabilitação do comparador (CMCON = 7) , ja tentei com tres versões diferentes do compilador.
  9. Ok, o hardware que tenho pronto é o da imagem abaixo. Agora preciso de ajudar para compreender se ele usa o comparador ou o conversor...   

     

     

    O hardware nao foi desenvolvido por mim, e nao entendo como posso usar a saida do comparador (Pino 5 do PIC) como entrada. E qual recurso usar para fazer a leitura do sensor e assim controlar uma saida.

    teste comparador.BMP

  10. Obrigado. quanto aos valores, aqui pra mim (moro no interior de MG) os componentes chegam muitos caros : NTC = R$ 0,50 e LM35 = R$ 5,50  fora o frete.

     

    A ideia é para melhorar um projeto simples, mas sem aumentar tanto o custo. Como você citou as funções complexas e existe mesmo a limitação do PIC , vou partir para os comparadores que acredito que vão atender bem as minhas expectativas. Nunca trabalhei com comparadores de uC, mas pela minhas pesquisas parece que não e estão difícil. Ainda não parti para a programação, mas vou tentar uma simulação no proteus e assim que tiver alguma coisa eu posto aqui.

     

    Obrigado de novo.

    Abcs

  11. A aplicação é simples sim, consiste em um termostato que quero melhora-lo. O uso do LM35 fica inviavel devido a diferença de preço entre ele e o ntc. A montagem ainda não fiz, mas a ideia é controlar a temperatura ligando e desligando uma resistência de aquecimento e ter a possibilidade de ajustar a temperatura com um trimpot ou potenciometro..A parte de hardware eu monto fácil usando triac e optoacoplador. O problema para mim esta na entrada analogica e leitura do sensor... agora ja sei que devo montar o divisor e vou pesquisar mais um pouco. Obrigado. 

     

     

    Encontrei na net (vou deixar o link : http://microcontrolado.com/termistor-ntc-10k-no-pic/#comment-290), algo sobre como ligar o sensor, mas preciso de ajuda, e isso e a minha maior dificuldade, passar o código para o mikcroC. A parte de lidar com os registradores do ADC esta sendo um pesadelo pra mim. E gostaria de ter uma ideia de como regular ainda a temperatura, visto que estarei trabalhando com o ADC e nao com o comparador.

  12. Ola pessoal, estou precisando ler temperatura com um NTC10K ligado a um PIC12F675 , mas estou com muitas duvidas. No mikroC PRO  não estou conseguindo inicializar o conversor AD nem o comparador analógico. Também na questão de interfacear o NTC ao PIC, estou com duvida se seria preciso montar um divisor de tensão com o NTC, ou se e possível ligar direto .

    Gostaria de testar com os dois periféricos (AD e Comparador) e observar o melhor resultado para a minha aplicação. Estava um pouco afastado desse mundo de programação, e estou voltando agora.

    Conto com a ajuda de vocês... 

  13. Preciso desenvolver o seguinte sistema. Tenho uma placa solar 12V   600mA. Preciso fazer ela trabalhar em conjunto com a energia vinda da rede da rua. Tenho que manter uma ventoinha ligada sem interrupções direto mesmo, e gostaria de usar a energia da placa durante o dia, e a noite, ou quando a placa não fornecer energia, fosse acionada a energia da rua. Isso automaticamente, como se fosse um comparador de tensão, e quando a placa voltar a fornecer energia, a energia vinda da rua fosse desativada. Não sei bem como fazer isso, aguardo ajuda.

  14. Não sei se funciona, mas testa , e retorna os resultados. Talvez alguém mais pode ajudar...

     

     

    void lee_touch(int1 &tch, int16 &result) {

     // for(i=0; i<10; i++){

        TRISA = 0b11111100;

        PORTA.RA0 = 1;

        ADC_INIT(0);

        delay_us(500);

        value = read_adc(0);

        PORTA.RA0 = 0;

        TRISA = 0b11111110;

        ADC_INIT(1);

        nombre = read_adc(1);

        delay_ms(10);

      }

    }

  15. Pessoal, preciso montar uma matriz de leds utilizando pic em linguagem C , compilador mikroC.  Quanto a montagem do hardware é super tranquilo pra mim, e ate algumas linhas de código. Vou usar um pic(16F877A), alguns 74hc595 e 74hc164.

    Meu problema começa em ter que explicar o código, a varredura e a multiplexação da matriz em uma feira tecnológica da minha escola (curso técnico).

    Será que alguém consegue fazer , ou tem um tutorial  pronto sobre isso, explicando passo a passo o código.

     

    Eu sei que este é um assunto ja debatido aqui, e ate encontrei algum material na net, mas não consegui entender nenhum código pronto da net, nas questões das chamadas de funções e coisas assim, principalmente na montagem da das letras nas matriz.

     

    Agradeço qualquer ajuda. E vou estudar mais um pouco de C... 

  16. Pessoal, estou retomando o projeto. Consegui a precisão para o protótipo, depois de muitos teste e alterações quanto a contagem. Mas agora vou precisar de produzir muitas unidades, cerca de 25, no inicio, e ficar testando um por um será demorado. Creio que exista uma maneira de um mesmo código hexadecimal servir para qualquer PIC 12F675, pois nos teste que realizei, precisei fazer uma especie de "personalização" para cada unidade, porque a contagem de um da sempre diferente de outro.

    Resumindo tudo isso, preciso de ajudar para desenvolver um código em linguagem C com precisão (margem de erro de 15 segundos) num total de 168 horas, usando o PIC 12F675 com cristal oscilador de 8MHZ.

    Segue o código utilizado até o momento.


    /* TEMPORIZADOR 7 DIAS LIGADO . TESTES.

    PIC12F675 ;
    CRISTAL OSCILADOR DE 8MHZ .
    MCLR -- HABILITADO
    WDT -- DESABILITADO
    BROWNOUT -- DESABILITADO
    POWER UP TIMER -- DESABILITADO


    */

    #define motor GPIO.f0

    unsigned int contador = 0; //de 0 a 65.535 variavel de 2 bytes inteira sem sinal
    unsigned int minuto = 0;
    unsigned int segundo = 0;
    unsigned int hora = 0;
    unsigned char buzzer = 0;


    void main(){
    CMCON = 0x07;
    ANSEL = 0x00 ;
    TRISIO = 0x00;
    GPIO = 0x00;

    while(hora < 169 ) { // enquanto hora for menor que 169 ; faça :

    motor = 1; // liga motor

    contador++; // incrementa contador
    delay_ms(1000); // aguarda 1 segundo

    if(contador == 60 ){ // se contador for igual a 60
    minuto++; // incrementa minuto
    contador = 0; // zera contador
    }
    if(minuto == 60){ // se minuto for igual a 60
    hora++; // incrementa hora
    minuto = 0; // zera minuto
    }

    } // quando hora for maior ou igual a 169 , sai do laço while e faça :

    motor = 0; // desliga motor

    for(buzzer=0;buzzer<10;buzzer++){ // aviso sonoro de desligamento do motor.
    GPIO.F1 = 1;
    delay_ms(500);
    GPIO.F1 = 0;
    delay_ms(250);
    }

    }

    A todos, muito obrigado, e em especial aos que tiverem paciência em me ensinar !!!

  17. Valeu Paulo, muito obrigado. Tive uma boa ideia do que fazer. Se puder postar o código, mesmo em basic, eu vou ler e imaginar o que ele faz. Vou seguir com os testes. Estou deixando o timer estourar sem recarrega-lo, consegui um bom resultado com a temporização de um minuto, vendo o acionamento de um led, e cronometrando eu conseguir para o cronometro em 60.09, mas quando coloquei um tempo maior, este .09 se transforma numa diferença muito grande. Fazendo um teste de 24 horas(ainda esta rodando), quero ver quanto será a diferença, eu liguei o circuito ontem as 20:00 horas, o vou observar a que horas ele desligará hoje.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!