Laser beam serial communication using TX & RX

I am thinking about making a device that allows one arduino communicate with another arduino via a laser beam (one way communication).

My laser draws less than 50ma, so I was thinking of just hooking it up to the TX pin of the transmitter arduino, and attach a photo-resistor onto the RX pin on the receiver arduino.

Will this work?

Will this work?

No.

:~ Any ideas how I could accomplish this? Thanks

With an external MOSFET or Transistor to switch the current. There are dozens of threads about this.

Thanks

Also a photo resistor is far too slow, you need a photo transistor or diode.

40mA is the absolute maximum you should draw from an Arduino pin. 20mA is the recommended maximum. You will need to use a transistor to switch your laser on and off.

You may get a simple TX -> RX to work in a dark room, but in real life free space optical communication you need to modulate the the TX laser (at, for example, 38kHz) and have a demodulator with AGC to filter out noise on the RX. You are basically doing the same thing that IR TV remotes do, so read up on this: A Multi-Protocol Infrared Remote Library for the Arduino

Some laser modules may not be happy if their Vin is switched on and off at 38kHz. You may need to use a more sophisticated laser driver with an ENABLE pin so that the output can be modulated while keeping the rest of the driver powered.

Grumpy_Mike:
Also a photo resistor is far too slow, you need a photo transistor or diode.

He never said what Baud rate he wanted. The photo resistor would be good for about 1 baud. 8^)

Yes but will the Arduino work that slowly?

Grumpy_Mike:
Yes but will the Arduino work that slowly?

Sure!

delay(1000);

:slight_smile: Nice try

if only