Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
themeleon

Som no arduino

Recommended Posts

themeleon

Boas noites.

Eu gostava de fazer passar som pelo arduino.

Apesar de novato na matéria, eu já li várias coisas e cheguei à conclusão q vou precisar de converter sinal analógico em digital, e depois fazer o inverso.

O arduino tem portas analógicas que podem ser usadas como input do audio (8bit de entrada), e portas pwm que podem ser usadas como output de audio (10bit saida) - fazendo assim o conversor de analógico para digital.

Com um divisor de voltagem, posso transformar a onda de som em valores de 0V a 5V, sendo 2.5V o valor central (assim consigo obter a onda por inteiro, pois o som analógico em audio vem junto com valores negativos q não consigo ler na porta analógica).

Ok, até aqui tudo bem, agora eu tento fazer isto:

void setup() {
}
void loop() {
 analogWrite(9,analogRead(0));
}

E sai um barulho infernal dos phones!

Share this post


Link to post
Share on other sites
bubulindo

A porta de entrada tem 10 bits...

A porta de saida e um pwm de 8 bits, ou se fizeres as coisas por ti de 16 bits com o Timer1.

PWM nao e analogico e digital... para transformar esse digital em analogico, regra geral precisas de mais qualquer coisa a frente...

Dito isto, depois tens tambem o tempo de processamento do Arduino que te da cabo da amostragem e da frequencia...

Porque e que queres passar som por um dispositivo de 8 bits???


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
themeleon

Bem eu queria passar o som, não importava q fosse 8 bits, sendo q a minha ideia é transmitir o som que passa de um microphone, creio q 8bits de para os gastos.

Sabes dizer-me por favor o q deva estudar para q possa começar a trabalhar nisso?

--

Edit: Timer1 é tipo os timers do c# que ficam a correr em background?

--

Edit: Usei este esquema: http://wiki.openmusiclabs.com/wiki/PWMDAC funciona mas eu queria pegar nos valores digitais convertidos para os poder trabalhar, como os consigo obter?

Edited by themeleon

Share this post


Link to post
Share on other sites
edsudani

Edit: Usei este esquema: http://wiki.openmusiclabs.com/wiki/PWMDAC funciona mas eu queria pegar nos valores digitais convertidos para os poder trabalhar, como os consigo obter?

Boa tarde.

Veja este link: http://www.newtoncbraga.com.br/index.php/artigos/54-dicas/1234..

tem um circuito completo, inclusive com o layout do circuito impresso. Poderás adaptá-lo ao teu propósito.

Se desejares detalhes para projeto, encontrarás muita informação útil na internet.

Edison

Share this post


Link to post
Share on other sites
themeleon

Boa tarde.

Veja este link: http://www.newtoncbraga.com.br/index.php/artigos/54-dicas/1234..

tem um circuito completo, inclusive com o layout do circuito impresso. Poderás adaptá-lo ao teu propósito.

Se desejares detalhes para projeto, encontrarás muita informação útil na internet.

Edison

Estive a ver, o meu problema não é bem buscar os dados da analógica e apresentar na digital, mas sim conseguir com que possa usar som para fazer o mesmo :( E com som nao funciona do mesmo jeito

Edited by themeleon

Share this post


Link to post
Share on other sites
bubulindo

O código apresentado nesse post é bastante mais complexo que o teu... E é provável que funcione já que é tudo feito por hardware.

Porque é que não usaste esse?

No entanto, o meu comentário mantém-se... Qual o propósito de fazer passar som pelo Arduino? Qualquer processamento extra que queiras fazer vai danificar a aquisição do sinal.

Não entendi o teu comentário. O que pretendes mesmo fazer?


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
edsudani

Estive a ver, o meu problema não é bem buscar os dados da analógica e apresentar na digital, mas sim conseguir com que possa usar som para fazer o mesmo :( E com som nao funciona do mesmo jeito

Funciona. O que tens a fazer é confeccionar um circuito pré amplificador de audio e um circuito seguidor de tensão que servirá de adaptador ou casador de impedâncias, isolando o estágio de entrada do estágio conversor.

Note que todo conversor A/D é na realidade um amostrador de grandezas elétricas. Ele 'pega' uma pequena amostra do sinal que varia em função do tempo e apresenta-o codificado na saída, dito de forma simples.

O sinal de audio (som) é um sinal analógico que varia sua amplitude em função do tempo.

É evidente que um projeto desse porte requer instrumental adequado, por exemplo gerador de audio e osciloscópio duplo traço.

Dificilmente encontrarás algo pronto para teu uso do jeito que tu queres.Tens que gastar os neurônios a pensar numa solução.

E como @bubulindo disse, distorções num projeto experimental são perfeitamente aceitáveis -- até que você encontre a solução definitiva.

Em tempo: aqui encontrarás informação útil p/ ajustar os níveis de entrada de audio no conversor A/D:

http://www.getulio.eng.br/meusalunos/sad/ADC0804.pdf

Não deixe de ler, pois obterás informação necessária p/ teu projeto. Essas informações ajudarão a controlar as distorções, veja os níveis apresentados no exemplo.

Edison

Edited by edsudani

Share this post


Link to post
Share on other sites
bubulindo

Dito isto... quem escreveu aquele código no site, podia ter melhorado um pouco mais... o Arduino esconde e adiciona imenso ao processador. Reparo agora que quem escreveu aquilo não desactivou nada (explicitamente) e como tal, poderia ainda ter um pouco de melhoria de performance. Parar o timer0, por exemplo...

Nota também que no código que escreveste, tu não ligas puto ao que é escrito no site de onde tiraste as informações... metade da página refere frequência e tu não ligas a isso.


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.