Ir ao conteúdo
  • Cadastre-se

Alterando amplitude no pic


Posts recomendados

 Obrigado pela ajuda , a parte de potscaler e prescaler já pesquisei e sei como fazer,debounce vou me aprofundar mais , estou mandando a imagem de como deve ficar as frequências , todas são ativadas por botões separados e só desligam pelo mesmo botão , a lógica dos botões já fiz e testei falta só fazer as frequências estou trabalhando com o 16f8777,compilador ccs,aprendi aqui muita coiusa que eu não sabia , agradeço a ajuda de todos , tenho me aprimorado e aprendido coisas novas para mim sobre pic .

post-516771-0-33936500-1398182532_thumb.

Link para o comentário
Compartilhar em outros sites

@fabiano aladin,

 

Para fazer esses sinais que voce mostrou, o ideal é o conceito de máquina de estados. Não são apenas frequências, e sim são tempos determinados para cada nível, alto e baixo, em sequência de eventos. Bem diferente de apenas gerar uma frequência....

 

Pelo menos é um projetinho divertido !

 

Paulo

Link para o comentário
Compartilhar em outros sites

@fabiano aladin,

 

Existe uma matéria espeçifica para estudar sobre esse assunto, a gente aprende a fundo na Faculdade. Envolve muita coisa para ser discutida neste tópico, vou tentar simplificar para a parte mais prática :

 

Sua primeira forma de onda ( você chamou de Frequencia 1 ), existem 4 estados diferentes ( pode chamar de EVENTOS ), o primeiro gera uma frequência de 1 Kh durante um certo tempo  (primeiro estado) , depois gera um nivel baixo por outro tempo ( segundo estado ), e por aí vai. Ou seja, posso dividir essa primeira forma de onda em 4 estados diferentes. Usando o Timer, posso programar os tempos envolvidos em cada estado, e com flags que me sinalizam em qual estado meu processo está, eu posso gerar as ondas de cada um. Ou seja, divido o problema grande em vários problemas menores, bem mais simples, todos seguindo um diagrama de tempos para ser executado.

 

Esse é o procedimento para todas as 4 formas de ondas de sua figura.

 

Vou te indicar um link, que mostra bem o conceito de máquina de estado. Não se assuste com a teoria toda, porque na prática é muito, mas muito mais simples :

 

http://www.clubedaeletronica.com.br/Automacao/PDF/Capitulo%20006%20-%20Logica%20ladder%20-%20utilizando%20maquinas.pdf

 

Procure na iNTERNET , tem muita informação sobre esse assunto porque ele é o coração de um controle de processos industriais.

 

Paulo

Link para o comentário
Compartilhar em outros sites

      Fiz um trabalho parecido com clp, pelo que entendi eu crio uma frequência com timers e depois utilizo as flag para colocar os intervalos maiores, a que possui duas frequências juntas(600hz e 1khz )vai ser formada com 2 frequências mesmo!Uma grande dúvida é ser com um timer eu consigo criar mais de um contador(flags)para contar estouro  do timer? Através desse tópico fui pesquisando e aprendendo muito!

Link para o comentário
Compartilhar em outros sites

@fabiano aladin,

 

O que voce vai criar com o Timer são períodos de tempos, e se voce, baseado neles, inverter o estado da saída em múltiplos desse tempo, voce consegue fazer uma frequência, ou multiplos dessa frequência, tudo baseado no período de tempo do Timer.

Para este seu rojeto, o período de tempo em que a saída fica em um estado ou inverte o estado é que vai determinar o restante.

 

Veja que eu escolhi a frequência de 3 Khz, simplesmente porque eu posso gerar as outras duas frequências, apenas dividindo por numeros inteiros ! Portanto, falando em períodos de tempos, basta eu multiplicar o período da frequência de 3 Khz por numeros inteiros, e consigo gerar as outras duas frequências !

 

Flags são variáveis de apenas um bit, e voce pode criar quantas delas voce quiser. Vai precisar também criar alguns contadores.

 

voce não vai mudar o estouro do Timer, a interrupção sempre vai ser gerada igual, com o mesmo período de tempo, e no caso que eu citei, esse período é de 166,16 microsegundos! voce vai implementar contadores dentro dessa rotina de interrupção, e conforme as contagens deles, é que voce vai gerar as formas de ondas que voce deseja, entendeu ?

 

Nada te impede de criar, por exemplo , 6 contadores dentro da rotina de interrupção do Timer, e incrementar todos eles , e comparar os valores das contagens com uma tabela que voce vai criar, para obter as mudanças das saídas de acordo com contagens específicas. Isto é apenas uma das maneiras , mas é a que eu faria, pois é muito simples e fácil de ser verificada.

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

@fabiano aladin,

 

O que voce vai criar com o Timer são períodos de tempos, e se voce, baseado neles, inverter o estado da saída em múltiplos desse tempo, voce consegue fazer uma frequência, ou multiplos dessa frequência, tudo baseado no período de tempo do Timer.

Para este seu rojeto, o período de tempo em que a saída fica em um estado ou inverte o estado é que vai determinar o restante.

 

Veja que eu escolhi a frequência de 3 Khz, simplesmente porque eu posso gerar as outras duas frequências, apenas dividindo por numeros inteiros ! Portanto, falando em períodos de tempos, basta eu multiplicar o período da frequência de 3 Khz por numeros inteiros, e consigo gerar as outras duas frequências !

 

Flags são variáveis de apenas um bit, e voce pode criar quantas delas voce quiser. Vai precisar também criar alguns contadores.

 

voce não vai mudar o estouro do Timer, a interrupção sempre vai ser gerada igual, com o mesmo período de tempo, e no caso que eu citei, esse período é de 166,16 microsegundos! voce vai implementar contadores dentro dessa rotina de interrupção, e conforme as contagens deles, é que voce vai gerar as formas de ondas que voce deseja, entendeu ?

 

Nada te impede de criar, por exemplo , 6 contadores dentro da rotina de interrupção do Timer, e incrementar todos eles , e comparar os valores das contagens com uma tabela que voce vai criar, para obter as mudanças das saídas de acordo com contagens específicas. Isto é apenas uma das maneiras , mas é a que eu faria, pois é muito simples e fácil de ser verificada.

 

Paulo

DEscupe pertubar  todos, mas tentei fazer o programa e agora usando o pic16f628a , e a frequência que estou tentado fazer d começo é de 1 khz , mas meu programa só fornece a freqência de 5k , não sei como resolver estou tendo problemas nessa freqência que seria a mais fácil.

Alguém pode me ajudar ?

Alguém pode me dizer onde errei?

Alguém poderia me passar a fórmula correta do cálculo do tempo do tempo de interrupção ?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...