Ir ao conteúdo

Posts recomendados

Postado

Olá, pessoal!

Comecei um novo projeto e nele preciso criar ondas (senoidais... quadradas... tanto faz) porém, devo ser capaz de manipular a sua frequência.

O requisito é que as frequências possam variar de 1Hz até uns 300 Hz...

A ideia inicial é que através de um potenciômetro seja possível mudá-la.

 

Andei pesquisando sobre os componentes 555, 741... Mas não consegui simular nenhum no Proteus.

Enfim, alguém conhece algum bom circuito simplesinho para tal objetivo?

Agradeço desde já!

  • Membro VIP
Postado

Bom, eu acho que você conseguiu o mais difícil que é não conseguir simular pois na net tem muitos exemplos

O que eu acho é que a faixa tá grande demais pra algum circuito funcional simples. Neste caso permita-me te sugerir um circuito com uC (e não ao contrário). Com microcontrolador além da versatilidade fica muito + simples. P.ex. use uma rede R2R ou um filtro RC numa saída pwm

O quê? Não entende nada de uC´s? Então aproveita! Taí a oportunidade de se introduzir no mundo do uC .. Sem medo .. kk

abç

Postado

@Isadora Ferraz ,

 

Ou algo muito melhor para um microcontrolador : gerar por DDS.... super preciso, distorção baixíssima, e pode gerar onda quadrada, senoide, triangular, dente de serra, etc....

 

Por exemplo, um simples Arduíno, um display baratinho, alguns resistores, e 3 pequenos botões e já está feito !

 

Ou um pequeno Atmega da vida, ou Attiny2313, e nem precisa do Arduíno.

 

Paulo

  • Membro VIP
Postado

8bad29e508c4428d92ddd888ef58fb384e307a3d

 

 

Dos mais simples dos geradores. 1/4 de um CI tipo LM4093 e mais alguns componentes. Depois que conseguires "ver" que ele oscila, pelo piscar do led, divida o valor do capacitor por 10 ou 20 (coloque de 10 nF a 100 nF) e ele estará gerando frequência na faixa de áudio..

 

Veja a síntese do que é um gerador de frequência variável de onda quadrada, tirando o fato de que ele está erroneamente citando o pino 4 quando deveria ser o pino 1

 

Veja como é o CI completo:

image001.jpg

 

 

Gerador%20simples%20de%20onda%20quadrada

 

 

 

  • Curtir 1
Postado

@Isadora Ferraz , Poxa, nunca passou pela minha cabeça que daria pra utilizar um microcontrolador pra isso. A ideia do PWM é muito boa em hehehe

@aphawk , Cara, você descreveu exatamente o que eu preciso. Mais pra frente hei de usa diferentes tipos de ondas. Nunca tinha ouvido esse termo DDS antes, vou pesquisar aqui. Se você tiver algum material que ache legal... se puder enviar seria muito bem aceito ;) 

@faller , Montei o circuito aqui no Proteus, mas deu erro na hora de simular... Tô começando a achar que o meu programa que tá bichado kkkkkk

Bom, estudando um pouquinho sobre sinais fiquei com algumas dúvidas. Se alguém conseguir responder...
Ouvi falar de corrente farádica, corrente galvânica, corrente russa... Soube que são muito utilizadas na Fisioterapia no tratamento de dores em músculos...
Fiquei curioso para saber o que elas são. São formas de ondas? Por exemplo: triangular, quadrada... ou não?
Por que tratar os pacientes com diferentes tipos de ondas? Como diferentes onda podem influenciar os tratamentos? 

  • Membro VIP
Postado
8 minutos atrás, densyy disse:


@faller , Montei o circuito aqui no Proteus, mas deu erro na hora de simular... Tô começando a achar que o meu programa que tá bichado kkkkkk

Você por acaso não se esqueceu de alimentar o circuito???

+ Vcc no pino 14 e GND no pino 7.

 O lado de baixo do capacitor tem de ser ligado a massa, ao GND

A saída se dá no pino 3 com relação a massa, ao GND

 

Quanto aos tipos de correntes e suas respectivas aplicações não é minha praia.. Não consigo lhe ajudar ai..

Postado

@densyy ,

 

Na semana passada eu publiquei alguns artigos sobre isso aqui no Fórum, eu explico como funciona e mostro alguns programas prontinhos para gerar, mas usando o Bascom. Mas você pode entender o funcionamento e fazer em qualquer linguagem !

 

Segue o link :

 

Sobre a sua pergunta ... eu mesmo já fiz um tratamento usando essa máquina de corrente russa. O troço é punk mesmo !!!! 

