FAÇA UM FREQUENCÍMETRO PARA SEU RECEPTOR – COM PIC 16F628A (REF130)

Gostaria de ler a frequência sintonizada por seu receptor em um display LCD?

Através da leitura da frequência do oscilador local e subtraindo a frequência intermediária, poderemos ler diretamente a frequência sintonizada. Isto pode ser bem comodo, dispensando a escala mecânica. São inúmeros projetos na Internet com este tópico, sendo que alguns tem até recursos para alterar o valor da frequência de FI, sem necessitar uma compilação do programa.
Esta versão, no entanto, é bem simples, podendo se alterar os valores no arquivo ‘C’ e recompilando, sem muitas facilidades. Geralmente, usamos de forma definitiva em um receptor, não justificando código adicional , que talvez, nunca seja usado. Veja o esquema abaixo:

Para fazer a leitura da frequência, foi usado o Timer 1, em uma janela de tempo de 1 segundo. Um pré-amplificador com 2 transistores eleva o nível de sinal para valores apropriados a entrada do Timer 1. Um Trimpot de 4k7 foi usado para ajustar adequadamente o valor da tensão nesta entrada. Inicialmente, podemos fazer um ‘jump’ entre a entrada do frequêncimetro com o pino 16 do PIC. O Trimpot deve ser ajustado de forma a apresentar a frequência do próprio oscilador do pic, no caso, a frequência de 20 Mhz. Depois de ajustado, poderemos ligar a entrada no oscilador local do aparelho, se for para uso junto ao receptor. A apresentação é feita em um LCD de 16×2, usando apenas 4 linhas para os dados enviados. Para calibrar o equipamento, foi previsto um Trimmer de 3-30 pF. Pode-se usar um frequencímetro padrão para isto. A alimentação poderá ser fornecida pelo próprio receptor, com ajuda de um regulador 7805.
Caso necessite adicionar ou subtrair o valor da frequência intermediária, comente/descomente as linhas de código,conforme abaixo:

//==============================================================================
//ESCOLHA AQUI O VALOR DA FREQUENCIA INTERMEDIARIA (NÃO USE PONTOS OU VIRGULA):

int32 const valor_FI = 8988300; //FI Altere conforme a freq. intermediaria
//int32 const valor_FI = 8989000; //FI Altere conforme a freq. intermediaria

//==============================================================================
//ESCOLHA A AÇÃO: SE DEVERÁ SOMAR OU SUBTRAIR (EM ‘HZ’)
//OBS.CASO NÃO NECESSITE SOMAR OU SUBTRAIR, APENAS LER A FREQUÊNCIA REAL, ENTÃO
// COMENTE AS 2 LINHAS ABAIXO.

// #define soma_freq_intermediaria //DESCOMENTE PARA SOMAR VALOR DA FI
#define subtrai_freq_intermediaria //DESCOMENTE PARA SUBTRAIR VALOR DA FI

//OBS. DESCOMENTE APENAS UMA OPÇÃO.
//==============================================================================

Depois, deverá recompilar o projeto para obter o novo arquivo Hex, que será usado para carregar o PIC16f628a.
OBS. Esta montagem foi feita apenas em placa de protoboard, sujeita a bugs ainda não identificados, sendo fornecido os arquivos que poderão ser modificados conforme a necessidade do hobista.

Segue pasta zipada com os arquivos do projeto feito em compilador “C” ( Atenção: Este hex nesta pasta, está compilado em modo “subtraindo FI” de 8,989.000 mhz. Caso necessite outros valores ou ainda sem o recurso de somar/subtrair, então comente as linhas conforme o explicado no artigo acima e recompile. Verifique se abaixo não tem alguma versão já compilada, que possa usar.) :

freq_cw

Para facilitar, segue uma versão com compilação que subtrai 455 Khz da frequência de entrada e em Hertz:

freq_cw_sub_455khz

Adicionalmente, segue uma versão com compilação que subtrai 455 Khz da frequência de entrada, com 1 dígitos após a virgula e em Kilohertz:

freq_cw_AM

Também, para quem desejar ter apenas a leitura direta da frequência de entrada, sem necessitar somar ou subtrair alguma frequência Intermediária, deverá usar esta versão:

freq_cw_no_FI

Em 08/08/2016 foi postado esta versão com uso de outros pinos do microcontrolador para comunicação com o LCD (compilado para leitura direta da frequência de entrada. Altere para outras opções no arquivo c e recompile para obter novo arquivo hex):

FREQ_CW_GEN

Manuais:
PIC16f628a

Curiosidades:
Espantosos sentidos no mundo animal
“Um trabalhador incansável”
Proteja sua audição!
Escritório ou trincheira?
Manter sigilo — ontem e hoje
Qual o objetivo dos cuidados paliativos?
A língua da selva — segredos da comunicação entre os animais
O que leva um homem a bater na mulher?
O que é cistite intersticial?
O que você deve saber sobre epilepsia
Como recuperar-se de um divórcio

