رفتن به نوشته‌ها

راه اندازی سنسور تعقیب خط با اردینو

سنسورهای نوری بر اساس انتشار پرتو نور (مرئی یا مادون قرمز) از یک فرستنده و دریافت نور توسط گیرنده نور کار می‌کنند. نوع انعکاسی سنسورهای نوری براساس برخورد نور به یک هدف و انعکاس آن به گیرنده عمل کرده و نوع دیگر این سنسورها براساس تابش مستقیم از یک گیرنده به فرستنده که در سوی مقابل قرار گرفته است عمل می‌کنند.

 

نوع انعکاسی
سنسور نوری انعکاسی
انعکاسی

هردو المان گیرنده و فرستنده در این نوع سنسور در یک محفظه واقع شده‌اند. سنسور، نوری را که از شیء یا هدف بازتاب یافته است را دریافت می‌کند.
 
نوع Thrubeam
در این نوع، گیرنده و فرستنده از هم مجزا بوده و وقتی یک شیء در مسیر بین آن دو قرار گیرد، سبب قطع شدن تابش نور می‌شود و گیرنده نوری دریافت نمی‌کند.
سنسور نوری thrubeam
 
نوع Retroreflective
سنسور نوری

توضیح عملکرد:

سنسورهای مادون قرمز که جلوی ربات نصب شده اند در دوحالت دیجیتال و آنالوگ کار می کنند که در اینجا از قابلیت های دیجیتال آنها استفاده می کنیم. عملکرد این سنسور ها این گونه است که LED فرستنده به طور مداوم نور مادون قرمز تولید می کند. اگر این نور به سطح شفاف برخورد کند، بازتاب یافته و توسط LED گیرنده دریافت شده که بیانگر سطح سفید است اما اگر این نور به سطح سیاه بتابد بازتابی نداریم و در ادامه دریافتی نیز نخواهیم داشت. حالا می خواهیم از همین ساز و کار برای تشخیص خطا روی صفحه سفیدی که با خطوط سیاه مسیرکشی شده است استفاده کنیم. با تشخیص مرز بین سفید و سیاه می توانیم چرخ های ربات را در مسیر راست و چپ با سرعت متغیر (به کمک PWM) حرکت دهیم تا ربات کاملا در مسیر خطوط سیاه باقی بماند.

منبع

کد راه اندازی ماژول سنسور TCRT5000 فرستنده و گیرنده مادون قرمز توسط اردینو (۶ سنسور-۳ سنسور عقب و ۳ سنسور جلو)
const int IR1=7; // اولین سنسور جلو سمت راست
const int IR2=8; // سنسور جلو وسط
const int IR3=10;// جلو سمت چپ 
const int IR4=11; // اولین سنسور سمت راست عقب
const int IR5=12; // عقب وسط
const int IR6=13; // عقب چپ

int IR1Read,IR2Read,IR3Read,IR4Read,IR5Read,IR6Read;


void setup() {

pinMode(IR1,INPUT);
pinMode(IR2,INPUT);
pinMode(IR3,INPUT);
pinMode(IR4,INPUT);
pinMode(IR5,INPUT);
pinMode(IR6,INPUT);

void loop() {

IR1Read=digitalRead(IR1);
IR2Read=digitalRead(IR2);
IR3Read=digitalRead(IR3);
IR4Read=digitalRead(IR4);
IR5Read=digitalRead(IR5);
IR6Read=digitalRead(IR6);

if ((IR1Read == 0) && (IR2Read == 1) && (IR3Read == 0) && (IR4Read == 0) && (IR5Read == 1)&& (IR6Read == 0))
{
//داخل این حلقه کدهایی که میخواهید با روشن و خاموش شدن سنسورها واکنش نشان دهد مینویسید.
}}
منتشر شده در آردوینو

اولین باشید که نظر می دهید

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

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