السلام عليكم
حسب علمي فانك ستستخدم البورت A للبيك لادخال السنسور الذي ستستعمله و ذلك لقياس التيار الذي يخرجه حسب المسافة بين السنسور و الحاجز او الشخص كما اخترت . في الداتاشييت تبع السنسور لقيت انو قيمة التيار ترتفع مع قرب الحاجز و تصل الى 3 فولت تقريبا و الى 0.3 فولت مع مسافة متر و 60 صم هنا راح نقول مثلا اذا كانت المسافة تساوي لمتر او اقل و التي تمثل 0.6 فولت فاكثر >> راح نشغل الفرامل مثلا المهم راح يكون عندنا خرج من البيك
الكود:
كود:
int t1,distance;
char *text[6];
void main()
{
trisb=0;
portb=0;
adcon1=14;
lcd_init(&portd);
lcd_out(1,1,"HELLO");
lcd_cmd(lcd_cursor_off);
delay_ms(1000);
lcd_out(1,1,"DISTANCE");
lcd_out(2,8,"CM");
while(1)
{
t1=adc_read(0);
distance=0.245*t1*2; // For Lm35 Sensor 10mv/’c
inttostr(distance,text);
lcd_cmd(lcd_cursor_off);
lcd_out(2,1,text);
delay_ms(100);
if (distance <=100)
{ portb.f0=1;
} else
portb=0;
}
}
الان راح تقوم بالبحث عن const لحساب المسافة لاني في هذا المثال استعملت سنسور الحرارة الموجود في البرنامج (التي تعمل بنفس الطريقة مع السنسور تبعك )و هي تساوي ل0.245 اذا لم تجدها قم بعمل الدارة و في كل مرة غير قيمة الثابت حتى تحصل على النتيجة المطلوبة عند المسافة التي قمت بتحديدها و هي 100 صم ويمكنك تغييرها هي الاخرى.

datasheet
http://www.robotshop.ca/PDF/Sharp_GP2Y0A02YK_Ranger.pdf
لتحميل البرنامج:
http://www.mediafire.com/?bgytkync0g2
تمنياتي بالتوفيق والسلام عليكم.