Arduino PWM Laser Transmitter

August 14, 2011 | Amateur Radio, electronics, My Projects | By: Mark VandeWettering

A couple of weeks ago, I programmed an Arduino to take digitized sound stored in its rom, and send it out via PWM of an LED. A couple days after that, I used the same code to send voice using a small 5mw laser module. Ever since then, I thought it would be good to use the Arduino’s analog to digital converters to sample the sound from a small microphone, and then use that as the signal to send over PWM. Here’s my first test:



There is lots of noise remaining in the signal. Some further experimentation showed that the voltage regulation wasn’t very good: I did tap 5v from the Arduino, but the load must have been near its limit, because the overall voltage levels were varying by nearly 100 millivolts, which is only slightly less than the signal amplitude. I also have many leads which are too long, poor layout, and unoptimized values for AC blocking caps. But it does seem to work. I’ll be revising this over the next couple of weeks.

Addendum: I did measure the current through the op amp preamp, and the laser diode module. The op amp circuit only needs to drive the Arduino input, which is very high impedance, so it draws less than four milliamps. The laser diode averages 20ma, but has a peak power of twice that.

Comments

Pingback from brainwagon » Arduino PWM Laser Transmitter | Ham Radio Blog
Time 8/17/2011 at 12:15 pm

[…] the rest here: brainwagon » Arduino PWM Laser Transmitter This entry was posted in Uncategorized and tagged amateur, amateur-radio, arduino, its-rom, […]

Comment from Matt
Time 4/19/2012 at 8:27 pm

Hi Mark I am working on a project very similar to this one where I am using an electret mic and preamp connected to analog 0. I am trying to use an LED to transmit to a very similar solar receiver as the one you have used. The problem is I am have a lot of noise at the receiver end. I am using the same code you have posted and analog reading A0 and analog writing to pin 11. Any ideas? Or is this code posted anywhere?