مایع ریز هوشمند
IR F531_Node MCU
ماژول مادون قرمز:
ماژول مادون قرمز جاهای مختلفی کاربرد داره داخل ربات های تعقیب خط و یا تشخیص رنگ سیاه و سفید و یا تشخیص حرکت از چند سانتی متری استفاده میشه. داخل این پروژه با استفاده از پتانسیومتر روی ماژول حساسیت ماژول رو طوری تنظیم کردیم که وقتی دستمون رو جلوی ماژول ببریم خروجی HIGH یا یک بشه.
سروو موتور:
سروو موتور یکی از پرکاربردترین وسایل استفاده در هوشمند سازی هستش .از سروو موتور ها برای کنترل جهت پرواز هواپیما-باز و بسته کردن درب و یا شیر آب و گاز و یا قطع و وصل کردن کلید برق و… استفاده میشه. سروو موتور ها انواع مختلفی دارن که با ولتاژ و جریان و گشتاور های مختلفی قابل راه اندازی هستن . سروو موتور سه تا پایه داره یکی مثبت یکی منفی و یکی پایه دیتاش هست که به پین مورد نظرمون که قراره دیتا بده وصل میکنیم.
شماتیک و اتصالات:
پایه VCC ماژول مادون قرمز = پایه ۳.۳ ولت برد NodeMCU پایه GND ماژول مادون قرمز = پایه GND برد NodeMCU پایه خروجی دیجیتال ماژول مادون قرمز = پایه D1 برد NodeMCU پایه دیتا سروو موتور = پایه D2 برد NodeMCU پایه GND سروو موتور = پایه GND برد NodeMCU پایه VCCسروو موتور = پایه VCC برد NodeMCU
کد نویسی :
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ |
#include <Servo.h> Servo myservo; int sensor = D1; int servopin = D2; void setup() { pinMode(sensor,INPUT); Serial.begin(۱۱۵۲۰۰); myservo.attach(servopin); myservo.write(۰); delay(۱۰۰۰); } void loop() { myservo.write(۰); if(digitalRead(sensor) == HIGH){ myservo.write(۱۸۰); delay(۲۰۰); } delay(۱۰۰۰); } |
توضیحات کدها :
اول از همه کتابخانه و سروو رو فراخوانی میکنیم و بعد پایه سنسور و سروو رو معرفی میکنیم.
۱ ۲ ۳ ۴ |
#include <Servo.h> Servo myservo; int sensor D1; int servopin = D2; |
داخل void setup حالت پایه سنسور رو ورودی معرفی میکنیم و سرعت رو روی ۱۱۵۲۰۰ تنظیم میکنیم و بعد پایه سروو موتور رو مساوی متغیر پایه سروو موتور میکنیم .و بعد زاویه رو روی ۰ درجه تنظیم میکنیم.
۱ ۲ ۳ ۴ ۵ ۶ ۷ |
void setup() { pinMode(sensor,INPUT); Serial.begin(۱۱۵۲۰۰); myservo.attach(servopin); myservo.write(۰); delay(۱۰۰۰); } |
حالا داخل void loop مقدار زاویه سروو موتور رو روی صفر درجه تنظیم میکنیم . و بعد شرطی مینویسیم که اگه مقدار دیجیتال خوانده شده از ماژول مادون قرمز یک بود یا HIGH بود مقدار زاویه سروو ۱۸۰ درجه بشه با تاخیر ۲۰۰ میلی ثانیه . بعدش هم یه تاخیر کلی برای این حلقه معرفی میکنیم که مقدارش یک ثانیه یا هزار میلی ثانیه هستش.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ |
void loop() { myservo.write(۰); if(digitalRead(sensor) == HIGH){ myservo.write(۱۸۰); delay(۲۰۰); } delay(۱۰۰۰); } |