شِفر (کود) آردوینو و ویدئو: حساس(حس کننده) موانع مادونقرمز 4 کاناله برای خودروی هوشمند آردوینو
در این آموزش، ما بررسی خواهیم کرد چگونه از یک ماجیول حساس(حس کننده) اجتناب از مانع مادونقرمز 4 کاناله برای ساخت یک خودروی هوشمند استفاده کنیم. این ماجیول از چهار حساس(حس کننده) مادونقرمز تشکیل شده است که میتوانند موانع را از جهات مختلف تشخیص دهند و به خودروی رباتیک شما امکان میدهند مطابق با آن واکنش نشان دهد. هر حساس(حس کننده) اطلاعاتی دربارهٔ نزدیکی ارائه میدهد و به شما اجازه میدهد بر اساس موانع تشخیصدادهشده واکنشها را برنامهریزی کنید.

در جریان این پروژه، اجزای سختافزاری، دستورالعملهای سیمکشی و شِفر (کود) لازم برای کارکرد مؤثر حسگرها را پوشش خواهیم داد. میتوانید توضیحات تکمیلی را در ویدئو (در 00:00) بیابید.
سختافزار توضیح داده شده
جزء اصلی این پروژه ماجیول جلوگیری از برخورد مادونقرمز 4 کاناله است که از مقایسهگر تفاضلی چهارگانه LM339 استفاده میکند. این آیسی میتواند در بازهٔ ولتاژ 2 تا 36 ولت کار کند، اما در مورد ما برای سازگاری با آردوینو از 5 ولت استفاده خواهیم کرد. هر حساس(حس کننده) در این ماجیول دارای ورودی معکوسکننده و ورودی غیرمعکوسکننده است که به آن امکان میدهد نور مادونقرمز بازتابشده از موانع را مقایسه کرده و بر اساس آن سیگنال خروجی دهد.
این ماجیول با مقاومتهای پول-آپ طراحی شده است که وقتی مانعی شناسایی نشود خروجی را در سطح بالا نگه میدارند. وقتی یک جسم تشخیص داده میشود خروجی به سطح پایین میرود و سیگنال واضحی به Arduino ارسال میکند. علاوه بر این، ماجیول دارای LEDهایی است که هنگام تشخیص مانع روشن میشوند و بازخورد کاربر را در حین عملکرد بهبود میبخشند.
جزئیات برگه مشخصات
| تولیدکننده | نامشخص |
|---|---|
| شماره قطعه | اجتناب از مانع مادون قرمز 4 کاناله |
| ولتاژ منطقی/ورودی-خروجی | 5 ولت |
| ولتاژ تغذیه | 2-36 ولت |
| جریان خروجی (برای هر کانال) | 10 mA (معمولی) |
| جریان اوج (برای هر کانال) | 20 mA (حداکثر) |
| راهنمای فرکانس مدولاسیون پهنای پالس (PWM) | نامربوط |
| آستانههای منطقی ورودی | سطح پایین < 0.8 ولت، سطح بالا > 2.0 ولت |
| افت ولتاژ / RDS(on)/ اشباع | 0.2 V (معمولی) |
| محدودیتهای حرارتی | دمای کار: -40 تا 125 °C |
| بسته | ماجیول |
| یادداشتها / انواع | شامل 4 حساس(حس کننده) با حساسیت قابل تنظیم |
- برای جلوگیری از ورودیهای شناور، از زمین مشترک برای همهٔ اجزا استفاده کنید.
- پتانسیومتر حساسیت را برای دستیابی به محدودهٔ تشخیص بهینه تنظیم کنید.
- اطمینان حاصل کنید که ولتاژ منبع تغذیه مناسب باشد تا از آسیب دیدن حسگرها جلوگیری شود.
- اتصالات سیمکشی را بررسی کنید تا از خوانشهای نادرست حسگرها جلوگیری شود.
- برای پایدارسازی تغذیهٔ حسگرها از خازنهای دکوپلینگ استفاده کنید.
- هر حساس(حس کننده) را جداگانه قبل از ادغام در سیستم اصلی آزمایش کنید.
دستورالعمل سیمکشی
برای سیمکشی ماجیول جلوگیری از موانع مادونقرمز 4 کاناله به آردوینو، ابتدا با اتصال تغذیه و زمین شروع کنید. پایه VCC ماجیول حساس(حس کننده) را به خروجی 5V روی آردوینو متصل کنید. سپس پایه GND ماجیول را به زمین (GND) آردوینو وصل کنید. این کار برق لازم را برای عملکرد حسگرها فراهم میکند.
سپس پایههای خروجی سنسورها را به پایههای ورودی دیجیتال روی آردوینو وصل کنید. برای مثال، خروجی حساس(حس کننده) جلوی چپ (برچسبخورده بهعنوانN1) به پایه دیجیتال 2، حساس(حس کننده) جلوی راست (N2) به پایه 3، حساس(حس کننده) عقب-چپ (N3) به پایه 4، و حساس(حس کننده) عقب راست (N4) را به پایه 5 متصل کنید. علاوه بر این، میتوانید خروجی ترمز را به پایه 8، نشانگر مانع جلو را به پایه 9 و نشانگر مانع عقب را به پایه 10 متصل کنید. برای عملکرد قابل اعتماد، مطمئن شوید که همه اتصالات محکم باشند.
نمونههای شِفر (کود) و راهنمای گامبهگام
شِفر (کود) آردوینو با تعریف ثابتهایی برای هر پایه حساس(حس کننده) شروع میشود تا ارجاع به آنها در سراسر برنامه آسانتر باشد. برای مثال،FRONT_LEFTبهعنوان پایه 2 تعریف شده است که مشخص میکند کدام حساس(حس کننده) به کدام پایه مربوط است.
#define FRONT_LEFT 2 // pin 2 for front-left sensor
#define FRONT_RIGHT 3 // pin 3 for front-right sensor
#define REAR_LEFT 4 // pin 4 for rear-left sensor
#define REAR_RIGHT 5 // pin 5 for rear-right sensor
درsetup()در تابع، هر پایه حساس(حس کننده) بهعنوان ورودی با استفاده ازpinMode(). این پیکربندی به آردوینو اجازه میدهد تا در حین کار وضعیت حسگرها را بخواند.
void setup() {
Serial.begin(9600);
pinMode(FRONT_LEFT, INPUT);
pinMode(FRONT_RIGHT, INPUT);
pinMode(REAR_LEFT, INPUT);
pinMode(REAR_RIGHT, INPUT);
}
در حلقهٔ اصلی، وضعیت هر حساس(حس کننده) با استفاده ازdigitalRead(). اگر مانعی تشخیص داده شود (نشاندادهشده توسط سیگنال LOW)، LED مربوطه فعال شده و پیامی در نمایشگر مسلسل چاپ میشود.
void loop() {
int FR = digitalRead(FRONT_RIGHT);
int FL = digitalRead(FRONT_LEFT);
if( FR == LOW || FL == LOW) {
digitalWrite(FRONT_OB,HIGH);
Serial.println("Front obstacle");
} else {
digitalWrite(FRONT_OB,LOW);
}
}
این ساختار شِفر (کود) اجازه میدهد تا بهراحتی گسترش یافته و تغییر کند و به شما امکان میدهد پاسخها را بر اساس نیازهای خاص برنامهتان سفارشیسازی کنید. برای مشاهده شِفر (کود) کامل، لطفاً به بخش بارگذاری در پایین مراجعه کنید.
نمایش / آنچه باید انتظار داشته باشید
وقتی همه چیز سیمکشی شد و شِفر (کود) آپلود شد، باید انتظار داشته باشید که LEDهای ماجیول هر بار که هر یک از سنسورها مانعی را تشخیص میدهد روشن شوند. نمایشگر مسلسل نیز پیامهایی را نمایش میدهد که وجود مانع در جلو یا عقب را نشان میدهد. اگر سنسورها بهدرستی قرار گرفته باشند، خودروی هوشمند مطابق برنامه با ایستادن یا تغییر جهت واکنش نشان خواهد داد (در ویدئو در 02:30).
اشتباهات رایج شامل سیمکشی نادرست است که میتواند منجر به ورودیهای شناور یا خوانشهای نادرست شود. اطمینان حاصل کنید که حسگرها بهدرستی کالیبره شدهاند و پتانسیومتر برای حساسیت موردنظر تنظیم شده است. آزمایش هر حساس(حس کننده) بهصورت مستقل میتواند پیش از یکپارچهسازی کامل به شناسایی مشکلات کمک کند.
برچسبهای زمانی ویدئو
- 00:00- معرفی پروژه
- 01:30- توضیح سختافزار
- 02:30- مرور شِفر (کود)
- 03:45- دستورالعملهای سیمکشی
- 04:50- نمایش زنده
مواردی که ممکن است به آنها نیاز داشته باشید
منابع و مراجع
هنوز هیچ منبعی موجود نیست.
فایلها📁
هیچ فایلی موجود نیست.