راه اندازی ماژول PIR با بلوک دوینو

در ادامه آموزش های پلتفرم بلوک دینو که  سراغ راه اندازی ماژول PIR رفتیم ،PIR یکی از مهم ترین سنسورهای تشخیص فاصله اجسام مختلف هست که کاربرد زیادی در اتوماسیون هوشمند و اینترنت اشیا دارد در این آموزش قصد داریم با ماژول این سنسور پر کاربرد این بار  در بلوک دینو کار کنیم و نحوه برنامه نویسی را با هم بررسی کنیم.

مقدمه

در رابطه با ماژول PIR میتوان گفت که اجسام مختلفی که در محدود آن نزدیک میشود را پیدا و طبق الگوریتم که برای ان برنامه نویسی می شود عمل میکند محدوده پاسخگوی ماژول در دیتاشیت آن موجود است در اینجا ما قصد داریم PIR را به سه شکل مختلف برنامه نویسی کنیم.در ابتدا برای آشنای بیشتر با ماژول تصویر زیر را مشاهده کنید.

ماژول PIR

ویژگی های ماژول PIR

در تصویر بالا مشاهده می کنید زمانی که جسمی در نزدیکی ماژول دیده شود PIR واکنش نشان میدهد معمولا محدوده تشخیص در دیتاشیت شرکت های سازنده درج شده اشت و میتوان با تغییر پتانسیومتر که در ماژول وجود دارد رنج را تغییر داد در بلوک دینو از PIR پشتیانی می شود که برای می توانید از این لینک توضیحات ماژول را بخوانید.

  راه اندازی ارتباط سریال آردوینو

پروژه PIR با LED

شماتیک پروژه

در ابتدا قصد داریم یک PIR با استفاده از LED طراحی کنیم به این شکل که هر بار نزدیکی به ماژول موجب روشن شدن LED شود قبل از هر کاری شماتیک پروژه بالا را مشاهده می  کنیم.

ماژول PIR

در پروژه بالا از ماژول آردینو uno استفاده کردیم که به پایه 9 که واحد PWm را شمل می شود وصل کردیم ،همچنین از ماژول PIR و یک LED و مقاومت 220 اهم برای کنترل جریان خروجی استفاده شده

برنامه نویسی در بلوک دینو

برای شروع شما باید ماژول را انتخاب کنید برای انتخاب ماژول به قسمت Grove بروید و ماژول PIR را انتخاب کنید ما در این پروژه قصد داریم از سریال هم استقاده کنیم برای این کار شما به قسمت in/out می روید و تابع Serial.println را انتخاب می کنید در تصویر زیر مشخص است

ماژول PIR

پس از انتخاب سریال مثل تصویر بالا حالا نوبت به مقدار دهی ماژول می باشد شما نیاز دارید به برنامه یک شرط اضافه کنید که اگر خروجی ماژول به یک رسید LED روشن شود و در غیر این صورت LED خاموش شود.ماژول PIR

برای این کار مثل تصویر بالا دستور if را انتخاب می کنید و برای مقداردهی پورت ماژول از تابع DigitalReadاستفاده می کنیم برای انتخاب این تابع کافی است به قسمت in/outبروید و بلوک را در محیط بلوک دینو اضافه کنید سپس ما نیاز داریم به برنامه  مقدار 1 تعیین کنیم برای این کار بلوک Highرا انتخاب کنید ، پس از انتخاب درست بلوک ها شما مثل تصویر بالا بلوک ها را متصل کنید.

  آموزش میکروکنترلر stm8 بخش تایمر

پس از انتخاب درست بلوک ها حالا با استفاده از تابع serial.Println یک متن را بنویسید ما در اینجا قصد داریم با هر بار نزدیک شدن اطلاع دهد و سپس از تابع تاخیر استفاده کنید ، سپس روی گزینه تنطیمات دستور if بزنید و else را انتخاب کنید درون دستور else یکبار LED را خاموش کنید و خروجی سریال را دوباره نمایش دهید .

سورس کد بلوک دینو

