<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8180053379475632708</id><updated>2012-02-16T01:13:52.499-08:00</updated><category term='ambient light cancellation using difference technique'/><category term='difference technique for obstacle detection'/><category term='short range ir'/><category term='long range ir'/><category term='obstacle detection using ir'/><title type='text'>Obstacle Detection Using IR-led-Photodiode</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ir-led-photodiode.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8180053379475632708/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ir-led-photodiode.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ashish Agarwal</name><uri>http://www.blogger.com/profile/16608740595389486436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8180053379475632708.post-6520228846995997862</id><published>2008-11-25T00:17:00.000-08:00</published><updated>2008-11-25T09:15:00.401-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='short range ir'/><category scheme='http://www.blogger.com/atom/ns#' term='obstacle detection using ir'/><category scheme='http://www.blogger.com/atom/ns#' term='long range ir'/><category scheme='http://www.blogger.com/atom/ns#' term='difference technique for obstacle detection'/><category scheme='http://www.blogger.com/atom/ns#' term='ambient light cancellation using difference technique'/><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;i have tested my ir-led-photodiode pair for more than 30 different lights and surfaces..... they are just awsome..... awsome but not intelligent (unlike TSOPs).... but you can make them intelligent using your programming skills and some thinking....&lt;br /&gt;&lt;br /&gt;with correct technique they can detect presence of white surface (paper in my case) upto 50cm (*conditions applied ) even in the presence of very ir-emitting audience.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The Principle:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4rzl2aiDVtQ/SSu808UQI0I/AAAAAAAAABg/3r14y2aObTw/s1600-h/1.GIF"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 536px; height: 313px;" src="http://1.bp.blogspot.com/_4rzl2aiDVtQ/SSu808UQI0I/AAAAAAAAABg/3r14y2aObTw/s400/1.GIF" alt="" id="BLOGGER_PHOTO_ID_5272515406497588034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///F:/document/ashish/study/micromouse/upload/ir/1.GIF" alt="" /&gt;&lt;img src="file:///F:/document/ashish/study/micromouse/upload/ir/1.GIF" alt="" /&gt;&lt;img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot-1.jpg" alt="" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;in words : &lt;/span&gt;&lt;span style="font-size:130%;"&gt;Take a reading with IR-led OFF and subtract it from reading when IR-led is ON. This way you get reading because of IR-led only. This principle assumes that the neighbouring IR conditions remains unchanged in between two readings.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Circuit:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;Atmega8&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;IR-led-Photodiode&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;reflecting surface&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;BC547 or any switching element&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:130%;"&gt;some discretes&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_4rzl2aiDVtQ/SSu2Q8vw-WI/AAAAAAAAABQ/A-Y6rGGxlAQ/s1600-h/2.GIF"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 369px; height: 400px;" src="http://1.bp.blogspot.com/_4rzl2aiDVtQ/SSu2Q8vw-WI/AAAAAAAAABQ/A-Y6rGGxlAQ/s400/2.GIF" alt="" id="BLOGGER_PHOTO_ID_5272508191067928930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:130%;" &gt;CAUTION:&lt;/span&gt;&lt;span style="font-size:130%;"&gt; As you can see, there is no resistance in series with IR-led. so if the transistor is kept ON for more than few milliseconds, IR-led will be damaged. By default, the output of atmega pins is high when unprogrammed. So first program the chip and then connect IR-led, or use a toggle switch in between.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Program:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;/*Code for controlling IR-led-photodiode sensor using atmega8&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;  internal clock 1MHz&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;  written in AVR Studio 4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;*/&lt;/span&gt;&lt;br /&gt;#include&lt;avr h=""&gt;"avr/io.h" &lt;avr h=""&gt;&lt;br /&gt;#include"util/delay.h"&lt;util h=""&gt; &lt;util h=""&gt;&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;DDRB=255;                           &lt;span style="color: rgb(0, 153, 0);"&gt;                         &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(153, 255, 153);"&gt;//set port b for output&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;DDRD=255;                          &lt;span style="color: rgb(0, 153, 0);"&gt;                           &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//set port d for output&lt;/span&gt;&lt;br /&gt;DDRC=0; &lt;span style="color: rgb(153, 255, 153);"&gt;                           &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;                              &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//set port c for input&lt;/span&gt;&lt;br /&gt;ADMUX=0b00100000;&lt;/util&gt;&lt;/util&gt;&lt;/avr&gt;&lt;/avr&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(153, 255, 153);"&gt;//setting ADC to AREF, left adjusted, ADC0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span&gt;&lt;avr h=""&gt;&lt;util h=""&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;                                     &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt; &lt;/span&gt;&lt;br /&gt;ADCSRA=0b10000011;                 &lt;span style="color: rgb(0, 153, 0);"&gt;                   &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//enable ADC, prescale 8&lt;/span&gt;&lt;br /&gt;unsigned register char i=0,j=0;&lt;span style="color: rgb(153, 255, 153);"&gt;     &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//to store ADC results&lt;/span&gt;&lt;br /&gt;while(1)&lt;br /&gt;{&lt;br /&gt;     PORTB=0b00000001; &lt;span style="color: rgb(153, 255, 153);"&gt;              &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;            &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;  //turn ON IR-led&lt;/span&gt;&lt;br /&gt;     _delay_us(20);                 &lt;span style="color: rgb(0, 153, 0);"&gt;                  &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//wait for turn-ON time&lt;/span&gt;&lt;br /&gt;ADCSRA=0b11000000; &lt;span style="color: rgb(153, 255, 153);"&gt;            &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;               &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//start ADC conversion&lt;/span&gt;&lt;br /&gt;_delay_us(30);                  &lt;span style="color: rgb(0, 153, 0);"&gt;                  &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//wait for conversion to complete&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//instead of this 30us delay you can use &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//while(ADCSRA!=0b10010000);&lt;/span&gt;&lt;br /&gt;PORTB=0;&lt;span style="color: rgb(153, 255, 153);"&gt;                       &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;                       &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;  //turn OFF IR-led&lt;/span&gt;&lt;br /&gt;     i=ADCH;                        &lt;span style="color: rgb(0, 153, 0);"&gt;                          &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//store led-ON value in 'i'&lt;/span&gt;&lt;br /&gt;     _delay_us(20);                  &lt;span style="color: rgb(0, 153, 0);"&gt;                  &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//wait for turn-OFF time&lt;/span&gt;&lt;br /&gt;     ADCSRA=0b11000000;&lt;span style="color: rgb(153, 255, 153);"&gt;              &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;              &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//start ADC conversion&lt;/span&gt;&lt;br /&gt;while(ADCSRA!=0b10010000);  &lt;/util&gt;&lt;/avr&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span&gt;&lt;avr h=""&gt;&lt;util h=""&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//wait for conversion to complete&lt;/span&gt;&lt;br /&gt;     j=ADCH;                         &lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//store led-OFF value in 'j'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;     if(i-j&gt;70)&lt;/util&gt;&lt;/avr&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt; &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);font-family:courier new;font-size:100%;"  &gt;//compare the difference with threshold value&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span&gt;&lt;avr h=""&gt;&lt;util h=""&gt;                   PORTD=255;                 &lt;span style="color: rgb(0, 153, 0);"&gt;                   &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//if more than threshold, turn ON LED &lt;/span&gt;&lt;br /&gt;     else&lt;br /&gt;             PORTD=0; &lt;span style="color: rgb(153, 255, 153);"&gt;                                       &lt;/span&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//if less than threshold, turn OFF LED&lt;/span&gt;&lt;br /&gt;_delay_us(1000);               &lt;span style="color: rgb(0, 153, 0);"&gt;                &lt;/span&gt;&lt;span style="color: rgb(51, 255, 51);"&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;//wait to let IR-LED to cool.&lt;/span&gt;&lt;br /&gt;                                &lt;span style="color: rgb(0, 153, 0);"&gt;                                      &lt;span style="color: rgb(153, 255, 153);"&gt;//don't decrease it below 500&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;/util&gt;&lt;/avr&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Testing:&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;here is a video showing my testing results for wall detection at 8-10 cms.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-dc4cda4f0670391c" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v22.nonxt3.googlevideo.com/videoplayback?id%3Ddc4cda4f0670391c%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332606359%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D461942258AE4213AB5B395A613278B8FFF5468EF.622138DCD468241CC77B8690C8E647578D26A1B6%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ddc4cda4f0670391c%26offsetms%3D5000%26itag%3Dw160%26sigh%3DZJCtE2XmMgIRa6qwnlfTI84BlNE&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v22.nonxt3.googlevideo.com/videoplayback?id%3Ddc4cda4f0670391c%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332606359%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D461942258AE4213AB5B395A613278B8FFF5468EF.622138DCD468241CC77B8690C8E647578D26A1B6%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ddc4cda4f0670391c%26offsetms%3D5000%26itag%3Dw160%26sigh%3DZJCtE2XmMgIRa6qwnlfTI84BlNE&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;So, how far can it go???thats the question which came in everyone's mind while using ir-sensors. normally, people think that ir-led-photodiode works upto 12-15 cms only. for longer distances we should use TSOP. So here i tested my ir-pair for a distance of 50cms. the main principle is to overdrive the ir-led at higher voltage. with 7V i got 50cms.&lt;br /&gt;(CAUTION : remember, overdriving is risky if not done properly)&lt;br /&gt;&lt;br /&gt;Enjoy!!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-920a0b0e02d9bf46" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v7.nonxt5.googlevideo.com/videoplayback?id%3D920a0b0e02d9bf46%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332606359%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4F253FF65FDD38144A4D1846D0CBFD14B313958E.3C20F56E518E00CC236AFE75868EBDE8700FAD6E%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D920a0b0e02d9bf46%26offsetms%3D5000%26itag%3Dw160%26sigh%3DetwKmPnLoXkJbSBFbLOTLJN--Gs&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v7.nonxt5.googlevideo.com/videoplayback?id%3D920a0b0e02d9bf46%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1332606359%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D4F253FF65FDD38144A4D1846D0CBFD14B313958E.3C20F56E518E00CC236AFE75868EBDE8700FAD6E%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D920a0b0e02d9bf46%26offsetms%3D5000%26itag%3Dw160%26sigh%3DetwKmPnLoXkJbSBFbLOTLJN--Gs&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8180053379475632708-6520228846995997862?l=ir-led-photodiode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=920a0b0e02d9bf46&amp;type=video%2Fmp4' length='0'/><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=dc4cda4f0670391c&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://ir-led-photodiode.blogspot.com/feeds/6520228846995997862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ir-led-photodiode.blogspot.com/2008/11/i-have-tested-my-ir-led-photodiode-pair.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8180053379475632708/posts/default/6520228846995997862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8180053379475632708/posts/default/6520228846995997862'/><link rel='alternate' type='text/html' href='http://ir-led-photodiode.blogspot.com/2008/11/i-have-tested-my-ir-led-photodiode-pair.html' title=''/><author><name>Ashish Agarwal</name><uri>http://www.blogger.com/profile/16608740595389486436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_4rzl2aiDVtQ/SSu808UQI0I/AAAAAAAAABg/3r14y2aObTw/s72-c/1.GIF' height='72' width='72'/><thr:total>3</thr:total></entry></feed>
