ماژول مادون قرمز چیست؟
یک ماژول مادون قرمز (IR) از یک لامپ LED فرستنده و یک لامپ LED گیرنده مادون قرمز که در کنار یکدیگر قرار گرفته اند به همراه یک تراشه مقایسه کننده و یا تقویت کننده عملیاتی که همگی آن ها بر روی یک برد نصب شده اند تشکیل شده است. اساس کار این ماژول ها به اینصورت است، زمانیکه ال ای دی فرستنده روشن است نور مادون قرمز که توسط لامپ LED فرستنده تولید شده است به محیط تابش می شود.
حال اگر جسمی باعث شود نور تابیده شده دوباره به سمت ماژول مادون قرمز بازتاب شود، سنسور گیرنده مادون قرمز یا همان لامپ LED گیرنده مادون قرمز، نور را دریافت می کند و بسته به میزان شدت نور دریافت شده، باعث ایجاد تغییرات ولتاژ در ورودی تراشه مقایسه کننده نصب شده بر روی ماژول مادون قرمز می شود که در نتیجه این تغییرات می تواند باعث 0 و یا 1 شدن یک پایه در زمان دریافت نور مادون قرمز در خروجی ماژول شود. به این ترتیب می توانیم وجود یک جسم یا مانع را در نزدیکی ماژول قبل از برخود آن جسم با مدار مربوطه را تشخیص دهیم.
ماژول مادون قرمز TCRT5000
ماژول TCRT5000 از یک لامپ فرستنده و گیرنده 3 میلی متری مادون قرمز تشکیل شده است. که در آن برای آشکار سازی نور مادون قرمز از تراشه مقایسه کننده LM393 استفاده شده است. این ماژول دارای 4 پایه است که نام و عملکرد هر یک از پایه ها به شکل زیر است:
VCC = تغذیه مثبت ماژول، که باید به ولتاژ حداقل 3.3 الی حداکثر 5 ولت DC متصل شود.
GND = تغذیه منفی ماژول که باید به قطب منفی باتری و یا منبع تغذیه متصل شود.
D0 = خروجی دیجیتال ماژول می باشد و عملکرد آن به اینصورت می باشد که با دریافت و یا عدم دریافت نور مادون قرمز توسط لامپ LED گیرنده مادون قرمز که بر روی ماژول نصب شده است این پایه وضعیت 0 یا 1 می گیرد.
A0 = خروجی این پایه یک ولتاژ آنالوگ بین 0 الی 5 ولت می باشد که مقدار آن با توجه به شدت نور دریافتی توسط لامپ ال ای دی گیرنده مادون قرمز تعیین می گردد.
شرح عملکرد پروژه آردوینو
در این پروژه از مبحث آموزش آردوینو قصد داریم برای علاقه مندارن به الکترونیک و برنامه نویسی با کمک برد آردوینو Arduino و ماژول مادون قرمز TCRT5000 یک مدار آشکار ساز موانع حرفه ای بسازیم. عملکرد مدار این پروژه به اینصورت است که ابتدا به واسطه خواندن ولتاژ خروجی پایه آنالوگ A0 ماژول توسط واحد ADC یا همان مبدل آنالوگ به دیجیتال برد آردوینو فاصله جسم تا ماژول را اندازه گیری می کنیم و به نسبت نزدیکی جسم به ماژول یک صدا به کمک برد آردوینو تولید و توسط بلندگو تعبیه شده در مدار بخش می کنیم. همچنین در صورتیکه جسم به نزدیکترین فاصله به ماژول برسد یک لامپ LED که در مدار پروژه تعبیه شده است نیز روشن می شود.
لازم به ذکر است در مدار این پروژه یک کلید فشاری نیز گنجانده شده است که با فشردن آن می توانید تعیین کنید، زمانیکه جسمی به ماژول نزدیک می شود از چه فاصله ای مدار شروع به آلارم و آشکارسازی کند.
نقشه شماتیک پروژه
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
مقاومت 220 اهم با توان 0.25 وات و تلرانس 1 درصد | 1 عدد |
لامپ LED قرمز سایز 5mm میلی متر مدل مات | 1 عدد |
ماژول مادون قرمز TCRT5000 | 1 عدد |
بلندگو - اسپیکر مدل 8 اهم 0.5 وات | 1 عدد |
تک سوئیچ 2 پایه DIP سایز 6x6x5 میلیمتر | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
برنامه پروژه در نرم افزار آردوینو
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
const int digital_input = 2; const int analog_input = A0; int SpeakerValue_old = 0; const int Speaker = 4; int SpeakerValue = 0; const int led = 3; const int sw = 5; int ledValue = 0; int key = 0; void setup() { pinMode(digital_input , INPUT); pinMode(Speaker, OUTPUT); pinMode(led , OUTPUT); pinMode(sw , INPUT_PULLUP); Balance(); } void loop() { int input_status = digitalRead(digital_input); SpeakerValue = analogRead(analog_input); SpeakerValue = 1023 - SpeakerValue; if (SpeakerValue >= SpeakerValue_old) { SpeakerValue = SpeakerValue - SpeakerValue_old; } else { SpeakerValue = 0; } if (SpeakerValue > 255) { ledValue = map(SpeakerValue , 0, SpeakerValue , 0, 255); } else { ledValue = SpeakerValue ; } if (input_status == LOW) { digitalWrite(led , HIGH); } else { analogWrite(led, ledValue); } if (digitalRead(sw) == LOW && key == 0) { key = 1; Balance(); } else if (digitalRead(sw) == HIGH && key == 1) { key = 0; } tone(Speaker, SpeakerValue, 20); } void Balance() { SpeakerValue_old = analogRead(analog_input); SpeakerValue_old = 1023 - SpeakerValue_old; } |