Voice Streaming with Arduino

Hi all,

I'm trying to understand if it's possibile to send voice in real-time between 2 Arduino via wireless. Something like a unidirectional Walkie Talkie. Something like that:

Microphone - Arduino - TX ---------------> RX - Arduino - Speaker

I would like to use this mic: http://www.sparkfun.com/products/9964 I see the AUD pin and I assume I should connect it to the PWM pin on board, but I really don't know what kind of values are read and how to send it in real-time.

Assuming that is easy to find a AD/DA converter to be connected on the PWM, the other problem is the wireless transmission. The first solution was Zigbee, but we concluded in other posts that is not a solution for the problem. Any other ideas ?

Thanks in advance for your answers.


PWM uses an output pin!

You could connect the microphone unit to an ADC input and transmit the digitised speech to the other Arduino via Sparkfun nRF24L01+ modules.

One thing that makes people cross on this forum is cross posting. Please don't do it if you want any friends.

Thanks for replies.

To Leon: can’t PWM be configured also for input ?

To Grumpy_mike: you’re almost right, I’m trying to make some order in different aspects of the project, voice sampling and transmission.

PWM is output only! Look it up.

Thank you Leon.

I think I'll try the Sparkfun module you suggested me, looks perfect.

What do you mean with "digitsed" ? Do you think I can just write raw values to the RX of module ?

If your ADC sampling rate is low enough (say 8 kHz) you should be able to do that.

Ok I'm looking at an ADC sampling at 8khz.

Basically what's sampled ? Electrical values ? What is read by the Arduino sketch ?

Thanks :)

Interface an electret microphone and amplifier to an analogue input.

Ok this is what I've figured for the project.

I'll do exactly this and than I'll post back !

Thank you very much !

You connect AUD to Analog Input 1 (A1) and do something like this: value = analogRead(A1); Them you need to send that value to your wireless connection. In the other Arduino, you receive the value and do analogWrite(....) and a PWM output.