قسمت آخر(پنجم)
در آموزش قبل با نحوه تشخیص خط آشنا شدیم به صورت زیر :
اسم سنسور ها رو بذاریمR(راست)L(چپ)C(وسط)خب حالا فرض کنیم که خط مشکی مستقیم باشه خروجی سنسور ها به این شکل میشه
LCR010
حالا اگه خط مشکی سمت راست باشه :
RCL100
و اگه سمت چپ باشه میشه :
RCL001
میبینید که سه حالت چپ و راست و مستقیم
خب بریم سراغ برنامه نویسی ،برای اینکه بتونیم اطلاعات سنسور ها رو بخونیم باید به میکرو وصلشون کنیم ،چون از میکروکنترلر ATmega8 استفاده میکنیم من سه تا خروجی آپ امپ های سنسورها رو به پورت B وصل کردم به پایه های PINB.0 (چپ) ،PINB.1 (وسط همون مستقیم) و PINB.2 (راست).
خب طبق آموزش راه اندازی موتور باید موتورها رو به یک ترانزیستور وصل میکنیم یادتون باشه برای اینکه ربات مستقیم بره باید موتورها برعکس هم بجرخند وگرنه ربات دور خودش میچرخه! بعد پایه بیس ترانزیستور ها رو به پایه های PINB.4 , PINB.5 وصل کنید به ترتیب موتور راست و موتور چپ .
خب وقتی میخوایم ربات مستقیم بره باید هر دو موتپر روشن باشه و اگه بخوایم به راست بره باید یک لحظه موتور سمت راست رو خاموش کنیم (به دلیل روشن بودن موتور سمت چپ ربات به سمت راست میچرخه)و برای اینکه به چپ بچرخه باید موتور سمت چپ رو لحظه ای خاموش کنیم.
خب اینم از کد برنامه :
از اینجا دانلود کنید
http://dllup.ir/downloadf-mainn-zip.html
#include <mega8.h>void main(){DDRB=0x0f;while(1){if(PINB.0 == 1) { PORTB.4=0; PORTB.5=1; }if(PINB.1 == 1) { PORTB.4=1; PORTB.5=1; }if(PINB.2 == 1) { PORTB.4=1; PORTB.5=0; }}}