Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

A transmitter and receiver circuit to turn on a laser diode

Status
Not open for further replies.

chhavigandhi

Newbie level 4
Joined
Jun 10, 2013
Messages
7
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
65
i am trying to make a circuit with laser diode on receiver.
I want the laser to turn on when receiver receives the signal. Also I want at least 100 ft distance between both TX and RX.
This is my first time so I have a whole bunch of questions:
1. Laser diode: does it need a driver always? Can I build it integrated with RX or should I buy a chip for that? Also how do I decide on the laser? what are the specs.. I need low power and low cost
2. Which technology can be used for TX and RX? I was thing on RF but i have no idea how to start making a RF Tx or RX,
I thought about BLE and ANT but I need opinion and suggestions
3. Also if I want an alarm to ring which transmitter switch is pushed and it sends the signal.. do I need a microcontroller say MSP430. If anybody has ever done something related to this, pls reply
Ty !
 

You do want many things!

1. Any laser diode is a special device which is VERY sensitive to the value of its forward current. This is why a driver is needed. A good driver also adjusts the current according to laser temperature, otherwise laser can die soon. Find laser diode specifications before you buy one. Be careful with IR lasers like used in CD players, they can burn your eyes in a blink!

2. Any TX and RX can be used if the pair and ANTENNAS can reach over 100 ft distance. There are remote controllers for AC lamps or bell extenders, mostly operating at 2.45 GHz, with 30-60 ft capability. You can add a directional antenna(s) to make it work over 100 ft.

3. Add a buzzer to the push button to signal which TX is on.
 

Hey thank you for the reply.
I was thinking of using Zigbee TX and RX pair with MSP430 microcontroller to do the job of turning on a laser. Is it feasible?


You do want many things!

1. Any laser diode is a special device which is VERY sensitive to the value of its forward current. This is why a driver is needed. A good driver also adjusts the current according to laser temperature, otherwise laser can die soon. Find laser diode specifications before you buy one. Be careful with IR lasers like used in CD players, they can burn your eyes in a blink!

2. Any TX and RX can be used if the pair and ANTENNAS can reach over 100 ft distance. There are remote controllers for AC lamps or bell extenders, mostly operating at 2.45 GHz, with 30-60 ft capability. You can add a directional antenna(s) to make it work over 100 ft.

3. Add a buzzer to the push button to signal which TX is on.
 

I developed a wireless system with an MSP430 and a cheap receiver/transmitter pair. You can get them for about five bucks on amazon. I think I used this one.


With this setup I was achieving about 20 ft communication with no antenna and only about 2 volts supply. If you add an antenna (an amazon comment recommends coiling 12" of wire around a pencil) to the transmitter and upped the supply voltage to 5 volts, I predict you could achieve your 100 ft.


I programmed the wireless functionality in Energia with the virtualWire library. I could give you some simple demonstration code if you wanted.

- - - Updated - - -

I should mention that the VirtualWire library can be used in the Arduino IDE as well as the Energia IDE, and the Arduino development boards have arguably more online support than the Launchpad MSP430 boards. So, if you're new to MCU programming that may be a worthy consideration.
 

Thank you so much newtonoid !! :D

That is so awesome. That pair is really dirt cheap !! My purpose is to just turn on laser using a transmitter at some distance so I think this should work.
Also I am new to this wireless functionality programming so it would be awesome if you could send me that demo code at chhavi.gandhi@gmail.com
I already have a MSP430 launchpad which I am using to communicate with BLE booster pack board. But I think I can try Arduino development board. I will find more about it.

Thank you so much for help ! I spent all day today trying to find zigbee modules and development kits.
#feeling motivated
 

Glad to help. Here are some resources to get you started.

Energia IDE: https://www.energia.nu/

VirtualWire Library: View attachment VirtualWire.zip (Install in 'hardware\msp430\libraries' directory of your energia installation.)

Examples: View attachment examples.zip

VirtualWire documentation: **broken link removed**

Custom Transmitter Example:

Code:
/* 
Author: Will Forfang 
Corresponding Email: W.Forfang@gmail.com
Date: 6/4/2013
This program samples an analog voltage signal (sensor output) and stores the last N samples in a buffer.
It computes the average of samples in the buffer, converts the average to an array of characters, and then
transmit the array via RF to a receiver.


*/

// Global area

#include <VirtualWire.h> //Make sure this library is installed in your 'Energia\hardware\msp430\libraries' directory.

const int transmit_pin = 9;    //pin 9 on launchpad is P2_1
const int receive_pin = 2;     //P1_0
const int transmit_en_pin = 3; //P1_1
const int xpin = 5;            // output of accel, or temp sensor goes to analog input 3 (P1_3) on launchpad

const int frameLength = 120; //number of samples with which to calculate statistics
int frame [frameLength]; //initialize
float sum = 0; //initialize 
char avgChar[7]; //initialize

void setup(){ 
  
  // Initialise the IO and ISR
  vw_set_tx_pin(transmit_pin);
  vw_set_rx_pin(receive_pin);
  vw_set_ptt_pin(transmit_en_pin);
  vw_set_ptt_inverted(true); // Required for DR3100
  vw_setup(2000);	 // Bits per sec
  Serial.begin( 9600 ); }

void loop(){ 
  Serial.println("test"); //for debugging
sum = 0;
byte count = 0;
for (count = 0; count<frameLength; count++)
{
  int currentValue = analogRead(xpin);
  frame[count] = analogRead(xpin); //frame of samples; not used yet
  sum = sum + currentValue;
}
 
  //compute average of time-domain samples in 'frame'
  int avg = sum / frameLength;
  //Convert integer to char array for transmission
  itoa(avg,avgChar,7);
    
  
 // vw_send((uint8_t*)avgChar, 7);
  vw_send((uint8_t *)avgChar, strlen(avgChar));
  vw_wait_tx(); // Wait until the whole message is gone

  Serial.print("temp:"); 
  Serial.print("\t"); //tab
  Serial.print(avgChar);
  Serial.print("\n"); //new line
  
}

I've uploaded mirrors of these resources here: **broken link removed**
 
Last edited:

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top