IR object detection

advertisement
living with the lab
IR Object Detection
Infrared (IR) light leaving an LED reflects off an object. The reflected light travels
back to an IR receiver. The IR receiver “detects” the presence of the object. The
object does not need to move to be detected.
IR receiver
IR LED
IR light from LED
living with the lab
The Parts
Panasonic PNA4602M
IR LED (not your usual LED)
supply voltage: 4.8V – 5.2V
current: 3mA
outputs 940 nm wavelength light
This sensor detects infrared (IR) light. However, to avoid
detecting the IR component of regular sunlight or light
from other stray IR sources, the sensor only looks for
light coming in at 38 kHz.
We write an Arduino sketch to make this
LED flash 38,000 times per second so it
can be detected by the PNA4602M.
2
living with the lab
IR Light
IR detector is most sensitive
around 950 nm or 0.95(10)-6 m
Panasonic documentation for PNA4602M
wikipedia.org
3
living with the lab
Install an LED Shield
It is important to install the LED in an
enclosure to properly direct the IR
light. Your kit includes the black
pieces shown. Insert the legs of the
LED through the holes in the longer
black cylinder, and then install the
smaller top piece over the exposed
end of the LED.
If you don’t have a shield, a piece of
paper can be rolled up and taped
around the LED.
Your LED will look like this after shielding.
4
living with the lab
LED Circuit
220Ω
IR Receiver Circuit
5V
from digital output
pin on Arduino
220Ω
to digital input
pin on Arduino
Be sure to aim your LED and IR detector so that
they have a clear view (nothing in the way)
5
living with the lab
Arduino Sketch
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, INPUT);
}
void loop()
{
tone(2,38000);
int IR_status= digitalRead(3);
Serial.println(IR_status);
delay(100);
}
// allows output to display
// define digital pin 2 as an output (output to LED)
// define digital pin 3 as an input (input from sensor)
//
//
//
//
output a LOW HIGH LOW sequence at 38,000 Hz
acquire the status of the IR sensor
display the status of the IR sensor
wait 100ms between sensor queries
nothing is detected by IR sensor
something is detected by IR sensor
6
living with the lab
Alternate Arduino Sketch
try the sketch below if the one on the previous page doesn’t work
long freq = 38000;
long period;
int IR_status;
void setup()
{
Serial.begin(9600);
pinMode(2,OUTPUT);
pinMode(3,INPUT);
period=1000000/freq/2;
}
void loop()
{
for(int i=0;i<200;i++)
{
digitalWrite(2,HIGH);
delayMicroseconds(period);
digitalWrite(2,LOW);
delayMicroseconds(period);
IR_status = digitalRead(3);
}
Serial.println(IR_status);
}
// compute the half period in microseconds
// detector needs lots of pulses to work (try 200)
// manually build a square wave for IR LED
// read the status of the sensor
// print the status of the sensor
7
Download