Вы находитесь на странице: 1из 17

Problem statement:

To design a wireless data transmission system that uses the visible light spectrum to send and
receive data in form of text only.

Project Idea:

This project uses a set of LED’s to transfer data in form of bits. The LED’s operate on two states
0(OFF) and 1(ON). The sender types in the message in form of plain text in the console. A code
then processes the text and converts it into bits. Various combinations of these LED's are used
to transmit these bits forming the Transmission Block.

The light signals from these LED’s are picked up by Light Dependent Resistors (LDR’s). The
readings from the LDR’s go to another Arduino© and are processed by a code that converts
these light signals into plain text as intended. The LDR circuit forms the Reception Block.

Except for an uninterfered line of sight (LOS), the Transmission and Reception blocks are
connected in no way whatsoever.

Character Map:

Character Code Character Code


A 00001 P 10000
B 00010 Q 10001
C 00011 R 10010
D 00100 S 10011
E 00101 T 10100
F 00110 U 10101
G 00111 V 10110
H 01000 W 10111
I 01001 X 11000
J 01010 Y 11001
K 01011 Z 11010
L 01100 . 11011
M 01101 Space 11111
N 01110 $ (Escape) 00000
O 01111

Visible Light Communication Using LED-LDR System Page 1


Main Technologies and Tools used in the Project:

1. Arduino© UNO Board-


The Arduino Uno is a microcontroller board based on the ATmega328 (datasheet). It has
14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a
16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset
button.

2. Arduino© Genuino™ Software Version 1.8.2-


The Arduino project provides the Arduino integrated development environment (IDE),
which is a cross-platform application written in the programming language Java. It
originated from the IDE for the languages Processing and Wiring. It includes a code
editor with features such as text cutting and pasting, searching and replacing text,
automatic indenting, brace matching, and syntax highlighting, and provides simple one-
click mechanisms to compile and upload programs to an Arduino board. It also contains
a message area, a text console, a toolbar with buttons for common functions and a
hierarchy of operation menus.

Visible Light Communication Using LED-LDR System Page 2


3. Light Dependent Resistor (LDR)-
A Light Dependent Resistor (LDR) or a photo resistor is a device whose resistivity is a
function of the incident electromagnetic radiation. Hence, they are light sensitive
devices. They are also called as photo conductors, photo conductive cells or simply
photocells. They are made up of semiconductor materials having high resistance. There
are many different symbols used to indicate a LDR, one of the most commonly used
symbol is shown in the figure below. The arrow indicates light falling on it.

4. Light Emitting Diode (LED)-


A light-emitting diode (LED) is a two-lead semiconductor light source. It is a p–n
junction diode, which emits light when activated.[4] When a suitable voltage is applied
to the leads, electrons are able to recombine with electron holes within the device,
releasing energy in the form of photons. This effect is called electroluminescence, and
the color of the light (corresponding to the energy of the photon) is determined by the
energy band gap of the semiconductor. LEDs are typically small (less than 1 mm2 ) and
integrated optical components may be used to shape the radiation pattern.

Visible Light Communication Using LED-LDR System Page 3


Block Diagram:

Simplified Circuit Diagram::

Visible Light Communication Using LED-LDR


LED System Page 4
Hardware Requirement:

Sl. No. Component Specification Quantity


1 Arduino© Board UNO R3 2
2 Resistors 10kΩ, 220Ω 5 each
3 LDR - 5
4 LED - 5
5 Bread Board - 1
6 Jumper Wires - As per requirement

Software Requirement:

 Arduino© Genuino™ Software Version 1.8.2

Visible Light Communication Using LED-LDR System Page 5


Coding:

 Transmission Side:
int incomingByte=0;
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(4, OUTPUT);
Serial.begin(9600);
}

