mold2003226
|
|
« on: March 03, 2010, 08:09:42 AM » |
|
ผมจะเพิ่ม Sensor เข้าไปนะครับ เมื่อ Sensor on จะส่ง logic 0 ออกมาเข้า พอร์ต b6และ b7 ถ้า พอร์ต b6 เป็น 0 Stepping motor (left) จะStop ตอนนี้ sensor จะออนค้างอยู่ทำให้ พอร์ต b6 เป็น 0 ตลอด แล้วถ้า กดปุ่ม right ให้ Stepping motor มันวิ่งออกจาก sensor จะต้องเพิ่มส่วนไหนครับ ถ้า พอร์ต b7 เป็น 0 Stepping motor (right) จะStop ตอนนี้ sensor จะออนค้างอยู่ทำให้ พอร์ต b7 เป็น 0 ตลอด แล้วถ้า กดปุ่ม left ให้ Stepping motor มันวิ่งออกจาก sensor จะต้องเพิ่มส่วนไหนครับ ขอบคุณครับ
#include <16F877.h> #fuses HS,NOWDT,NOPUT,NOPROTECT #use delay (clock=4000000)
void main()
{ int step[8]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09}; signed int ,SL,SR,stop,left,right,stop1,left1,right1,index=0,direct=0,index1=0,direct1=0; while(TRUE) { stop = input(pin_B0); left = input(pin_B1); right = input(pin_B2); stop1 = input(pin_B3); left1 = input(pin_B4); right1 = input(pin_B5); SL = input(pin_B6); \\Sensor 1 SR = input(pin_B7); \\Sensor 2 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Stepping ตัวที่1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ if(stop==0) direct = 0; if(left==0) direct = 1; if(right==0) direct = 2; if(direct==0) index=index; if(direct==1) index=index+1; if(direct==2) index=index-1; if(index>7) index=0; if(index<0) index=7; output_c(step[index]); delay_ms(5);
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Stepping ตัวที่2 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ if(stop1==0) direct1 = 0; if(left1==0) direct1 = 1; if(right1==0) direct1 = 2; if(direct1==0) index1=index1; if(direct1==1) index1=index1+1; if(direct1==2) index1=index1-1; if(index1>7) index1=0; if(index1<0) index1=7; output_d(step[index1]); delay_ms(5); } }
|