راه اندازی سنسور مادون قرمز از طریق برد آردوینو
کنترلهای از راه دور مادون قرمز با ارسال سیگنالی شامل پالسهای نور مادون قرمز برای بکار انداختن دستگاههایی مانند تلویزیون یا ماشین آلات به کار میروند. سنسور مادون قرمز VS1838B یک سیگنال IR را دریافت میکند، که برای پیادهسازی عملی مناسب دیکد میشود. به عنوان مثال، سیگنال IR که در شکل 1 نشان داده شده نمایشهای باینری و HEX با مقدارهای B011101 و 0x1D را دارد. نور مادون قرمز برای چشم انسان قابل مشاهده نیست، زیرا طول موج نور مادون قرمز، 700 تا 1000 نانومتر، از طول موج نور قابل مشاهده، 400 تا 700 نانومتر، بیشتر است. با این وجود، نور مادون قرمز از فرستنده IR با دوربین تلفن همراه و تبلت قابل مشاهده میباشد.
پیشنهاد ما اینست که از کتابخانه IRremote برای کدهایی که یک سنسور IR در IDE آردوینو استفاده کنید. کتابخانه IRremote را میتوان با استفاده از روش سومی که در آموزش نصب کتابخانه در IDE Arduino توضیح داده شده نصب کرد.
هنگامیکه سنسور IR یک سیگنال را تشخیص میدهد، کدها نوع دستگاه، نمایش HEX و تعداد بیت سیگنال IR را نمایش داده و LED برای یک ثانیه روشن میشود.
و اتصال به | اتصال به | قطعه |
پایه 12 Arduino | پایه OUT سنسور IR | |
GND Arduino | پایه GND سنسور IR | |
5V Arduino | پایه VCC سنسور IR | |
پایه 4 Arduino | پایه بلند LED | |
GND Arduino | مقاومت 220 اهم | پایه کوتاه LED |
جدول ۱. اتصالات سنسور مادون قرمز به برد آردوینو
با نوشتن کدهای زیر در محیط IDE آردوینو میتوان سنسور مادون قرمز را از طریق برد آردوینو راهاندازی کرد:
#include // include IRremote library
int IRpin = 12; // IR sensor pin
IRrecv irrecv(IRpin); // associate irrecv with IRremote library
decode_results reading; // IRremote variable reading
int LEDpin = 4; // LED pin
void setup()
{
Serial.begin(9600); // set baud rate for Serial Monitor
irrecv.enableIRIn(); // start the infrared receiver
pinMode(LEDpin, OUTPUT); // LED pin as output
}
void loop()
{
if(irrecv.decode(&reading)) // read pulsed signal
{ // NEC, Sony, RC5 or RC6 signals
if(reading.decode_type == NEC) Serial.print("NEC: ");
else if(reading.decode_type == SONY) Serial.print("Sony: ");
else if(reading.decode_type == RC5) Serial.print("RC5: ");
else if(reading.decode_type == RC6) Serial.print("RC6: ");
else Serial.print("Other: ");
Serial.print(reading.value, HEX); // display device type and
Serial.print("\tBits: "); // HEX code on Serial Monitor
Serial.println(reading.bits); // display number of IR signal bits
digitalWrite(LEDpin, HIGH); // turn LED on
delay(100); // delay before next IR signal
digitalWrite(LEDpin, LOW); // turn LED off
irrecv.resume(); // receive the next infrared signal
}
}
تیم ردرونیک (redronic) مجموعه ای از آموزش ها و پروژه های مرتبط با آردوینو را برای شما علاقهمندان به الکترونیک و برنامه نویسی فراهم کرده است. جهت مشاهده این پروژه ها اینجا کلیک کنید.