Pela máquina, tem muita coisa que o fisioterapeuta pode configurar para gerar essas formas de onda. Vai ter de pesquisar bastante na Internet, meu amigo !

 

  • Curtir 1
  • Membro VIP
Postado

Paulão

Também não tive contato com o tal dds. Numa lida rápida parece que não me pareceu tão amigável quanto à uma minimalista rede r2r. Como tenho mentalidade minimalista, penso que uma rede r2r ou pwm também posso criar qualquer onda até mesmo voz sintetizada com qualquer mc. Mas se está dizendo que dá resultado melhor, então tá...Se pode complicar, pra quê facilitar?

 

Sobre as ondas... sinistro...

Postado

Li o artigo todo do @aphawk , mas não fui capaz de entender muita coisa.
Acho que ainda não está no meu nível

@Isadora Ferraz , vi que as redes r/2r servem para converter informações digitais pra uma saída analógica, mas como ela se relacionaria em um pino pwm?

Postado

@Isadora Ferraz ,

 

Mesmo o DDS continua usando uma rede R/2R.... mas tudo é feito podendo gerar de 0,01 Hertz até 300 Khz, com a mesma baixíssima distorção, e o mais importante : pode gerar QUALQUER TIPO DE FORMA DE ONDA !

 

Quem já tentou sinais por PWM sabe que não se consegue frequências altas, e também não se consegue gerar formas de onda não senoidais com baixa distorção.

 

Por exemplo, se você fosse gerar uma forma de onda tipo dente de serra, de 100 Khz, com distorção de 1%, teria de gerar frequências via PWM da ordem de 10 Mhz !  Oras, como gerar e controlar isso, com clocks de até 20 Mhz ?

 

A vantagem do DDS é justamente essa : a qualidade do sinal, precisão e baixíssimo Jitter em sua geração.

E também uma enorme faixa de variação !

 

Não estou falando de parcos sinais de voz, que vai até uns 4 Khz.....

 

Agora, pode gerar por PWM sinais de 1 Hz até 300 Hz ? Sim, claro que pode,mas também pode gerar via Timer mesmo....

 

Paulo

 

  • Membro VIP
Postado
20 horas atrás, densyy disse:

Li o artigo todo do @aphawk , mas não fui capaz de entender muita coisa.
Acho que ainda não está no meu nível

@Isadora Ferraz , vi que as redes r/2r servem para converter informações digitais pra uma saída analógica, mas como ela se relacionaria em um pino pwm?

Objetivo igual mas métodos diferentes. R2R é quando tem muitos pinos disponíveis. PWM basta 1. Foque na rede r2r. Pra muito freq alta paulão tem razão

Paulão, via timer só gera sinal quadrado. Se for o caso do amigo, também é 1 opção

Postado

Sim, isso mesmo, Isadora !

 

Como o autor do tópico disse que qualquer forma de onda serve, eu pensei num programinha usando um timer.

 

Eu fiz um programa bem mais avançado, que usa 2 timers para gerar a frequência desejada, e ele testa todas as possibilidades de configuração até encontrar a combinação que gera a frequência desejada com o menor erro possível :

 

Paulo

 

 

Postado

Bom, pensando na ideia do PWM tentei gerar uma onda a partir do Arduino.
Aqui vai o relatório.

 

Primeiro os componentes usados

* Arduino Uno R3

* Potenciômetro

* Osciloscópio

 

56db545a80736_Capturadetelade2016-03-051

 

Agora, o código.

 

void setup() {
  pinMode(9, OUTPUT); // Define o pino 9 Digital como saída.
  Serial.begin(9600); // Habilita um monitor para relatórios das variáveis.
}

void loop() {
  
  int potenciometro = analogRead(2) / 4; // Recebe o valor do potenciômetro (255 posições) 
  int frequencia = potenciometro + 1; // Soma 1, para que nunca seja 0.
  double periodo = (1 / frequencia) * 1000; // A partir da frequência calcula o período da onda.
  double tempo = periodo / 2; // Como é uma onda quadrada o período será o dobro do delay.
  
  analogWrite(9, 255); // Define 5 Volts no pino 9
  delay(tempo); // Espera metade do período;
  analogWrite(9, 0); // Define 0 Volts no pino 9
  delay(tempo); // Espera metade do período.
  
  Serial.print("Freq: "); // Printa na tela.
  Serial.print(frequencia); // Printa a variável na tela.
  Serial.println(" Hz"); // Printa na tela.
}

Mas o resultado não foi uma onda quadrada como o esperado...