ماژول PIR

سورس کد آردینو

void setup()
{
pinMode(2, OUTPUT); // LED Pinout
pinMode(9, INPUT); // PIR pinout
Serial.begin(9600);

}

void loop()
{

digitalWrite(2, HIGH);
Serial.println(digitalRead(9));
if (digitalRead(9) == HIGH) {
// turn on LED
digitalWrite(2, HIGH);
Serial.println("motion detect");
delay(1000);

} else {
// Turn Off LED
digitalWrite(2, LOW);
Serial.println("end detect");
delay(1000);

}

}

پروژه PIR با بازر

در پروژه بعدی که قصد داریم طراح کنیم قصد داریم با استفاده از بازر یک PIR را طراحی کنیم در واقع با هر بار نزدیک شدن به ماژول ، بازر آلارم دهد اگر با ماژول بازر در بلوک دینو آشنا نیستید این آموزش را بخوانید.

شماتیک پروژه

ماژول PIR

سورس بلوک دینو

برای برنامه نویسی این پروژه هم مثل پروژه قبلی عمل می کنیم با این تفاوت که از تابع tone و no tone  استفاده می کنیم در تصویر زیر سورس کد خروجی بلوک دینو را مشاهده می کنید.

  راه اندازی واحد وقفه در آردوینو

ماژول PIR

سورس کد آردینو

const int buzzer = 2;
const int PIR = 5;
void setup()
{
pinMode(buzzer, OUTPUT); // buzzer pinout//
pinMode(PIR, INPUT); //PIR Pinout//
serial.begin(9600);
}

void loop(){
if(digitalRead(PIR) == HIGH){
tone(buzzer,1000,300); //turn on buzzer//
serial.println("motion detect");
if(digitalRead(PIR) == LOW){
notone(buzzer,300);//turn off buzzer//
serial.println("End motion");

}
}

پروژه طراحی PIR با بازر و LED

در پروژه بعدی قصد داریم با استفاده از ماژول بازر و LED  و اتصال به PIR پروژه خود را پیاده سازی کنیم الگوریتم برنامه ما به این شکل است که با هر بار نزدیک شدن به ماژول هم LED و buzzer خروجی بدهد و فرد را مطلع کند.

شماتیک پروژه

راه اندازی PIR

سورس کد بلوک دینو

برنامه خروجی محیط بلوک دینو مثل تصویر زیر می باشد همانطور که دقت کردید با پروژه های قبلی تفاوت زیادی ندارد فقط دقت کنید شما می توانید از تابع tone استفاده نکنید اما ما از تابع tone و digitalWrite با هم استفاده کردیم تا به شکل بهینه تری سورس کد تولید شود.

راه اندازی PIR
سورس کد آردینو

void setup()
{
pinMode(4, OUTPUT); // LED pin//
pinMode(3, OUTPUT); // buzzer pin//
pinMode(2, INPUT); // PIR pin//
Serial.begin(9600);

pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
}

void loop()
{
digitalWrite(4,HIGH);
digitalWrite(3,HIGH);
Serial.println(digitalRead(2));
if (digitalRead(2) == HIGH) { // read input//
tone(3, 1000,1000); // tone(pin,Frequency, delay)
digitalWrite(4, HIGH);
noTone(3);
digitalWrite(4, LOW);
delay(1000);
} else {
noTone(3);
digitalWrite(4, LOW);
delay(1000);
}

}

ویدیو آموزش

برای سهولت استفاده از آموزش تمام موارد آموزشی که در متن توضیح دادیم در قالب ویدیو ارائه کردیم که پیشنهاد میکنیم حتما آن را تماشا کنید

با اشتراک گذاشتن این مطلب ما را حمایت کنید

tags, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
راه اندازی RGB با بلوک دوینو
دانلود نرم افزار شبیه ساز Fritzing

برای حمایت از ما! لطفا این مطلب را به اشتراک بگذارید

پست های مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
شما برای ادامه باید با شرایط موافقت کنید

فهرست
خانه
درباره ما
ارتباط با ما
جستجو