void loop()
{
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
if(Serial.available()>0)
{
incomingByte=Serial.read();
Serial.print((char)incomingByte);
if(incomingByte==65)
{
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==66)
{
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);

Visible Light Communication Using LED-LDR System Page 6


digitalWrite(12, HIGH);
digitalWrite(13, LOW);
delay(1500);
}
else if(incomingByte==67)
{
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==68)
{
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(1500);
}
else if(incomingByte==69)
{
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==70)
{
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
delay(1500);
}

Visible Light Communication Using LED-LDR System Page 7


else if(incomingByte==71)
{
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==72)
{
digitalWrite(4, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(1500);
}
if(incomingByte==73)
{
digitalWrite(4, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==74)
{
digitalWrite(4, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
delay(1500);
}
else if(incomingByte==75)
{
digitalWrite(4, LOW);
digitalWrite(7, HIGH);

Visible Light Communication Using LED-LDR System Page 8


digitalWrite(8, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==76)
{
digitalWrite(4, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(1500);
}
else if(incomingByte==77)
{
digitalWrite(4, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==78)
{
digitalWrite(4, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
delay(1500);
}
else if(incomingByte==79)
{
digitalWrite(4, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(1500);

Visible Light Communication Using LED-LDR System Page 9


}
else if(incomingByte==80)
{
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(1500);
}
if(incomingByte==81)
{
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==82)
{
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
delay(1500);
}
else if(incomingByte==83)
{
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==84)
{
digitalWrite(4, HIGH);

Visible Light Communication Using LED-LDR System Page 10


digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(1500);
}
else if(incomingByte==85)
{
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==86)
{
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
delay(1500);
}
else if(incomingByte==87)
{
digitalWrite(4, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==88)
{
digitalWrite(4, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);

Visible Light Communication Using LED-LDR System Page 11


delay(1500);
}
else if(incomingByte==89)
{
digitalWrite(4, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==90)
{
digitalWrite(4, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
delay(1500);
}
else if(incomingByte==46)
{
digitalWrite(4, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==32)
{
digitalWrite(4, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
delay(1500);
}
else if(incomingByte==36)
{

Visible Light Communication Using LED-LDR System Page 12


digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
delay(1500);
}
}
else
digitalWrite(4, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);

Visible Light Communication Using LED-LDR System Page 13


 Reception Side:
int LDR_Pin = A4;
int LDR1_Pin = A3;
int LDR2_Pin = A2;
int LDR3_Pin = A1;
int LDR4_Pin = A0;

void setup(){
Serial.begin(9600);
}

void loop(){
int LDRReading1 = analogRead(LDR_Pin);
int LDRReading2 = analogRead(LDR1_Pin);
int LDRReading3 = analogRead(LDR2_Pin);
int LDRReading4 = analogRead(LDR3_Pin);
int LDRReading5 = analogRead(LDR4_Pin);
int val1,val2,val3,val4,val5,fval;
String f="";
if(LDRReading1<=10)
val1=0;
else
val1=1;
if(LDRReading2<=10)
val2=0;
else
val2=1;
if(LDRReading3<=10)
val3=0;
else
val3=1;
if(LDRReading4<=10)
val4=0;
else
val4=1;
if(LDRReading5<=10)
val5=0;
else
val5=1;

Visible Light Communication Using LED-LDR System Page 14


fval=(val1*10000)+(val2*1000)+(val3*100)+(val4*10)+val5;
switch(fval)
{
case 0: f+="";
break;
case 1: f+="A";
break;
case 10: f+="B";
break;
case 11: f+="C";
break;
case 100: f+="D";
break;
case 101: f+="E";
break;
case 110: f+="F";
break;
case 111: f+="G";
break;
case 1000: f+="H";
break;
case 1001: f+="I";
break;
case 1010: f+="J";
break;
case 1011: f+="K";
break;
case 1100: f+="L";
break;
case 1101: f+="M";
break;
case 1110: f+="N";
break;
case 1111: f+="O";
break;
case 10000: f+="P";
break;
case 10001: f+="Q";
break;
case 10010: f+="R";

Visible Light Communication Using LED-LDR System Page 15


break;
case 10011: f+="S";
break;
case 10100: f+="T";
break;
case 10101: f+="U";
break;
case 10110: f+="V";
break;
case 10111: f+="W";
break;
case 11000: f+="X";
break;
case 11001: f+="Y";
break;
case 11010: f+="Z";
break;
case 11011: f+=".";
break;
case 11111: f+=" ";
break;
default: f+="";
break;
}
Serial.print(f);
delay(1500);
}

Visible Light Communication Using LED-LDR System Page 16


Advantages:

1. It is cost effective and easy to implement.


2. Power consumption is very low.

Limitations:

1. While sending the next data sequence a problem arises which leads to the glowing of
the present sequence, so an escape character is required after every sequence to
transmit the next data sequence.
2. For a very long sequence the system goes out of synchronization which can be
overcome by introducing a delay in the system. But at the same time a large delay
causes the system to slow down.
3. As visible light is an integral part of our daily livelihood, avoiding it is almost impossible.
This external visible light acts as a noise for the system. The system is very much prone
to interference and this can be a serious problem in abruptly lit surroundings.

Application:
Wireless technology is the main aim of our project of transmitting data using Arduino as the
main component. The RF band being a very congested band, transmitting data sometimes
happens to be problematic due to traffic. So instead of that we thought of using the visible
spectrum (390-700nm) range which is not much used for wireless communication
technologies.

Visible Light Communication Using LED-LDR System Page 17

Вам также может понравиться