Outros assuntos:
Um site para você
Recuperar a confiança
Como disciplinar seu filho adolescente
Por que eu me corto?
Desempenhem bem o papel de pais
Como fazer seu segundo casamento dar certo
O que acontece quando morremos?
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Ensine seus filhos bons principios com atividades de colorir
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Entrevista com um bioquímico
Adolescentes- O que fazer se estou sofrendo bullying?
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?
Perguntas Bíblicas Respondidas

Até o próximo artigo!!!

104 comments on “FAÇA UM FREQUENCÍMETRO PARA SEU RECEPTOR – COM PIC 16F628A (REF130)

  1. Boas Claudio de db4 a db7 bate com uma placa que tenho aqui agora
    rs esta no pino 18 rw esta a terra do display E esta no pino 1 do pic poderia alter por gentileza para eu aproveitar a placa grato Claudio

    1. Olá Marcos!
      Qual montagem e pasta você se refere? Se for do frequencímetro tem 4 opções. E o restante do circuito da entrada também dará certo? Caso efetivamente de certo esta entrada, para alterar este único pino terá que alterar o conteúdo da biblioteca para o LCD vista no programa como:
      #include //arquivo para lcd na portb
      Esta biblioteca foi escrita para usar somente o portb ou portd (conforme o pic) como saída, sem opção para fragmentar os pinos em outras portas. Terá que pesquisar por uma que permita tais mudanças ou efetivamente adapta-la para esta nova funcionalidade.
      Claudio

      1. Claudio só preciso que RS do seu projeto seja mudado para pino 18 do pic , e o E do display para o pino 1 pino 13 mantem em RW do display forte abraço

        1. Olá Marcos!
          Como disse, terá que ser mudado na biblioteca do include LCD_S.H. Quando tiver um tempinho vou ver como poderia ser feita esta alteração nesta biblioteca para deixa-la mais usual na questão dos pinos. Você não respondeu qual versão você deseja usar das 4 postadas.
          Claudio

          1. obrigado Claudio, vou precisar usar offset diferentes então vou precisar ficar mudando os valores neste ponto esta correto.

            int32 const valor_FI = 8988300; //FI Altere conforme a freq. intermediaria

          2. Olá Marcos!
            Quando tiver um tempo vou trabalhar na biblioteca para esta substituição do pino.
            Cláudio

  2. Claudio, bom dia.
    Vou tentar montar esse frequencimentro para ligar em um radio px.
    Tenho algumas duvidas pq nao conheco muito bem eletronica.
    Voce teria um layout da placa de circuito impresso desse frequencimentro ? Outra duvida eh em relacao da ligacao do frequencimetro ao radio. Aonde devo ligar ?

    1. Olá Lfarah!
      Eu não fiz montagem em placa, apenas em placa experimental (protoboard). Talvez algum colega que acompanha este blog possa ter feito e também te dar alguma dica sobre onde ligar o circuito. Mas creio que deve variar de aparelho para aparelho e sempre na parte do oscilador local. Não sou a melhor pessoa para informar isto. Geralmente quem mexe com PY ou PX ou sites desta natureza.

      Cláudio

      1. Ok Claudio.
        Muito obrigado por responder.
        Aproveitando o post, voce tem algum projeto parecido com o que pretendo fazer ?
        Vou transformar uma fonte de PC para ser uma fonte de bancada com regulagem de tensão.
        Quero colocar um display desses de 16×2 para exibir as informações corrente e voltagem ?

        1. Olá Lfarah!
          Ainda não tenho um projetinho com medida de corrente e tensão. Mas creio que existem muitos sites que fornecerão esquemas e firmware para você montar.
          Cláudio

    1. Olá Domingos!
      Mas está funcionando? Você está medindo alguma coisa com ele, como o 60 hz ao tocar na entrada?
      Note que esta montagem seria a parte básica do frequencímetro, e se for usado para medir sinais de baixa amplitude terá de usar um pré-amplificador, de preferência de ganho automático. Esta parte já não é comigo, mas poderá pesquisar na internet por tais circuitos.
      Cláudio

        1. Olá Domingos!
          A frequência vai de 0 a aproximadamente 50 Mhz. Este valor final é dependente da velocidade do port do pic, variando de pic para pic um pouco. Pelo menos 40 Mhz deveria conseguir medir. Talvez o sinal que você está medindo não tenha amplitude suficiente ou a regulagem do trimpot não está adequada. Certifique de usar transistor para alta frequência ( pois alguns não conseguem ganho em alta frequência).
          Cláudio

          1. Olá Domingos!
            A escala está em hz. Então será 131030 hz. O que você está ligando na entrada para TESTE?
            Claudio

          2. Olá Domingos!
            Você tem outro frequencimetro para medir em comparação?
            Senão, poderá fazer um oscilador a cristal onde você saberá a frequência gerada e comparar com a lida.
            Claudio

          3. Olá Domingos!
            O campo elétrico gerado pelo 60 hz pode ser mais fraco em alguns lugares do que em outros (depende se tem muitos fios da rede passando perto). Não se preocupe. Mas pode acontecer também de não ler 60 hz ao tocar com as mãos,mas estar lendo valores estranhos como o que você citou, até com as pontas de medição desconectadas. Isto se deve a alta sensibilidade da entrada. Resolve colocando um resistor de alto valor (1 M ohms), da entrada ao gnd. O importante é que esteja lendo corretamente. Quanto a atingir o valor máximo entre 40 e 50 Mhz, dependerá da sensibilidade do circuito de entrada (ganho dos transistores em rf) e da amplitude da fonte de sinal (alguns casos terá que ter um pré amplificador de rf).
            Cláudio

          4. Olá Domingos!
            Deveria ler também. Qual é a tensão do ponto que está medindo? Tem componente continua? É alta tensão? Lembrando que o circuito não foi projetado para altas tensões, pois necessitaria colocar um capacitor isolador de 1 uf/600v na entrada, com um resistor de usn 2k em série, além de 2 diodos limitadores em contrafase, da gate do transitor fet para o gnd.
            Cláudio

          5. Olá Domingos!
            Sei que é óbvio isto, mas colocou o gnd ligado também ao circuito ? Alguns mosfet recebem pulsos por meio de transformadores de isolamento. Neste caso, precisa colocar a ponta viva no gate e outro no source.
            Cláudio

          6. sim claudio eu ligo o negativo no negativo onde quer medir a frequencia e a ponta prova no gate mas nao tenho susseço entereçante claudio frequencia de cristal ele medir normal
            tipo cristal 20mhz ele medi agora pra medi oque nessecito ele nao medir 😥

          7. Olá Domingos!
            Quando você faz a medição com frequencimetro o que acontece? Marca alguma coisa? Apaga? Reinicializa ?
            Claudio

          8. Olá Domingos!
            O que eu gostaria de saber é se o display mostra 0 hertz, ou algum número com 72495,4 ou mesmo mudando o valor de forma estranha, ou mesmo se fica piscando ou apagado. Você já experimentou medir com outras ondas quadradas que não na fonte chaveada?
            Cláudio

          9. ja sim claudio sabe aquela mediçao pra regular ele que vc mecionou 20mhz no pino 16 ele mede os 20mhz correto normal agora oque nessecito ele nao mede ele mostra 0hz no display quando vou medir outro tipo de frequencia
            o display fica dando uma piscadinha bem rapido mas nao ler por acaso se eu enjeta a frequencia direto ele funciona?

          10. Olá Domingos!
            Sabemos que o frequencímetro está operacional, porque mede os 20 Mhz do cristal. Creio que o problema está no acoplamento dele com o circuito a medir. Penso que possa estar acontecendo uma de 3 possibilidades:
            1) Ocorre um forte sinal que reseta o pic e ele não chega a medir (congela o display em 0).
            2) Um sinal de entrada com uma tensão muito alta, que desestabiliza o funcionamento.
            3) Ou um sinal extremamente fraco, que o frequencímetro não consegue capturar.

            Você precisa identificar o que ocorre. Meça com um osciloscópio qual é a amplitude do sinal que você está desejando medir. Se for um sinal abaixo de 0,2 volts, necessitará um pré-amplificador de sinal de entrada.
            Se for muito alto, precisará atenuar o sinal. Poderá colocar outro capacitor em série com a entrada (100nf/400v) e no ponto que liga ao frequencímetro, ligue dois diodos em contrafase ao gnd, para limitar o sinal a 0,7 volts máximos.
            No caso do primeiro caso, a montagem deve estar, de preferência, montada em caixa metálica para impedir sinais interferentes.
            Você tem o esquema do que você quer medir ou parte dele? Se tiver, envie para o email ‘claudio@picsource.com.br’ para dar uma olhada.
            Claudio

          11. Olá Domingos!
            Analisando o circuito que você mencionou, eu acredito que não está lendo por ser necessário alterar o capacitor da entrada de 22 pf (usado para frequências altas em MHZ) para um valor em torno de 100nF/400v, e aproveite para colocar os 2 diodos em contrafase. Coloque também um resistor de 1k em série com o capacitor, para proteção. A reatância capacitiva do capacitor de 22 pf é muito alta para medições em frequências baixas como em KHz.
            Experimente fazer estas alterações e retorne, por favor, o resultado.
            Cláudio

    1. Olá Marcos!
      O pic 16f628a não tem pinos suficientes para usar 6 dígitos, exceto em que se use um chip adicional para a multiplexação dos displays. Talvez um 14028b (bcd para decimal), que usa apenas 4 pinos do pic, mas tendo 10 saídas disponíveis para acionar os catodos (ou anodos) dos displays. Também o uso de um shift register ou mesmo um pic com mais pinos, como o 16f873. Mas fica gravada a sua sugestão. Obrigado!
      Claudio

Comments are closed.

Back To Top