56db55dd503de_Capturadetelade2016-03-051

 

Fiquei pensando no porquê. Acho que talvez seja pelo fato do microcontrolador usar tempo para ler as linhas de código e como a onda é gerada a partir do tempo no arduino... Deve interferir na forma de onda.

 

Se tudo que eu disse estiver certo, talvez seja possível gerar outros formatos de ondas assim, por exemplo:
Uma onda triangular ficaria dentro de um While e iria incrementando e diminuindo a tensão de saída....

Algo como:

  /\    /\    /\

 /  \  /  \  /  \

/    \/    \/    \...........

Ou uma onda dente de serra, subindo de uma vez a tensão para 5V e depois diminuindo através de um while

|\    |\    |\

|  \  |  \  |  \

|    \|    \|    \.............

O que vocês acham disso tudo?

  • Membro VIP
Postado

Não conheço o arduino. Se o analogwrite() gerar realmente um valor analógico, seus problemas acabaram. Provavelmente se fizer algo como analogwrite(i++)  - sendo i um unsigned char - deve gerar um dente de serra.

Já se ele varia o dutty cicle do pwm, o buraco é+ em baixo. Há de ser colocar um R e um C talvez 1 ampop pra ajudar

Postado

@densyy ,

 

Você precisa colocar o famoso circuito RC na saída....  A maneira clássica de gerar uma forma de onda por PWM é gerar pulsos com largura variável ( leia-se duty cicle, que é a relação de tempo entre a saída ficar em nivel 1 em relação ao tempo total ) , e com isso você vai integrando essa saída em um circuito RC, que vai fazendo a média ( claro que de grosso modo ) .

 

A figura abaixo vai te dar uma ideia do processo todo :

 

67lgzm.jpg

 

Ou seja, você tem de ficar variando a largura do PWM para controlar a forma de onda desejada. Repare que a frequência da forma de onda PWM é sempre a mesma, e quanto mais alta, menor a distorção total do seu sinal na saída. Se você tentar fazer uma forma de onda tipo Quadrada na saída, teria de usar uma frequência no PWM bem alta, tipo umas 30 vezes maior que o sinal a ser reconstituido. Senão, a distorção vai ser enorme.

 

Se você pensar melhor, vai ver que no seu caso, como pode ser uma onda quadrada, você pode ter muito mais controle utilizando um Timer para gerar a frequência desejada. Sugiro o uso do Timer1 , de 16 bits, com um prescaler de 256 ( se você vai usar um Arduino ) .

 

Paulo

Postado

@densyy ,

 

Bom, não sei se ajuda, mas peguei o meu projetinho, e mudei para o seu em 10 minutos .... agora pus um potenciômetro para poder mudar a frequência também entre 1 e 301 Hertz.....

Não é o projeto final, mas falta só implementar uma rotininha para caso a leitura do conversor A/D tenha bem pouca diferença da leitura anterior, não faz nada.... mas a simulação no Proteus 8 está perfeita !

 

Detalhe : a resolução do potenciômetro no Proteus é de 1% , portanto a frequência de saída pula de 3 em 3 hertz a partir de 1 Hertz ... mas numa montagem real não haveria esse problema.

 

Veja o esquema :

 

33pgb2x.jpg

 

Embora tenha usado um Atmega328P, pode usar o Arduíno Uno que o programa é o mesmo ...

Segue em anexo o arquivo do Proteus, o fonte no Bascom, e o objeto já compilado.

 

 

 

 

gerador arduino.rar

  • Curtir 1
Postado

Nossa @aphawk, Acho q o problema foi solucionado!
Vou usar o Arduino mesmo por enquanto,
fazer algumas poucas adaptações no código, 
mas acho q é exatamente o que eu procurava.

valeu por tudo pessoal!

Postado

@densyy ,

 

Se você não precisar obter a frequência precisa, pode fazer algo parecido ao que eu fiz, usando apenas o Timer1, com prescaler de 128, ok ?

 

Não vai conseguir variar a cada 1 Hertz, principalmente na parte mais alta de frequências, mas deve dar para o gasto.

 

Se precisar mesmo variar a cada 1 hertz, faça o que eu fiz, que é usar dois Timers, um como divisor programável e outro como contador. O truque é ligar a saída do Timer2 à entrada de contagem do Timer1 ! Controlando os valor de OCR2A e OCR1A ( contagem dos dois contadores ) consigo gerar quase qualquer frequência !

 

E se tiver dificuldade em entender o programa que postei, pergunte aqui que eu explico.

 

Boa diversão !

 

Paulo

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